Skip to content

Repository files navigation

docs-governance

一个 Claude Code 插件,用「文档驱动开发」治理 AI 协作项目:把项目拆成各司其职的小文档,AI 照文档干活,并持续防止文档随代码腐烂。

为什么需要它

AI 让代码变得便宜、可丢弃、可再生。当写代码不再是瓶颈,承重的东西就上移到意图(文档)和验证(测试)——人维护的是规格和验收,代码只是规格的一次投影。

但这套范式有个最容易塌的地方:文档会腐烂。README 撒谎、架构图描述一次没上线的重构、AI 每次进会话都在重新摸索本该一读就懂的结构。docs-governance 专门治这个腐烂。

它和 Claude 生态里的 onboarding 类工具是互补的:codebase-onboarding 解决"第一次进场",本插件解决"几个月后那张图还为不为真"——维护期的持续治理。

它怎么治

把项目文档当成一个小系统:四份各司其职、互不重叠的「脊柱」文档,加一套分级读取协议(不每次全读,省上下文),再把脊柱之外的所有文档按角色分层、按需读。

脊柱文档 唯一职责 进会话怎么读
CLAUDE.md 宪法:永久硬规则 + 指路牌 全文常驻
CLAUDE_MAP.md 地图:只记文件树看不出来的(依赖方向 / 误导清单 / 别动区) 默认不读,改文件前必读
PROJECT_STATUS.md 健康仪表盘:指标 + 删除区 + P0 只有红线块常驻
PROJECT_LOG.md 流水账:只追加的历史 按需 grep

关键纪律:每个事实只活在一份文档里(非重叠);脊柱只放索引和指路牌,细节下沉到对应层;"不读会悄悄出事"的红线常驻,其余按需。

另配一条契约式前后端协作线(contract-first):一份 CONTRACT.md 当前后端唯一真相源,防字段漂移导致集成白屏——本质是轻量的消费者驱动契约(CDC)/ 契约测试,支持单会话多 agent 和多终端异步两种模式。

第三条线是模块回归审计module-regression):一份 REGRESSION.md 台账登记每个模块的下游消费者(脚本生成)和可执行的回归验收命令,改完照单跑"本模块+全部下游",退出码终审——防大项目里"改一个模块悄悄弄坏其他模块"。

第四条线是测试协作治理test-collaboration):一份 TESTS.md 盘点现有测试资产,把需求、规则、风险和 Bug 登记成 TEST-ID,持续暴露必要、缺失、疑似重复和疑似废弃的测试。它回答“应该测什么、为什么测、证据在哪”;REGRESSION.md 只回答“改完重跑什么”。

治理常见错误(dogfood 里反复撞到的)

错误 正确做法
STATUS 撒谎(指标停在旧快照、说"无 git"其实早建了) STATUS 只写量过的当前真相,旧事实移进 LOG
血肉上浮:脊柱里混进目录树镜像 / 逐条历史 / 整篇产物 脊柱只留索引和指路牌,细节下沉到对应层
CLAUDE_MAP 抄文件树(ls 就有、还会过期) MAP 只记树看不出来的:依赖方向 / 误导清单 / 别动区
孤儿文档:有 .md 没人从脊柱指向它 挂上指路牌,否则没人读必烂
每次进会话全读四份,白占上下文 分级读:红线常驻,其余按需
一上来铺满四件套(小项目过度治理) 渐进式采用,按预警信号上下一级
个人偏好塞进团队 CLAUDE.md CLAUDE.local.md / ~/.claude/

真实使用案例(dogfood,非演示)

项目 跑了什么 抓到什么
经营报表加工(324 个 .py) /governance-audit CLAUDE_MAP 长到 143 行、抄目录树、跟 STATUS 抢职责
礼仪课程 demo(59 个 .js,Node) 审计 + 修复 STATUS 三项指标漂移(style.css 标 443 实为 605)、6 个误导备份目录未标注、CLAUDE.md 指路牌指向废弃文件——全部修正,留有 git diff
本插件自身 套自己的四件套 + scripts/verify.sh 用自己的方法论治自己,结构自检全绿

