这张图把“什么时候写什么文档、在哪里设置什么机制、由什么触发、如何进入代码实现、如何回写长期记忆”串成一条闭环。 核心原则:文档不是额外负担,而是 AI 的长期上下文、约束入口和合并依据。
这些文件决定 AI 每次进仓库后先相信什么、先读什么、不能越过什么边界。
不能只写“请测试一下”。必须写真实可执行命令,否则 AI 很容易自我验证。
如果没有门禁,模板会退化成“大家自觉维护 MD”。建议从低成本规则开始。
| 第一层 | AGENTS.md:项目级规则、禁止事项、默认流程、验证要求。 |
|---|---|
| 第二层 | docs/context/project-context.md:业务背景、产品目标、稳定术语。 |
| 第三层 | docs/context/ai-autonomy-policy.md:AI 可以自主做什么,哪些必须先问人。 |
| 第四层 | docs/context/codebase-map.md:代码结构、模块边界、常见入口。 |
| 第五层 | active requirement + active owner doc + active plan:本次任务的直接依据。 |
| 极小改动 | 文案、局部样式、明显 bug,小于 1~2 个文件,可直接处理,但仍要记录验证。 |
|---|---|
| 中等改动 | 涉及多个文件、接口或业务分支,必须先写 docs/plans/。 |
| 高风险改动 | 数据库、权限、支付、调度、核心状态机,必须更新 owner doc,并经过人工/AI plan audit。 |
| 修 bug | 必须补 docs/bugs/,并说明对应测试覆盖,避免同类问题复发。 |
| 架构变化 | 必须更新 docs/architecture/ 与 codebase-map,否则下一轮 AI 会读到旧世界。 |
检查:需求文档是否存在、验收标准是否为空、验证命令是否填写。
工具:PR 模板 + docs lint + 简单脚本。
检查:涉及 src、db、api、auth、workflow 等关键目录时,必须有 docs/plans。
目标:防止 AI 直接大范围改代码。
检查:是否同步更新 docs/design 或 docs/architecture。
目标:防止代码变了,长期文档还是旧的。
检查:known-good-baselines.md 中的命令是否能跑通。
目标:防止“AI 说已验证”但实际没验证。
检查:代码、文档、测试、日志、bug 记录是否闭环。
目标:防止 demo 化完成。
检查:docs/context/codebase-map.md 是否反映最新模块边界。
目标:让下一轮 AI 快速定位代码。
检查:是否有 docs/bugs 记录,是否补测试覆盖。
目标:把错误变成下次 AI 的约束。
检查:docs/logs 记录本次做了什么、没做什么、验证结果。
目标:支持多 session 接力。
| 触发事件 | 必须更新 | 建议更新 | 检查机制 | 风险 |
|---|---|---|---|---|
| 新需求进入 | 必须 docs/input/ | docs/discussions/ | 需求入口记录 | 原始上下文丢失,后续只能靠口头解释 |
| 需求已明确 | 必须 docs/requirements/ | docs/backlog/README.md | 验收标准检查 | AI 不知道完成标准,容易过度发挥 |
| 业务流程变化 | 必须 docs/design/ | docs/requirements/ 反链 | Owner Doc 检查 | 业务规则散落在代码里 |
| API / DB / 权限 / 模块边界变化 | 必须 docs/architecture/ | docs/context/codebase-map.md | 关键目录变更检查 | 下一轮 AI 读取旧架构,越改越偏 |
| 复杂实现开始前 | 必须 docs/plans/ | plan audit 记录 | 复杂度门禁 | AI 大范围改动不可控 |
| 代码实现完成 | 必须 docs/logs/ | docs/testing/ | Closure audit | 多 session 无法接力,不知道实际做了什么 |
| 发现或修复 bug | 必须 docs/bugs/ | known-good-baselines.md | bugfix PR 检查 | 同类错误反复出现 |
| 验证命令变化 | 必须 known-good-baselines.md | docs/testing/README.md | CI 执行基线 | AI 引用过期测试命令,产生假验证 |