harness 是做什么的?
$harness 是用于 Harness 工作流循环的 Codex 执行路由器。默认的解释语言为韩语;固定的工作流术语保留为英文。
规划 -> 执行审批 -> 实施 -> 审查 -> 修复规划 -> 修复审批 -> 修复实施 -> 完成
激活
- 仅当用户显式调用
$harness时才使用此技能。 - 请勿因普通请求、隐式推断或文档提及而激活。
- 不需要 Codex 规划模式;在对话中运行 Harness 门控。
- 不要假设技术栈、语言、框架、数据库、测试运行器或部署平台。
- 在规划前,检查本地项目规则,例如
AGENTS.md、README.md、贡献文档、清单以及.harness/guard.json(如果存在)。同时检查.harness/目录下的项目本地 Harness 状态文件(如果存在)。
指令优先级
按以下顺序应用指令和约定:
- 显式用户指令
- Harness 工作流安全规则,包括硬拒绝规则和审批门控
- 来自
.harness/guard.json策略键的项目策略 - 本地仓库文档,如
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 Summary字段和角色折叠行为。 - 当
.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。 - 如果任务是
非平凡(Non-trivial)、审查被阻止/降级、发生过修复、发生过两次或更多次规划修订,或者 Harness 策略/模板/编排规则发生了更改,请阅读references/improvement-policy.md并使用assets/templates/improvement.md。
不容商议的规则
- 分类必须在阶段门控之前发生。
微小(Tiny)任务可由协调器直接处理。小(Small)和非平凡(Non-trivial)任务需要规划者、实施者和清洁上下文的只读审查者子代理。- 对于
小和非平凡任务,主代理是协调器。 - Harness 最低推理努力为
高(high);实施和审查需要极高(xhigh)(如果可用)。不要在$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 Summary输出必须遵循规范的子代理交接契约。 - 必要的门控失败必须记录为阻塞或降级。
- 危险操作需要单独的审批。
- 必须提供完成报告。
循环
- 检查本地项目规则、
.harness/guard.json策略键、项目本地.harness/状态文件(如果存在)以及用户请求。 - 将任务分类为
微小(Tiny)、小(Small)或非平凡(Non-trivial)。 - 对于
小或更大任务,定义子代理拓扑。 - 生成规划产物并请求规划审批。
- 如果用户回复恰好是
y,则仅实施已接受的计划;否则停止,除非用户明确要求修改/重新规划。 - 对于
小或更大任务,运行清洁上下文的只读审查者进行审查。 - 如果审查发现需要修复的问题,则生成修复计划并请求修复审批。
- 如果用户回复恰好是
y,则仅实施已接受的修复计划,并在必要时重复有界的审查/修复循环;否则停止,除非用户明确要求修改/重新规划。 - 生成包含状态、验证、风险和后续步骤的完成报告。
钩子
最小非破坏性验证器为 UserPromptSubmit、SubagentStop 和 Stop 运行;PreToolUse 会阻止明显危险的命令;SessionStart 保持仅可见性。钩子不取代 Harness 门控或项目安全控制。