审计输出长这样(节选改写自礼仪课程 demo 的真实审计记录)

/governance-audit

🔴 STATUS 撒谎:style.css 标 443 行,实测 605 行(wc -l 验证)
🔴 指路牌断链:CLAUDE.md 指向的部署文档已废弃,路径不存在
🟡 误导区未标注:根目录 6 个 *-备份/ 目录,MAP 没标"别动区",
   下一个 agent 会把备份当正主读
结论:STATUS 不可信(3 项指标漂移),建议先修再交付

修复后复审全绿,全程留有 git diff。审计只读不改文件——它负责说真话,改不改你决定。

安装

方式一(推荐)— Claude Code 插件市场:

/plugin marketplace add Seekers2001/docs-governance
/plugin install docs-governance@docs-governance

方式二 — 本地软链git clone 本仓后,把 skills/ agents/ commands/ 下的条目软链到 ~/.claude/ 对应目录(改源仓即时生效,适合要改内容的人)。

装好没?验收命令:随便进一个项目敲 /governance-audit——看到一份只读审计报告(哪怕结论是"没治理文件")就是装好了。

用法

# 活文档治理
/governance-init         # 全新空项目:day-0 治理骨架(宪法+检查流程+流水账)
/governance              # 已有代码项目:扫项目,生成/更新四件套
/governance-audit        # 只读审计:哪儿漂移了,不动文件
/governance-sync         # 阶段收尾:按矩阵查漏补缺该同步哪份文档
/governance-retro        # 复盘 LOG:哪类错误重复最多 → 输出"该下沉成 lint/测试"候选清单

# 契约式前后端协作
/contract 做订单详情页    # 先判模式,再定契约 → 各端开发 → 集成对账

# 模块回归审计(防"改 A 坏 B")
/regression-audit init   # 首跑:扫 import 生成回归台账 REGRESSION.md 草稿
/regression-audit        # 改完就跑:本模块+全部下游验收命令,退出码终审

# 测试协作治理(v1 直接用自然语言触发 skill,没有 slash command)
盘点这个项目的测试资产,按 templates/TESTS.example.md 生成 TESTS.md
读取 Bug 清单,把缺少保护的 Bug 登记成 TEST-ID,并给出补测清单

结构

docs-governance/
├── CLAUDE.md / CLAUDE_MAP.md / PROJECT_STATUS.md / PROJECT_LOG.md  # 插件自治理(dogfood)
├── .claude-plugin/{plugin,marketplace}.json
├── skills/{living-docs-governance,contract-first,module-regression,test-collaboration,loop-design-check}/SKILL.md  # 方法论唯一源
├── agents/{docs-governor,docs-auditor,contract-director,frontend-dev,backend-dev,regression-auditor}.md
├── commands/{governance-init,governance,governance-audit,governance-sync,governance-retro,contract,regression-audit}.md
├── templates/*.example.md                                          # 含 TESTS / REGRESSION 等空白模板
├── references/governance-sync-matrix.md
├── hooks/{check-on-stop.sh,hooks.json}                             # 会话结束治理提醒
└── scripts/verify.sh                                               # 结构完整性自检

skill = 方法论(唯一源),agent = 照方法论干活的人,command = 按钮,template = 空白表格。方法论只写在 skill 里,agent 不复制——一个防文档漂移的插件,自己内部先不漂移。

开发

改任何文件后、提交前跑 bash scripts/verify.sh(检查 JSON 可解析、hook 可执行、命令→agent→skill/template/reference 不断链)。


MIT · Seekers2001(小磊)· jiaxinleifm@outlook.com

About

Claude Code 插件:文档驱动开发治理——四件套防文档腐烂 + 分级读取省上下文 + 契约式前后端协作(CDC)。一个防文档漂移的插件,自己内部先不漂移。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages