harness-init
Design Thinking
harness-init ist der Factory-seitige Installer für die Ziel-Laufzeit. Seine Aufgabe ist es, den .harness/-Baum des Zielprojekts in der korrekten Struktur zu säen und dann zu stoppen. Nach der Installation soll das LLM des Zielprojekts nur projektlokale Artefakte unter .harness/loom/, .harness/cycle/ und später abgeleitete Plattformbäume lesen.
Diese Grenze ist streng:
- install sät die Laufzeit-Grundlage
/harness-pair-deverstellt später projektspezifische Paarenode .harness/loom/sync.ts --provider <list>leitet später Plattformbäume ab
Methodik
1. Argumente
/harness-init [<target>] [--force]
<target>— Wurzelpfad des Zielprojekts. Wenn nicht angegeben, istprocess.cwd()das Ziel.--force— ersetzt sowohl.harness/loom/als auch.harness/cycle/.
Ohne --force aktualisiert die Installation .harness/loom/ und bewahrt einen bestehenden .harness/cycle/-Audit-Trail.
2. Ausführung
Führe das Installationsskript einmal aus:
node ${CLAUDE_SKILL_DIR}/scripts/install.ts $ARGUMENTS
Fasse dann das Skriptergebnis für den Benutzer zusammen. Vertraue der Ausgabe des Skripts, anstatt zusätzliche Shell-Inspektionen zu improvisieren.
3. Was die Installation garantiert
Die Installation sät zwei Namespaces:
.harness/loom/— kanonische Staging-Umgebung für zielseitige Skills, Agenten,hook.shundsync.ts.harness/cycle/— Laufzeitstatus fürstate.md,events.mdundepics/
Bei einer frischen Installation erhält das Ziel mindestens:
.harness/loom/skills/{harness-orchestrate,harness-planning,harness-context,harness-doc-keeper}/.harness/loom/agents/{harness-planner,harness-doc-keeper-producer}.md.harness/loom/{hook.sh,sync.ts}.harness/cycle/{state.md,events.md,epics/}
Die Installation erstellt nicht .claude/, .codex/ oder .gemini/. Diese werden später aus .harness/loom/ abgeleitet.
4. Wiederholungsverhalten
- Standard-Wiederholung: aktualisiert
.harness/loom/, bewahrt.harness/cycle/ --force: aktualisiert sowohl.harness/loom/als auch.harness/cycle/
Wenn das Skript meldet, dass von Paaren erstellte Inhalte innerhalb von .harness/loom/ während einer Standard-Aktualisierung entfernt wurden, zeige dies dem Benutzer deutlich an, damit er diese Paare anschließend neu erstellen kann.
5. Überprüfung
Die Überprüfung ist skripteigen. Lies die Installationszusammenfassung und berichte:
- ob die Installation erfolgreich war
- ob Platzhalterrückstände oder Pfadfehler vorhanden sind
- ob von Paaren erstellter Loom-Inhalt während der Aktualisierung gelöscht wurde
- was der nächste Schritt sein sollte
Wenn die Überprüfung fehlschlägt, melde den Fehler und stoppe.
6. Grenze nach der Installation
Nach der Installation sind die nächsten Aktionen:
- Leite einen oder mehrere Plattformbäume aus der zielprojektlokalen Laufzeit ab:
node .harness/loom/sync.ts --provider claude
node .harness/loom/sync.ts --provider claude,codex,gemini
- Erstelle projektspezifische Paare mit
/harness-pair-dev --add ...
harness-init selbst sollte kein Sync ausführen, Paare erstellen oder abgeleitete Plattformbäume verändern.
Bewertungskriterien
- Install schreibt
.harness/loom/und.harness/cycle/in das Zielprojekt. - Install kopiert zielprojektlokale
hook.shundsync.tsnach.harness/loom/. - Install erstellt kein
.claude/,.codex/oder.gemini/. - Standard-Wiederholung bewahrt
.harness/cycle/und aktualisiert.harness/loom/. --forceaktualisiert sowohl.harness/loom/als auch.harness/cycle/.- Die Überprüfung wird anhand der Installationszusammenfassung beschrieben, nicht durch ad-hoc Shell-Inspektion.
- Der Workflow nach der Installation verweist auf zielprojektlokales
node .harness/loom/sync.ts --provider <list>. - Der Skill behandelt
.template.md-Ausgaben konsequent als zielseitige Laufzeitartefakte, nicht als Factory-seitige Arbeitsdateien.
Tabus
- Beschreibe die Installation so, dass
.claude/die Quelle der Wahrheit für die Laufzeit ist. Die kanonische Laufzeit-Staging-Umgebung ist.harness/loom/. - Weise die Ziel-Laufzeit an, Factory-Pfade wie
plugins/harness-loom/...zu lesen. - Lasse die Installation
.claude/,.codex/oder.gemini/erstellen oder ändern. - Mische Paar-Erstellung oder Plattformableitung in
/harness-init. - Mache diesen Skill zu einer zeilenweisen Kopie von
install.ts.
Referenzen
${CLAUDE_SKILL_DIR}/scripts/install.ts— kanonische Installer-Implementierungreferences/runtime/— Ziel-Laufzeitvorlagen, die in.harness/loom/gesät werden../harness-pair-dev/SKILL.md— Paar-Erstellung nach der Installation