Hardware in the Loop
Sie richten ein Hardwareprojekt ein (oder führen es aus), bei dem Agenten die Technik erledigen und Prüfpunkte (Gates) sie beweisen. Lesen Sie diese gesamte Datei, bevor Sie handeln. Die Methode ist im Repository unter docs/ beschrieben (METHODE, PCB, CAD, FIRMWARE, SIM, SWARM, WERKZEUGE, LEKTIONEN); diese Datei ist das Verfahren.
0. Nennen Sie zuerst die Kosten
Sagen Sie dem Benutzer unverblümt Folgendes, bevor Sie irgendetwas anderes tun:
Die Durchführung dieser Methode mit einem Schwarm von Agenten ist teuer. In dem Projekt, aus dem sie stammt, verbrauchte ein Schwarmtag 4–5 Millionen Token, hauptsächlich durch das Aufwecken von Lane-Agenten, die jeweils 300–800k Token Kontext mit sich führten. Der günstigere Modus ist eine einzelne Sitzung ohne Unteragenten, die Schritt für Schritt arbeitet, lange Maschinenjobs getrennt ausführt und von einem Abschnitt „Wo ich aufgehört habe“ fortgesetzt wird. Welchen Modus möchten Sie? (empfohlen: Einzelsitzung)
Notieren Sie die Antwort als mode (single oder swarm). Erzeugen Sie keinen Unteragenten, bevor der Benutzer den Schwarm-Modus gewählt hat.
1. Onboarding-Interview
Führen Sie das Interview in references/interview.md durch den Fragen-Dialog: Blöcke von höchstens vier Fragen, die empfohlene Standardeinstellung zuerst bei jeder Frage. Wenn eine Frage keine Antwort erhält, nehmen Sie die Standardeinstellung und schreiben Sie „Standard angenommen“ daneben. Abdecken: Projektziel und Definition von „fertig“, Ziele in Reihenfolge, Budget, Stückzahlen, standardmäßig gedrucktes Material (Kohlefaser-Nylon / PETG / PLA / gefrästes Aluminium), Befestigung (Heißschraubeinsätze / gewindeformende Schrauben / Durchgangsschrauben), Gehäuse (versiegelt / belüftet / offen), mechanisches Spiel, PCB-Fertigungs- und Bestückungsdienstleister, MCU-Familie, Hauptversorgung und schlimmste Transiente, Platinenklasse und Beschichtung, Simulationsstufen (nativ / Isaac Sim / Unreal) und die GPU, Maschinenlimits (CPU-Grenze Standard 90 %, für das System freigehaltener RAM Standard 4 GB, freier Festplattenspeicher Standard 50 GB), Ablageort, Nutzungsauslöser (Standard 95 %), dauerhafte Entscheidungen.
Materialien, Befestigung, Gehäuseabdichtung und Spiel sind PROJEKTENTSCHEIDUNGEN: Wählen Sie sie niemals stillschweigend aus; fragen Sie, empfehlen Sie, notieren Sie.
Schreiben Sie die Antworten in answers.json im .tmp/-Verzeichnis des Ziel-Repositorys (Schema in references/interview.md).
2. Erzeugen Sie das Grundgerüst
python -I <skill>/scripts/scaffold.py --answers <repo>/.tmp/answers.json --dest <repo> [--with-examples] [--dry-run]
Es kopiert templates/ (README_AGENT.md, PROJECT_STRUCTURE.md, REQUIREMENTS.md, README.md, CODING_RULES.md, .gitignore, .gitattributes, windows/ci.ps1 + windows/ci/ (Gruppen audit und pcb), tools/ (Audit + Portabilität mit einer leeren nachverfolgten Baseline und Waiver-Datei), pcb/ (DESIGN_STANDARDS.md, tools/kicad_env.py, tools/board_pipeline.py, tools/distributor_verify.py), cad/ (cad_plugins.py, render.py, mass_cg_table.py), firmware/host_tests/hil_check.h, docs/bench/BENCH_REGISTER.md, docs/data/README.md, harness/swarm/ (AGENT_RULES, Slot / Detach / Watch / Merge Lock / Merge-to-Dev / Promote / WIP Backup / Handoff Hook / Status-Zeilen-Skripte) und .claude/settings.local.json (Statuszeile + PostToolUse-Hook)), füllt die Vorlagenvariablen, schreibt harness/swarm/machine.env und harness/swarm/PLAN.md für den gewählten Modus. Es überschreibt niemals eine vorhandene Datei; vergleichen Sie behaltene Dateien manuell und führen Sie zusammen, was nützlich ist. --with-examples fügt das Beispiel-Board (ein 2-lagiger 3,3 V LDO Breakout, der jeden Pipeline-Schritt ausführt) und den Beispiel-Gehäusebauer mit zwei Plug-ins hinzu.
Füllen Sie dann die Entscheidungstabelle in pcb/DESIGN_STANDARDS.md Abschnitt 0 aus den Antworten aus.
3. Werkzeuge
pwsh -File <skill>/scripts/setup_tools.ps1 -ToolsRoot <ein Ordner außerhalb des Benutzerprofils> [-VerifyOnly]
bash <skill>/scripts/setup_tools.sh --tools-root <verzeichnis> [--verify-only] # Linux
KiCad 10 (winget), Java 21 (winget), Freerouting 2.1.0 (festgelegter SHA-256), OSS CAD Suite 2026-10-24 (festgelegter SHA-256, nur für FPGA-Projekte), eine CadQuery-Venv. Es schreibt <ToolsRoot>/hil_tools.env mit HIL_FREEROUTING_JAR, HIL_JAVA, HIL_KICAD_CLI, HIL_CQ_PYTHON. Fragen Sie, bevor Sie etwas systemweit installieren; führen Sie zuerst -VerifyOnly aus und zeigen Sie dem Benutzer, was fehlt. Nichts geht in das Benutzerprofil.
4. Git: main und dev
Im Ziel-Repository (fragen Sie, bevor Sie git in einem Repository mit bereits vorhandener Historie ausführen):
git init -b main # wenn es noch kein Repository ist
git add -A && git commit -m "Projekt-Grundgerüst (Hardware-in-the-Loop-Methode)"
git branch dev
git push -u origin main dev # wenn ein Remote existiert
Verwenden Sie die konfigurierte Git-Identität der Maschine. Keine Zuschreibungszeilen oder Co-Author-Trailer. Niemals Force-Push. Führen Sie dann den ersten CI-Durchlauf aus und behalten Sie seinen Bericht als Hauptreferenz:
pwsh -File windows/ci.ps1 -Only audit
5. Bewaffnen Sie das Geschirr
.claude/settings.local.jsonverdrahtetusage_statusline.py(Statuszeile, Auslöser beiHIL_HANDOFF_PCT) undhandoff_hook.sh(PostToolUse). Beweisen Sie den Hook:touch harness/swarm/HANDOFF_SELFTEST, führen Sie ein beliebiges Werkzeug aus, erwarten Sie den Kontext „Hook ist live“, löschen Sie die Datei.- Starten Sie die WIP-Sicherung getrennt:
bash harness/swarm/detach.sh harness/swarm/wip_backup.sh .tmp/wip_backup.log. - Überprüfen Sie
bash harness/swarm/locks/slot.sh status. - Die Leitsitzung läuft vom Haupt-Checkout (dort befindet sich
harness/); Bearbeitungen erfolgen in Worktrees.
6. Arbeiten: Einzelsitzungsmodus (Standard)
Folgen Sie harness/swarm/PLAN.md (aus references/single-session-plan.md):
- Jeweils ein nummerierter Schritt, jeder mit dem Gate, das ihn beweist.
- Arbeiten Sie in
.claude/worktrees/main-workaufswarm/main-work; committen, pushen,merge_to_dev.shnach jedem grünen Gate. - Schwere Jobs:
eval "$(bash harness/swarm/locks/slot.sh take <art> <sie> "<job>" <GB>)", danach freigeben. - Lange Jobs:
bash harness/swarm/detach.sh <chain.sh> <log>und sofortbash harness/swarm/watch.sh <log>als Hintergrundaufgabe; fahren Sie mit dem nächsten Schritt fort, während er läuft. - Besitzerfragen: gebündelt, empfohlene Standardeinstellung zuerst; angenommene Standardeinstellungen werden in den Plan geschrieben.
- Anhalten: „## Wo ich aufgehört habe“ anhängen (erledigt mit SHAs, laufende Jobs mit PIDs und Logs, genauer nächster Schritt).
7. Arbeiten: Schwarmmodus
Folgen Sie docs/SWARM.md und references/wave-checklist.md:
- Welle 1, Erkundung: Schreibgeschützte Agenten schreiben verifizierte Fakten mit Datei:Zeilen-Ankern in
harness/swarm/recon_<bereich>.md. - Welle 2, Plan:
PLAN.md(references/plan-template.md) mit Spuren, ein Besitzer pro Datei (spurübergreifende Änderungen als Patch-Dateien inharness/swarm/handoff/), Schnittstellenerweiterungen, Abnahmenummern;briefs.mdmit einer Kurzbeschreibung pro Spur (references/brief-template.md). - Welle 3, Spuren in Worktrees
swarm/<name>: Sonnet für mechanische Arbeiten (Ports, Codecs, Renderings, Tests, Docs), Opus für heikle Arbeiten (Steuerung, Physik, Geometrie, Signalintegrität). Jeder gibt den strukturierten Bericht zurück (references/structured-report.md). - Welle 4, Skeptiker: Neue Agenten mit dem Diff und nur dem Bericht;
audit_placeholders.py --changed-since origin/dev --fail-on-new, die CI-Gruppen der Spur, drei Zahlen erneut geprüft. - Welle 5, Integration: Jede Spur landet auf dev mit
merge_to_dev.sh(immer, auch rot, unter MERGE_LOCK); vollständige CI auf dev mit-Compare <main report> -FailOn regressions;promote_dev.shnur bei null Regressionen.
Halten Sie Spuren wenige und Kurzbeschreibungen exakt; jedes Aufwecken eines Agenten mit großem Kontext kostet echtes Geld.
8. Disziplin (beide Modi)
- PCB: Generator-first (
docs/PCB.md). ERC 0/0, DRC 0 Verstöße / 0 unverbunden / 0 Parität bei Standard-Schweregraden, jede gekaufte Leitung live verifiziert, Fab-Set + STEP + Ergebnisse-JSON mit SHA-256. Handplatzierung durch Sie wird erwartet, wenn der Auto-Placer versagt. Weitere Lagen sind erlaubt; melden Sie die Preisdifferenz. Die Lockerung einer Regel erfordert eine zitierte Grundlage. - CAD: Builder + Plug-ins; eine Masse-/Station-/Schwerpunkttabelle (
cad/mass_cg_table.py) bei jeder Teileänderung; Pass- und Kollisions-PNGs (cad/render.py) indocs/cad_decisions/<datum>/<thema>/. - Firmware: Out-of-Tree-Builds, Host-Suiten mit
hil_check.h, Szenarien durch die echte Schnittstelle, Seed-Sweeps, Deterministismus; Hardware-ausstehend aufgelistet. - Keine unfertige Arbeit als fertig gezeigt; reine Testkonstanten erhalten
BENCH B-xx-nn-IDs. - Maschine: Slots, unterdurchschnittliche Priorität, Timeouts, niemals töten, was Sie nicht gestartet haben, niemals
findvon einem Root aus, zuerst Festplatte prüfen, ein Unreal/GPU-Job gleichzeitig, kein Unreal-Start, während der Besitzer an der Maschine ist.
9. Übergabe und Übernacht
- Wenn
HANDOFF_NOWerscheint (der Hook teilt es Ihnen mit), hören Sie auf, Arbeit zu beginnen, und folgen Sie seiner Anweisung: committen, pushen, freigeben,harness/swarm/resume_<datum>/RESUME_<datum_zeit>_<spur>.mdschreiben (references/resume-doc.md). - Bevor der Besitzer für die Nacht geht: eine getrennte Nachtkette und die Morgenfragen (
references/overnight-questions.md). Die Nacht läuft mit den Standardeinstellungen; notieren Sie jede angenommene Standardeinstellung.