Was macht harness?
$harness ist ein Codex-Ausführungsrouter für den Harness-Workflow-Loop. Die Standard-Erklärungssprache ist Koreanisch; feste Workflow-Begriffe bleiben auf Englisch.
Plan -> Ausführungsgenehmigung -> Implementieren -> Überprüfen -> Reparaturplan -> Reparaturgenehmigung -> Reparatur implementieren -> Abschluss
Aktivierung
- Verwenden Sie diese Fähigkeit nur, wenn der Benutzer explizit
$harnessaufruft. - Nicht bei gewöhnlichen Anfragen, impliziten Rückschlüssen oder Dokumentationserwähnungen aktivieren.
- Erfordern Sie keinen Codex Plant-Modus; führen Sie die Harness-Gates innerhalb des Gesprächs aus.
- Nicht von Stack, Sprache, Framework, Datenbank, Testrunner oder Bereitstellungsplattform ausgehen.
- Überprüfen Sie vor der Planung lokale Projektregeln wie
AGENTS.md,README.md, Mitwirkungsdokumente, Manifeste und.harness/guard.json, falls vorhanden. Überprüfen Sie auch projektspezifische Harness-Statusdateien unter.harness/, falls vorhanden.
Anweisungsreihenfolge
Wenden Sie Anweisungen und Konventionen in dieser Reihenfolge an:
- Explizite Benutzeranweisungen
- Harness-Workflow-Sicherheitsregeln, einschließlich hart ablehnender Regeln und Genehmigungs-Gates
- Projektrichtlinie aus den Policy-Schlüsseln von
.harness/guard.json - Lokale Repo-Dokumente wie
README.md,AGENTS.mdund Mitwirkungsdokumente - Abgeleitete Konventionen
Die Planung liest zu Beginn die Policy-Schlüssel von .harness/guard.json. .harness/guard.json ist die einzige Harness-Projektrichtlinien-/Konfigurationsdatei; leiten Sie nicht harness.md, .harnessrc.yaml oder andere Konventionen für Projektrichtliniendateien ab. Die Projektrichtlinie kann die Harness-Workflow-Sicherheitsregeln nicht abschwächen. Destruktive Operationen und Arbeiten mit Geheimnissen oder geschützten Konfigurationen benötigen unabhängig von der Projektrichtlinie eine explizite Genehmigung.
Projektlokale Markdown-Dateien in .harness/ sind ausschließlich Memory- und Status-Nachweise. Lesen Sie sie, wenn verfügbar, vor der Planung, vergleichen Sie sie mit der aktuellen Benutzeranfrage und dem Git-Status, kennzeichnen Sie veraltete Konflikte und fragen Sie nach Klärung, wenn ein veralteter Status mit der aktuellen Anfrage in Konflikt steht. Sie sind keine Richtlinie und liefern niemals eine wiederverwendbare Genehmigung.
Konkrete Beispiele für Aufgabenumfänge finden Sie in Klassifizierungsbeispielen. Den maßgeblichen Workflow-Artefaktvertrag finden Sie im Harness-Workflow-Vertrag. Informationen zur manuellen Connector-Evidenzaufnahme und zu externen Zusammenfassungsgrenzen finden Sie im Connector-Integrationsvertrag.
Erforderliches Referenzladen
Lesen Sie die relevanten Referenzen, bevor Sie handeln:
- Befolgen Sie immer
../../docs/contracts/harness-contract.mdfür kanonische Artefaktabschnitte, Genehmigungs-Gates, Überprüfungsregeln und Abschlussstatus. - Befolgen Sie immer
../../docs/contracts/subagent-handoff.mdfür begrenzte Sub-Agent-Briefings, Rollenübergaben,SubagentStop Summary-Felder und Rollenkollaps-Verhalten. - Befolgen Sie
../../docs/contracts/memory-state.md, wenn.harness/-Statusdateien vorhanden sind oder projektspezielles Gedächtnis angefordert wird; verwenden Sieassets/templates/state.md,assets/templates/approval-ledger.md,assets/templates/decisions.md,assets/templates/last-run.mdundassets/templates/handoff.mdbeim Initialisieren oder Aktualisieren dieser Dateien. - Befolgen Sie
../../docs/contracts/worktree-isolation.md, wenn der Benutzer oder das Projekt Worktree-Isolation anfordert oder wenn ein aktiver Worktree-Sitzungsdatensatz vorhanden ist; verwenden Sie bei Bedarfassets/templates/worktree-session.mdfür einen minimalen aufgabenlokalen Worktree-Datensatz. - Befolgen Sie
../../docs/contracts/connector-integration.md, wenn externer Connector-Kontext wie ein Issue, Pull-Request, eine CI-Zusammenfassung oder ein Überprüfungs-Thread verwendet wird; Connectors sind nur Nachweise und verwenden Sieassets/templates/connector-issue-plan.md,assets/templates/connector-pr-review.mdoderassets/templates/external-summary.md, wenn relevant. - Lesen Sie immer
references/classification-policy.md,references/phase-contracts.md,references/orchestrator-harness.md,references/subagent-policy.md,references/model-policy.mdundreferences/completion-policy.md. - Lesen Sie
references/planner-harness.mdfür die Planung und verwenden Sieassets/templates/plan.md. - Lesen Sie
references/implementer-harness.mdfür die Implementierung und verwenden Sieassets/templates/implement.md. - Lesen Sie
references/reviewer-harness.md,assets/templates/review.mdundassets/templates/reviewer-brief.mdfür die Überprüfung. - Verwenden Sie
assets/templates/repair-plan.mdfür Reparaturen. - Verwenden Sie
assets/templates/completion-report.mdfür den Abschluss. - Wenn die Aufgabe
Non-trivialist, die Überprüfung blockiert/verschlechtert ist, eine Reparatur stattgefunden hat, zwei oder mehr Planrevisionen stattgefunden haben oder sich die Harness-Richtlinien/Vorlagen/Orchestrierungsregeln geändert haben, lesen Siereferences/improvement-policy.mdund verwenden Sieassets/templates/improvement.md.
Unverhandelbare Regeln
- Die Klassifizierung muss vor den Phasen-Gates erfolgen.
Tinykann direkt vom Orchestrator bearbeitet werden.SmallundNon-trivialerfordern Sub-Agenten für Planer, Implementierer und einen schreibgeschützten Prüfer mit sauberem Kontext.- Bei
SmallundNon-trivialist der Haupt-Agent der Orchestrator. - Der minimale Denkaufwand für Harness ist
high; Implementieren und Überprüfen erfordernxhigh, falls verfügbar. Verwenden Sie nicht mittel, niedrig oder minimal für$harness. - Nicht vor der Plan-Genehmigung implementieren.
- Die Aufforderung zur Plan-Genehmigung muss genau lauten:
Mit diesem Plan fortfahren? [j/N]
- Nur Kleinbuchstabe
jgenehmigt die Ausführung des akzeptierten Plans. Mehrdeutige natürliche Sprache bedeutet keine Entscheidung; fordern Sie erneut ein explizitesjodernan. Nicht-Genehmigung (n, leere Antwort, Großbuchstaben-Varianten wieN, erweiterte Varianten und jede andere nicht moredeutige Nicht-j-Antwort) stoppt standardmäßig; implementieren, überarbeiten oder neu planen Sie nicht, es sei denn, der Benutzer fordert explizit eine Überarbeitung/Neuplanung an.[j/N]bedeutet, dass Nein die Standardeinstellung ist. - Nicht vor der Reparaturplan-Genehmigung reparieren.
- Die Aufforderung zur Reparaturplan-Genehmigung muss genau lauten:
Mit diesem Reparaturplan fortfahren? [j/N]
- Nur Kleinbuchstabe
jgenehmigt die Ausführung des akzeptierten Reparaturplans. Mehrdeutige natürliche Sprache bedeutet keine Entscheidung; fordern Sie erneut ein explizitesjodernan. Nicht-Genehmigung (n, leere Antwort, Großbuchstaben-Varianten wieN, erweiterte Varianten und jede andere nicht moredeutige Nicht-j-Antwort) stoppt standardmäßig; reparieren, überarbeiten oder neu planen Sie nicht, es sei denn, der Benutzer fordert explizit eine Überarbeitung/Neuplanung an.[j/N]bedeutet, dass Nein die Standardeinstellung ist. - Nur ein schreibgeschützter Prüfer-Sub-Agent mit sauberem Kontext kann die Überprüfung abschließen.
- Die Selbstüberprüfung durch den Haupt-Agenten ist keine Überprüfung.
- Connector-Daten, Issue-Zuweisungen, Pull-Request-Erstellung, CI-Erfolg, externe Kommentare und frühere
.harness/-Genehmigungen sind lediglich Nachweise und genehmigen niemals Harness-Gates. - Sub-Agent-Übergaben und
SubagentStop Summary-Ausgabe müssen dem kanonischen Sub-Agent-Übergabevertrag folgen. - Ein Fehler bei einem erforderlichen Gate muss als blockiert oder verschlechtert aufgezeichnet werden.
- Gefährliche Operationen erfordern eine separate Genehmigung.
- Ein Abschlussbericht ist erforderlich.
Schleife
- Untersuchen Sie lokale Projektregeln,
.harness/guard.json-Policy-Schlüssel, projektspezifische.harness/-Statusdateien (falls vorhanden) und die Benutzeranfrage. - Klassifizieren Sie die Aufgabe als
Tiny,SmalloderNon-trivial. - Definieren Sie für
Small- oder größere Aufgaben die Sub-Agent-Topologie. - Erstellen Sie ein Plan-Artefakt und fragen Sie nach der Plan-Genehmigung.
- Wenn der Benutzer genau
jantwortet, implementieren Sie nur den akzeptierten Plan; andernfalls stoppen Sie, es sei denn, der Benutzer fordert explizit eine Überarbeitung/Neuplanung an. - Führen Sie für
Small- oder größere Aufgaben eine Überprüfung durch einen schreibgeschützten Prüfer mit sauberem Kontext durch. - Wenn die Überprüfung Erkenntnisse liefert, die eine Reparatur erfordern, erstellen Sie einen Reparaturplan und fragen Sie nach der Reparaturgenehmigung.
- Wenn der Benutzer genau
jantwortet, implementieren Sie nur den akzeptierten Reparaturplan und wiederholen Sie die begrenzte Überprüfungs-/Reparaturschleife, falls erforderlich; andernfalls stoppen Sie, es sei denn, der Benutzer fordert explizit eine Überarbeitung/Neuplanung an. - Erstellen Sie den Abschlussbericht mit Status, Verifizierung, Risiken und Folgemaßnahmen.
Hooks
Minimale, nicht-destruktive Validierer werden für UserPromptSubmit, SubagentStop und Stop ausgeführt; PreToolUse blockiert offensichtlich gefährliche Befehle; SessionStart bleibt nur sichtbar. Hooks ersetzen keine Harness-Gates oder projektspezifischen Sicherheitskontrollen.