|
|
13 stundas atpakaļ | |
|---|---|---|
| .. | ||
| docs | 13 stundas atpakaļ | |
| sops | 3 dienas atpakaļ | |
| tools | 13 stundas atpakaļ | |
| README.md | 3 dienas atpakaļ | |
| feature_list.json | 13 stundas atpakaļ | |
| init.sh | 3 dienas atpakaļ | |
| progress.md | 13 stundas atpakaļ | |
这套东西解决的问题:多轮会话开发时,状态不要存在于聊天记录或人的记忆里, 而是存在于仓库文件中。
参考:Learn Harness Engineering
(核心公式 Agent = Model + Harness;设计原则:短入口,深链接)
harness/
├── README.md 本文件:结构导航
├── progress.md ★ 进度日志:当前已验证状态 + 每轮会话记录
├── feature_list.json ★ 功能清单:状态 / 验证步骤 / 证据
├── init.sh 安装依赖 + 基础验证 + 打印启动命令
│
├── tools/ 脚本都写这里(验证脚本、调试脚本、结构校验)
│ ├── README.md
│ └── validate-harness.mjs ★ 校验 harness 结构本身(见下「机械约束」)
│
├── docs/ 项目文档
│ ├── architecture.md 架构、目录、核心系统、关键约束
│ ├── quality.md 质量评分:各领域现状与缺口
│ ├── exec-plans/ ★ 执行计划与技术债
│ │ ├── README.md 计划管理方式(含「计划只能放这里」的硬规则)
│ │ ├── active/ 进行中的计划
│ │ ├── completed/ 已完成的计划(决策追溯)
│ │ └── tech-debt-tracker.md 技术债清单
│ └── reference/ 接口契约与参考资料
│ ├── README.md 索引:先读哪份
│ ├── api-chat.md 现行接口契约
│ ├── api-chat-fields-zh.md 字段中英对照
│ ├── DMS_*.md DMS 契约与栏目现状(含实测结论)
│ └── legacy/API.md 交接时的代码快照(非规格,勿照抄)
│
└── sops/ 标准流程
├── session-start.md 开工流程
├── session-end.md 收尾清单
├── handoff.md 会话交接
├── verification.md 验证流程(含本项目踩过的坑)
└── evaluator-rubric.md 六维度评审表
★ = 每轮都会读写;其余按需查。
文档写「计划要放 exec-plans/」「同一时间只能一个 in_progress」,
光写着没用 —— 违反的时候得有东西报错:
node harness/tools/validate-harness.mjs # 退出码非 0 = 有违规
它会检查:必备文件是否齐、有没有游离的计划文件、feature_list.json 是否有
假 passing / 重复 id / 多个 in_progress、progress.md 的会话编号是否重复。
收尾时跑一次(见 sops/session-end.md)。
开工:按 sops/session-start.md 走 ——
读 progress.md 与 feature_list.json → 看提交 → 跑 init.sh → 只选一个功能做。
收尾:按 sops/session-end.md 过一遍清单,
当场更新 progress.md 与 feature_list.json,不要攒到会话结束。
验证:按 sops/verification.md ——
接口相关改动必须对真实后端端到端验证,脚本写到 tools/。
feature_list.json 里只有一个 in_progress)根 CLAUDE.md 只保留很短的入口(开工步骤 + 规则 + 指向本目录)。
架构细节、接口契约、流程细节都在 harness/ 里 —— 这是刻意的:
入口短才有人读,细节深才不会污染入口。
| 位置 | 内容 | 入库 |
|---|---|---|
README.md |
改动记录(按日期),给团队看 | ✅ 入库 |
CLAUDE.md / agents.md |
简短入口 + 工作规则 / 开发原则 | ✅ 入库(2026-09-17 起) |
harness/(本目录) |
状态、流程、文档、脚本 | ✅ 入库(2026-09-17 起) |
.env.*.local、.claude/settings.local.json |
带凭据的本机配置 | ❌ 不入库 |
harness/tools/_*.mjs |
esbuild 打包产物 | ❌ 不入库(会与源码漂移) |
⚠️ 不要在三处重复记同一件事。 变更明细记在
README.md;harness/里只记 README 没有的东西 —— 哪些验证过、哪些还挂着、下一步做什么。