模板使用指南
这些模板可以直接复制到你的项目里用。每个文件在 agent 的工作流程中各有分工。复制过去后,把里面的命令、路径、功能名称和验证步骤换成你自己项目的。
怎么开始
先把这四个文件复制到项目根目录:
AGENTS.md或CLAUDE.mdinit.shclaude-progress.mdfeature_list.json
等项目变复杂了,再补其余的文件。
AGENTS.md
根指令文件。agent 每次开工会先读这个文件。它定义了工作规则:写代码前要做什么、工作过程中怎么守规矩、收尾时要检查什么。
怎么用:
- 复制到项目根目录
- 把开工流程里的步骤换成你自己项目的路径和命令
- 工作规则按你们团队的约定调整
- 完成定义那一段别改——那是整个 harness 最关键的部分
它帮 agent 做什么:
- 让它在开始工作前先读进度和功能状态
- 逼它一次只做一个功能
- 要求它拿出证据才能标记完成
- 定义了什么叫"干净收尾"
用 AGENTS.md 给 Codex 或其他 agent。用 CLAUDE.md 给 Claude Code——内容一样,格式按 Claude 的指令风格来的。
init.sh
启动脚本。一条命令完成依赖安装、验证和打印启动命令。
怎么用:
- 复制到项目根目录
- 改顶部这三个变量:
INSTALL_CMD— 你的依赖安装命令(比如npm install、pip install -r requirements.txt)VERIFY_CMD— 你的基础验证命令(比如npm test、pytest)START_CMD— 你的开发服务器启动命令(比如npm run dev)
- 加执行权限:
chmod +x init.sh
它做什么:
- 打印当前目录(确认跑在正确的地方)
- 安装依赖
- 跑验证命令
- 打印启动命令(如果设了
RUN_START_COMMAND=1就直接启动)
如果验证失败了,agent 应该停下来先修基础状态,不要在坏的基础上继续叠新功能。
claude-progress.md
进度日志。每轮会话往里写,每轮新会话先读它。
怎么用:
- 复制到项目根目录
- 把"当前已验证状态"那段填上你的项目信息
- 每轮会话结束后更新会话记录
每个字段的意思:
- 当前已验证状态 — 项目当前进展的唯一真相
仓库根目录— 项目在哪标准启动路径— 把项目跑起来的命令标准验证路径— 跑测试的命令当前最高优先级未完成功能— 下一轮该做什么当前 blocker— 哪里卡住了
- 会话记录 — 每轮一条
本轮目标— 打算做什么已完成— 实际做了什么运行过的验证— 跑了什么测试已记录证据— 留下了什么证明提交记录— 提了什么 commit已知风险或未解决问题— 哪里可能有问题下一步最佳动作— 下一轮从哪开始
feature_list.json
功能清单。机器可读的功能列表,每个功能有状态、验证步骤和证据。
怎么用:
- 复制到项目根目录
- 把示例功能换成你自己的
- 每个功能需要填:
id— 短的唯一标识priority— 整数,越小越优先area— 属于应用的哪块(比如 "chat"、"import"、"search")title— 简短描述user_visible_behavior— 功能正常时用户能看到什么status— 四种状态之一:not_started、in_progress、blocked、passingverification— 逐步验证步骤evidence— 验证通过的记录(agent 填)notes— 额外说明
状态规则:
not_started— 还没碰in_progress— 当前正在做的那个(同一时间只能有一个)blocked— 有记录的阻塞问题,推不动passing— 验证通过,证据已记录
agent 任何时候只能有一个功能处于 in_progress。
session-handoff.md
会话交接摘要。一轮会话结束时写,下一轮开始时读。让接手的人(或 agent)快速了解现状。
怎么用:
- 复制到项目根目录
- 每轮会话结束时填写(也可以让 agent 自己填)
每段写什么:
- 当前已验证 — 哪些是确认能用的,跑过什么验证
- 本轮改动 — 改了什么代码或基础设施
- 仍损坏或未验证 — 已知问题和风险区
- 下一步最佳动作 — 下一轮该做什么,哪些东西不要动
- 命令 — 启动、验证、调试命令,方便快速参考
短会话可以不写这个文件。会话长了或者项目有多个并行区域时,它就很关键了。
clean-state-checklist.md
收尾检查清单。每次会话结束前过一遍,确保仓库处于下一轮可以直接开工的状态。
怎么用:
- 复制到项目根目录
- 关掉会话前逐项检查
- agent 的收尾流程里也应该包含这些检查
检查什么:
- 标准启动路径还能用
- 标准验证还能跑
- 进度日志已更新
- 功能清单真实反映了 passing 和未验证的边界(没有假 passing)
- 没有半成品处于未记录状态
- 下一轮会话不需要人工修复就能继续
evaluator-rubric.md
评审评分表。会话结束后或到里程碑时,用它评估 agent 做的东西够不够格。
怎么用:
- 复制到项目根目录
- 一轮(或几轮)会话后,按六个维度打分
- 每个维度 0-2 分
六个维度:
- 正确性 — 实现出来的行为是否符合目标功能
- 验证 — 要求的检查是否真的跑过,并留下证据
- 范围纪律 — 是否基本保持在选定功能范围内
- 可靠性 — 结果是否能在重启或重跑后继续工作
- 可维护性 — 代码和文档是否清楚到足以交给下一轮会话
- 交接准备度 — 新会话是否能只靠仓库内文件继续推进
结论选项:
- Accept — 达标
- Revise — 需要修补才能接受
- Block — 有根本性问题,需要先解决
Evaluator 需要校准。 开箱即用的 agent 做评审很弱——它会发现问题,然后把自己说服到通过。你需要反复校准:
- 用 evaluator 给一个已完成的 sprint 打分。
- 把它的分数和你自己的人工判断对比。
- 有分歧的地方,把 rubric 里的通过/失败标准写得更具体。
- 对同一个输出重新跑 evaluator,看对齐了没有。
- 重复直到 evaluator 的判断和人工评审基本一致。
预计需要 3-5 轮校准。每轮记录改了什么、为什么改。
quality-document.md
质量快照。给项目的每个产品领域和架构层打分,跟踪代码库随时间是变强了还是变弱了。
怎么用:
- 复制到项目根目录
- 开始会话前:读它,了解代码库哪里最弱
- 会话结束后:更新评级
- 长期:对比不同时间点的快照,看哪些 harness 改动真正改善了代码库健康度
评什么:
- 产品领域(如文档导入、问答流程、索引):每个领域按验证状态、Agent 可读性、测试稳定性、关键缺口打分
- 架构层(如 Main Process、Preload、Renderer、Services):每层按边界执行和 Agent 可读性打分
为什么需要它:
Evaluator rubric 评的是单次 agent 输出的质量。Quality document 评的是代码库本身的质量。它们回答的是不同的问题:
- Evaluator rubric:"这轮 agent 做得好不好?"
- Quality document:"这个项目是在变强还是变弱?"
什么时候更新:
- 每轮重要会话之后
- 做基准对比之前
- 做清理或简化之后
- 换新 agent 或新模型时
和 harness 简化的关系:
Quality document 也可以用来验证 harness 是否可以简化。Harness 里的每个组件都编码了一个假设——"模型做不到这件事"。模型变强后,这些假设就过时了。检查某个组件是否还有必要:
- 拍一份 quality document 快照。
- 移除一个 harness 组件。
- 跑基准测试。
- 再拍一份快照。
- 对比——评级没降,说明那个组件是多余的。降了,就恢复。