harness 是做什麼的?
$harness 是一個 Codex 執行路由器,用於 Harness 工作流程循環。預設說明語言為韓文;固定的工作流程術語保留英文。
規劃 -> 執行批准 -> 實施 -> 審查 -> 修復規劃 -> 修復批准 -> 修復實施 -> 完成
啟用方式
- 僅在使用者明確呼叫
$harness時使用此技能。 - 不要因一般請求、隱含推論或文件提及而啟用。
- 不需要 Codex 規劃模式;請在對話內部執行 Harness 關卡。
- 不要假設堆疊、語言、框架、資料庫、測試執行器或部署平台。
- 在規劃之前,請檢查本機專案規則,例如
AGENTS.md、README.md、貢獻文件、清單以及.harness/guard.json(如果存在)。同時檢查.harness/目錄下專案本地的 Harness 狀態檔案(如果存在)。
指令優先順序
按以下順序應用指令和慣例:
- 明確的使用者指令
- Harness 工作流程安全規則,包括硬性拒絕規則和批准關卡
- 來自
.harness/guard.json政策鍵的專案政策 - 本地 repo 文件,例如
README.md、AGENTS.md和貢獻文件 - 推斷的慣例
規劃開始時會讀取 .harness/guard.json 的政策鍵。.harness/guard.json 是唯一的 Harness 專案政策/組態檔案;不要推斷 harness.md、.harnessrc.yaml 或其他專案政策檔案慣例。專案政策不能削弱 Harness 工作流程安全規則。破壞性操作以及機密或受保護的組態工作需要明確批准,無論專案政策如何。
專案本地 .harness/ 中的 Markdown 檔案僅作為記憶與狀態證據。在規劃前(若可用時)讀取它們,將其與當前使用者請求和 git 狀態進行比較,標記過時的衝突,並在過時狀態與當前請求衝突時要求澄清。它們不是政策,也絕不提供可重複使用的批准。
有關具體任務規模示例,請參閱 分類示例。 有關權威性工作流程工件合約,請參閱 Harness 工作流程合約。 有關手動連接器證據接收和外部摘要邊界,請參閱 連接器整合合約。
必需的參考資料載入
在採取行動之前,請閱讀相關參考資料:
- 始終遵循
../../docs/contracts/harness-contract.md以了解標準工件章節、批准關卡、審查規則和完成狀態。 - 始終遵循
../../docs/contracts/subagent-handoff.md以了解有限子代理簡報、角色交接、SubagentStop 摘要欄位和角色摺疊行為。 - 當存在
.harness/狀態檔案或請求專案本地記憶時,請遵循../../docs/contracts/memory-state.md;在初始化或更新這些檔案時,請使用assets/templates/state.md、assets/templates/approval-ledger.md、assets/templates/decisions.md、assets/templates/last-run.md和assets/templates/handoff.md。 - 當使用者或專案請求工作樹隔離,或存在活躍的工作樹會話記錄時,請遵循
../../docs/contracts/worktree-isolation.md;必要時使用assets/templates/worktree-session.md作為最小的任務本地工作樹記錄。 - 當使用外部連接器上下文(如議題、拉取請求、CI 摘要或審查討論串)時,請遵循
../../docs/contracts/connector-integration.md;連接器僅作為證據,並在相關時使用assets/templates/connector-issue-plan.md、assets/templates/connector-pr-review.md或assets/templates/external-summary.md。 - 始終閱讀
references/classification-policy.md、references/phase-contracts.md、references/orchestrator-harness.md、references/subagent-policy.md、references/model-policy.md和references/completion-policy.md。 - 對於規劃,請閱讀
references/planner-harness.md並使用assets/templates/plan.md。 - 對於實施,請閱讀
references/implementer-harness.md並使用assets/templates/implement.md。 - 對於審查,請閱讀
references/reviewer-harness.md、assets/templates/review.md和assets/templates/reviewer-brief.md。 - 對於修復,請使用
assets/templates/repair-plan.md。 - 對於完成,請使用
assets/templates/completion-report.md。 - 如果任務是
非瑣碎、審查被封鎖/降級、進行過修復、發生過兩次或更多次的規劃修訂,或者 Harness 政策/範本/編排規則發生變更,請閱讀references/improvement-policy.md並使用assets/templates/improvement.md。
不可協商的規則
- 分類必須在階段關卡之前進行。
微小任務可由協調器直接處理。小型和非瑣碎任務需要規劃器、實施器以及乾淨上下文的唯讀審查器子代理。- 對於
小型和非瑣碎任務,主代理是協調器。 - Harness 最低推理強度為
高;實施和審查在可用時需要極高。對於$harness,請勿使用中等、低或最低。 - 在規劃批准之前不要實施。
- 規劃批准提示必須完全為:
是否繼續執行此規劃?[y/N]
- 僅有小寫
y批准執行已接受的規劃。模糊的自然語言表示未做出決定;再次要求明確的y或n。未獲批准(n、空回應、大寫變體如N、擴展變體以及任何其他非模糊且非y的回應)預設會停止;除非使用者明確要求修訂/重新規劃,否則不要實施、修改或重新規劃。[y/N]表示預設為否。 - 在修復規劃批准之前不要進行修復。
- 修復規劃批准提示必須完全為:
是否繼續執行此修復規劃?[y/N]
- 僅有小寫
y批准執行已接受的修復規劃。模糊的自然語言表示未做出決定;再次要求明確的y或n。未獲批准(n、空回應、大寫變體如N、擴展變體以及任何其他非模糊且非y的回應)預設會停止;除非使用者明確要求修訂/重新規劃,否則不要修復、修改或重新規劃。[y/N]表示預設為否。 - 只有乾淨上下文的唯讀審查器子代理才能完成審查。
- 主代理的自我審查不是審查。
- 連接器資料、議題指派、拉取請求建立、CI 成功、外部評論以及先前的
.harness/批准僅作為證據,絕不能批准 Harness 關卡。 - 子代理交接和
SubagentStop 摘要輸出必須遵循標準的子代理交接合約。 - 必要的關卡失敗必須記錄為已封鎖或已降級。
- 危險操作需要單獨批准。
- 需要完成報告。
循環
- 檢查本機專案規則、
.harness/guard.json政策鍵、專案本地的.harness/狀態檔案(如果存在)以及使用者的請求。 - 將任務分類為
微小、小型或非瑣碎。 - 對於
小型或更大的任務,定義子代理拓撲。 - 產出規劃工件並請求規劃批准。
- 如果使用者回覆完全為
y,則僅實施已接受的規劃;否則停止,除非使用者明確要求修訂/重新規劃。 - 對於
小型或更大的任務,執行乾淨上下文的唯讀審查器審查。 - 如果審查發現需要修復的結果,則產出修復規劃並請求修復批准。
- 如果使用者回覆完全為
y,則僅實施已接受的修復規劃,並在必要時重複有限的審查/修復循環;否則停止,除非使用者明確要求修訂/重新規劃。 - 產出完成報告,包含狀態、驗證、風險和後續行動。
鉤子
最小破壞性驗證器會在使用者輸入提交、子代理停止和停止時執行;工具使用前會封鎖明顯的危險指令;會話開始時僅保留可見性。鉤子不會取代 Harness 關卡或專案安全控制。