Claude Code Harness 进阶配置:HARNESS_AUTO_APPROVE 与编排账本的终极手册
2026/9/18 8:26:19 网站建设 项目流程

Claude Code Harness 进阶配置:HARNESS_AUTO_APPROVE 与编排账本的终极手册

【免费下载链接】claude-code-harnessClaude Code Dedicated Development Harness - Achieving High-Quality Development Through an Autonomous Plan→Work→Review Cycle项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-harness

Claude Code Harness是一个为 Claude Code 打造的专业开发工具链(Harness),通过自主的「计划→执行→审查」闭环实现高质量开发。本文将带你配置两个进阶能力:HARNESS_AUTO_APPROVE 自动审批编排账本(Orchestration Ledger)——让 AI 在安全边界内放心放手,同时留下完整的工作痕迹。

🔐 先搞懂:自动审批为什么默认关闭?

Claude Code Harness 的自动审批采用故障安全(fail-safe)设计:默认关闭,且任何一个前置条件不满足都会自动回退到人工审批。源码逻辑在 go/internal/autoapprove/autoapprove.go 中定义,AutoApproveEnabled函数要求四个条件同时成立

#条件说明
1环境变量HARNESS_AUTO_APPROVE=on严格匹配,只接受小写on
2前置阶段92.1.1已完成Plans.md或阶段门文件中确认
3前置阶段92.2.3已完成同上
4前置阶段96.1.2已完成同上

这意味着:光设环境变量是不够的。阶段完成状态由 go/internal/plans/ 解析Plans.md,或检查.claude/state/phase-gates/<phase>.done门文件(见defaultPrereqChecker函数)。

💡 新手建议:先完成上述三个阶段门,再开启自动审批——这是项目团队刻意设计的"渐进信任"路径。

🛡️ Worktree 作用域:审批边界的"隐形护栏"

即使自动审批已启用,它也只对worktree 内部的路径生效。AppliesTo函数会把目标路径解析为绝对路径并判断是否位于 worktree 根目录下:

  • ✅ worktree 内的路径 → 自动审批生效
  • ❌ 越界路径 → 升级为人工审批(配合runtimefloor/wtfingerprint做硬停止)

相关护栏实现位于 go/internal/guardrail/ 与 go/internal/scopeleash/,你可以在 go/internal/autoapprove/autoapprove_test.go 中查看边界测试用例。

📒 编排账本:这次活儿到底是谁干的?

当你把任务委派给 Codex / Cursor 等外部后端时,编排账本回答一个关键问题:"这个会话中,实际干活的到底是哪个后端?"(见spec.md中的 "Orchestration Visibility Contract")。

账本核心实现在 scripts/lib/orchestration-ledger.sh,由codex-companion.shcursor-companion.sh每次委派时调用orch_emit_ledger写入一条记录。

八条字段,一次说清

每条账本记录只包含固定标量字段,绝不记录提示词、文件内容或密钥:

字段含义
ts时间戳
backend实际执行的后端
subcommand子命令类型
write是否发生写入
exit_code退出码(可为 null)
duration_ms耗时(毫秒,可为 null)
session_id会话 ID
counts是否为真实委派(task/review/adversarial-review为 true)

两个值得注意的设计:

  • 防刷分机制statussetup等轮询类命令记录为counts=false,避免虚增分数(orch_counts_for函数)。
  • Fail-open 原则:账本写入失败绝不影响委派本身的退出码,调用方必须用orch_emit_ledger ... || true形式调用。

📊 查看账本:路径、汇总与记分卡

  • 账本文件:默认写入项目根目录.claude/state/orchestration-ledger.jsonl(可用环境变量HARNESS_ORCHESTRATION_LEDGER覆盖)
  • 累计统计.claude/state/orchestration-totals.json(可用HARNESS_ORCHESTRATION_TOTALS覆盖)
  • 汇总脚本:scripts/orchestration-rollup.sh
  • 记分卡脚本:scripts/orchestration-scorecard.sh
  • Go 实现:go/internal/orchestrationledger/

⚙️ 配套配置:把安全开关调到合适档位

自动审批不是孤立的开关,它与 claude-code-harness.config.example.json 中的多组配置协同工作:

  • safety.modedry-run等安全模式
  • git.allow_auto_commit/allow_auto_push:Git 自动操作开关
  • paths.allowed_modify/paths.protected:可修改路径白名单与保护路径

字段语义详见 claude-code-harness.config.schema.json。建议新手先保持allow_auto_commit: false,跑通整个流程后再逐项放开。

❓ 常见问题

Q1:设置了HARNESS_AUTO_APPROVE=on但审批没生效?检查三个前置阶段是否完成。任一缺失,系统会返回auto-approve:disabled (prereq-missing:...)并写入账本,方便你排查。

Q2:账本会泄露敏感信息吗?不会。orch_emit_ledger在接口设计上就没有 prompt 参数,只记录八个标量字段,这是硬性契约。

Q3:账本写入失败会中断任务吗?不会。Fail-open 设计确保账本是"观察层",永不改变业务行为。

✅ 写在最后

Claude Code Harness 的进阶哲学可以概括为一句话:信任是挣来的,痕迹是省掉的。HARNESS_AUTO_APPROVE 用阶段门把"自动"关进笼子,编排账本则让每一次委派都有据可查。从 docs/CLAUDE.md 了解整体约定,再配合本文的两个进阶能力,你就可以把 AI 开发闭环真正跑起来了。

【免费下载链接】claude-code-harnessClaude Code Dedicated Development Harness - Achieving High-Quality Development Through an Autonomous Plan→Work→Review Cycle项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code-harness

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询