doc-chain:一站式管理AI变更边界的文档依赖网络
在使用AI编写项目文档或代码时,您可能经常遇到以下场景:
- 术语不一致:PRD里叫“用户”,技术方案里成了“客户”,代码里又写成“member”。
- 修改A遗漏B:PRD增加了新状态,技术方案跟上了,但测试用例却还在使用旧状态值。
- 越界发挥:让AI补充一个接口字段,它顺手改了响应结构、换了错误码格式。
- 代码走样:技术方案写得清清楚楚,代码实现却漏了权限校验、多了未定义字段。
归根结底,问题只有一个:AI缺乏明确的边界意识。它不了解自己的修改会波及哪些下游文档,也不清楚代码实现必须严格遵循文档定义的范围。
doc-chain的解决方案非常直接:构建文档依赖网络,通过清晰的上下游关系界定每份文档的权责边界。文档是项目的唯一事实来源,代码则是文档的精确镜像实现。从文档生成到代码落地,边界控制贯穿整个流程。
1. 核心机制(一分钟快速了解)
doc-chain的核心功能仅包含两项:
文档之间的依赖关系如下:
PRD-顶层定义│┌─────────────────┼─────────────────┐↓ ↓ ↓ 交互-顶层定义UI-顶层定义技术-顶层定义│ │ │└─────────────────┼─────────────────┘↓PRD-订单模块│┌─────────────────┼─────────────────┐↓ ↓ ↓ 交互-订单流程UI-订单页面技术-订单服务│ │ │└─────────────────┘ ↓ 测试-订单模块 ↑ │ 代码实现 & 审计
三条边界控制规则,简明扼要:
| 规则 | 场景 | AI 必须执行的操作 |
|---|---|---|
| 下游不得超出上游 | 写技术方案时想新增接口 | 先确认该功能在 PRD 里有定义,没有就停止。 |
| 上游变更必须同步下游 | PRD 修改了状态机定义 | 扫描所有下游文档,列出影响范围,并询问是否同步。 |
| 代码不得偏离文档 | 按技术方案完成代码后 | 逐项审计:接口路径、字段名、类型、错误码、权限规则。 |
任何一条规则被触发,AI必须暂停并等待您的确认,而非自行继续。
2. 实战应用(可直接套用)
doc-chain 是一个 Kimi Code CLI Skill。安装后,核心就三种用法:
用法 A:从零开始,文档与代码一站式落地
直接复制:
AI 的执行路径:
- 生成
PRD-顶层定义.md,头部写入upstream-document依赖表。 - 按依赖顺序产出模块文档:
PRD-订单模块→交互-订单流程→UI-订单页面→技术-订单服务。 - 每份文档头部声明实际加载的上游来源。
- 按技术方案实现代码。
- 启动只读 subagent,执行文档-代码一致性审计,产出审计报告。
用法 B:文档已有,一站式补代码并校验
直接复制:
AI 的执行路径:
- 读取技术方案文档和上游 PRD 文档。
- 按文档实现代码。
- 代码变更触发阶段 5 审计。
- 产出《文档-代码一致性审计报告》,标注差异项和修正建议。
用法 C:需求变更,一站式同步文档与代码
直接复制:
AI 的执行路径:
- 暂停上游修改,先分层扫描下游。
- 列出影响清单(交互状态机、UI 语义色、技术表结构、测试用例、代码枚举)。
- 询问确认。
- 级联更新所有下游文档。
- 同步修改代码。
- 重新执行审计。
3. 为什么不会降低AI效率?
您可能会担心一个实际问题:“每次修改文档都要扫描上下游,Token会不会迅速消耗?”
实际情况并非如此。doc-chain 的触发策略非常克制:
- 非文档场景下不触发:如果您问“写个排序算法”、“解释这段代码”,doc-chain 完全不加载。
- 采用增量审计:修改模式下只加载变更 diff 以及受影响章节,不读取全文。
- 脚本兜底检查:编号连续性、引用有效性、格式一致性等机械检查由
doc-audit.py执行,不走模型。 - 代码审计独立执行:由只读 subagent 执行,主会话不自行审查自己。
边界控制的设计非常轻量——仅在越界时发出提醒,平时不会干扰正常流程。
4. 命名规范:模板与产出必须严格区分
doc-chain 对 skill 内部文件和项目产出做了严格的命名隔离:
| 层级 | Skill 内部(模板文件) | 项目产出(事实依据) |
|---|---|---|
| 顶层定义 | references/top-level/prd-top-level-template.md |
PRD-顶层定义.md |
| 模块文档 | references/steps/prd-step.md |
PRD-v1-订单模块.md |
关键区别如下:
- 带有
-template后缀的文件:Skill 内部参考文件,仅供 AI 阅读,禁止复制到项目。 - 项目产出的文件:填充了实际内容的文档,是下游文档和代码的唯一合法来源。
5. 常见避坑指南
-
切勿跳过顶层定义
错误做法:“直接写订单模块的 PRD”。
正确做法:“先检查 PRD-顶层定义 是否存在,没有就先生成”。
缺乏顶层定义约束,模块文档的编号、术语、状态值会在不同模块间产生冲突。 -
不要脑补需求
用户说“加个功能”但未说明边界 → AI 必须先列出 gap 分析清单 → 用户确认后再输出。doc-chain 强制此流程。 -
不要绕过上游缺陷
写技术方案时发现 PRD 状态机有矛盾 → 停下来,先回改 PRD → 同步下游 → 再继续。禁止在下游私自“适配”。 -
代码必须审计
技术方案再完美,代码也可能走样。阶段 5 的代码落地验证不是可选项。字段命名风格差异(snake_case vs camelCase)不算不一致,但业务含义必须一致。 -
编号不回收
删除F005后编号留空,后续从F006继续。复用编号会导致上下游引用错乱。
总结
doc-chain 并不会增加文档工作量,它只是在关键节点设置边界检查点,一站式覆盖从文档到代码的完整链路:
PRD 顶层定义 ──→ 模块 PRD ──→ 交互 ──→ UI ──→ 技术方案 ──→ 代码实现 ↑│ └──────────── 变更时回溯上游、同步下游 ─────────────────────────┘
项目规模越大、AI会话越多、文档链路越长,这种一站式边界控制的价值就越突出。
