From codestable
Performs end-of-phase knowledge base hygiene: deduplicates, corrects outdated info, removes obsolete content, and promotes stable knowledge to project docs. Keeps cross-session memory reliable.
How this skill is triggered — by the user, by Claude, or both
Slash command
/codestable:cs-docs-neatThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
开始任何判断或动作前,先执行 CodeStable preflight:读 `.codestable/attention.md`;缺失先 `cs-onboard`;不读外部 AI 入口替代(详见 `.codestable/reference/execution-conventions.md`)。
开始任何判断或动作前,先执行 CodeStable preflight:读 .codestable/attention.md;缺失先 cs-onboard;不读外部 AI 入口替代(详见 .codestable/reference/execution-conventions.md)。
你是知识库编辑,不是记录员。记录员只会追加;编辑要审查全局、合并重复、修正过期、删除废弃,把稳定知识放到正确受众层。目标是让下一位人类、下一次 agent、下游项目都不会被旧文档误导。
不要把任务降级成“补几句文档”。在 AI 协作开发中,代码可以重写,但文档和记忆是跨会话、跨 agent 的桥梁。错误记忆会让下个 agent 基于错误前提动手;混乱 docs 会让接手者浪费时间重新推断系统。
cs-docs-neat 不是 cs-doc-tutorial:cs-doc-tutorial 写单篇开发者 / 用户指南;cs-docs-neat 做阶段收尾的全局知识库卫生检查和同步。
必须先理解分工,否则会只改 CLAUDE.md / AGENTS.md 就结束,把 docs、.codestable/ 和记忆晾在一边。
| 层级 | 典型文件 | 读者 | 职责 | 不同步的代价 |
|---|---|---|---|---|
| CodeStable 工作流记忆 | .codestable/attention.md、requirements/、requirements/CONTEXT.md(cs-domain 领域模型)、roadmap/、compound/ | CodeStable 技能和项目维护者 | 软件生命周期事实、长期约束、架构现状、规划、沉淀 | 后续 feature / issue 读到过期事实 |
| 项目 agent 入口 | CLAUDE.md、AGENTS.md、平台等价文件 | 当前仓库里的 AI agent | 每次写代码必须遵守的规则、命令、红线、文档索引 | 下次 AI 在项目里走弯路 |
| 外部读者文档 | README.md、docs/ | 人类同事、下游开发者、未来接手者 | 接入、使用、集成、运维、架构解释 | 人或系统无法正确接入 / 运维 |
| 外部 agent 记忆 | Claude / Codex / OpenCode 等平台记忆或全局配置 | 某个 agent 跨会话复用 | 个人偏好、跨项目原则、临时教训、权威文档指针 | 个人记忆膨胀或下次忘记历史原则 |
四层都要看。CLAUDE.md / AGENTS.md 不是 CodeStable spec 的替代品,但它们是 agent 实际会读的入口,必须保持同步。
docs 靠就地编辑收敛,agent memory 天生容易追加膨胀。没有反向阀门,稳定知识会困在几十个松散记忆文件里,既进不了上下文,也没变成别人能看的文档。
反向阀门 = 毕业(promote)。 外部 memory 或临时记录满足任一条件,就把内容并进对应项目文档,然后删除原记忆或缩成一行指针:
.codestable/requirements/CONTEXT.md、README 或 docs。CLAUDE.md / AGENTS.md,必要时一行进 .codestable/attention.md。判据一句话:下一个接手的人(不只是当前 agent)需要知道这件事吗? 需要,就属于项目文档;不需要,才可能留在个人 memory。
若 memory 文件有类型前缀:reference_ 通常可长期常驻;feedback_ 稳定后毕业;project_ 多数是事件记录,优先毕业或删除。
CLAUDE.md / AGENTS.md 是规则手册,不是变更日志最常见翻车模式:每次开发完都在 agent 入口顶部加历史叙事:“2026-05-08 X 功能上线,详见 docs/Y”。一次很爽,半年后真正规则被 200 行历史推到看不见。
判断一条信息该不该进 agent 入口,问:下次 AI 写代码时如果没看到这条,会不会犯错?
| 例子 | 进 CLAUDE.md / AGENTS.md? | 理由 |
|---|---|---|
“Prisma 查询只写在 modules/**/data/” | 是 | 违反就是边界破坏 |
| “rsync 单文件部署必须用完整 target 路径” | 是 | 命令陷阱会反复踩 |
“禁止裸跑 systemctl stop worker” | 是 | 红线,事故级 |
| “2026-05-08 timelineAt 上线,详见 docs/ARCHITECTURE.md” | 否 | 详细机制在 docs;agent 入口只需索引 |
| “修了 X bug 的复盘细节” | 否 | 单次事故归 learning / runbook 或删除 |
该进 agent 入口:硬边界规则、禁止事项、命令速查、权限模型、协作流程、深入文档指针表、会重复影响实现的踩坑警示。
不该进:历史叙事、详细机制、单次事故复盘、bug fix 流水账、已经由索引表覆盖的“详见 docs/Z”指针句。
任何同步动作之前,先量关键文件:
wc -l CLAUDE.md AGENTS.md README.md 2>/dev/null
find docs .codestable -path '*/.git' -prune -o -name '*.md' -print 2>/dev/null | xargs wc -l
再查外部 memory(如存在):
wc -l <memory-dir>/MEMORY.md 2>/dev/null
wc -c <memory-dir>/MEMORY.md 2>/dev/null
du -sh <memory-dir> docs .codestable 2>/dev/null
阈值和处理:
| 文件 | 上限 | 超过怎么办 |
|---|---|---|
CLAUDE.md / AGENTS.md | 约 300 行 / 15KB,项目约束更严格时按项目约束 | 先删历史叙事;规则收敛成表;详细机制迁 docs / .codestable/ |
.codestable/attention.md | 约 150 行 | 只留启动必读短规则;长解释毕业到 decision / learning / architecture |
| memory 索引 | Claude MEMORY.md ≤ 200 行且 ≤ 25KB | 超出部分可能静默不加载;通过毕业压缩,不硬删稳定知识 |
| 单条 memory | 约 100 行 | 拆、删,或把稳定机制提升进项目文档后缩成指针 |
| 单篇 docs | 约 1500 行;项目有更严格上限时按项目约束 | 拆分并建索引;若用户要求先确认,只列建议不擅自拆 |
额外查体量倒挂:健康态是项目文档厚、memory 薄。memory 比 docs / .codestable/ 更厚,通常说明稳定知识还赖在个人记忆里。
执行顺序:先精简(破除膨胀)→ 再补本次增量。两件事不要混:精简时问“什么不该在这”,补漏时问“什么该补到这”。
先 ls / find,再判断。不要凭印象挑几个文件。
.codestable/attention.md。.codestable/:
ls .codestable/find .codestable -maxdepth 3 -type f \( -name '*.md' -o -name '*.yaml' \) | sortREADME.mdCLAUDE.mdAGENTS.mdAGENTS.override.mdTEAM_GUIDE.md.agents.mdls docs/ 2>/dev/nullfind . -maxdepth 2 -name '*.md' -not -path '*/node_modules/*' -not -path '*/.git/*' | sortreferences/agent-paths.md,只读当前平台实际存在的文件。git diff、最近提交,确认本阶段发生了什么。内部维护一张清单:每个文件标 评估过 / 要改 / 不用改 / 需用户确认。漏一个关键文档就不能进入落盘。
不要只看对话里新增了什么事实,要看事实会波及哪些文档层。先查 references/sync-matrix.md,再下判断。
常见映射:
CLAUDE.md / AGENTS.md 速查 + integration / dev guide + architecture routes。跨项目要特别小心:上游 API、SDK、子域、认证、共享环境变量、公共组件变化时,下游项目 docs 也要对齐。当前仓库改完不等于同步完成。
必须真的修改文件。只说“建议怎么改”不算完成。
推荐顺序:
.codestable/ 权威层:requirements / architecture / compound / attention。CLAUDE.md / AGENTS.md:agent 必须遵守的规则、命令、红线、文档索引。编辑原则:
YYYY-MM-DD,不写“今天 / 最近 / 上周”。写入规则:
.codestable/attention.md:只放每次 CodeStable skill 启动都必须知道的短规则。.codestable/requirements/CONTEXT.md:只写现状,不写未来计划。.codestable/requirements/:写能力愿景和边界,不塞实现细节。.codestable/compound/:仍使用 learning / trick / decision / explore;不要新增本技能专属 doc_type。CLAUDE.md / AGENTS.md:只放 agent 写代码会用到的规则、命令、禁区、索引;不写变更日志。~/.claude/CLAUDE.md、~/.codex/AGENTS.md 只有用户表达跨项目原则时才改;项目细节禁止写全局。新增一个能力时,通常四处都要补:
改完后逐项过,哪条不过就回去修。
尺寸 / 反膨胀:
CLAUDE.md / AGENTS.md 净增长 ≤ 30 行;超了已删 / 迁历史叙事。.codestable/attention.md 没被写成长文。MEMORY.md ≤ 200 行且 ≤ 25KB。.codestable/ 更厚。完整性 / 反漏改:
rg "今天|昨天|刚刚|最近|上周|today|yesterday|recently" .codestable README.md docs CLAUDE.md AGENTS.md 2>/dev/null
git diff 只包含本次文档 / 知识库整理相关改动。所有文件修改完之后,再给用户摘要:
## 文档整理完成
### CodeStable
- `.codestable/attention.md` — ...
- `.codestable/requirements/CONTEXT.md...` — ...
- `.codestable/compound/...` — ...
### Agent 入口
- `CLAUDE.md` — ...
- `AGENTS.md` — ...
### README / docs
- `README.md` — ...
- `docs/...` — ...
### 外部记忆
- 更新:...
- 删除:...
- 毕业:...
### 未处理
- ...(需要用户确认或刻意跳过)
只列实际变更。没改的层级写“无变更”即可。
CLAUDE.md / AGENTS.md:如果已有可运行代码就创建;还在早期探索就跳过并说明。| 技能 | 关系 |
|---|---|
cs-onboard | 仓库未接入或需要迁移归档时先 onboard;本技能不负责搭骨架 |
cs-doc-tutorial | 发现缺对外指南时建议或触发;已有指南过期可直接小修 |
cs-doc-api | 公开 API 参考缺失或过期时建议 libdoc;本技能不批量生成 API 参考 |
cs-keep / cs-keep / cs-keep / cs-keep | 发现稳定知识要归档时使用这些既有 doc_type |
cs-note | 发现一两行启动必读硬约束时,可建议或更新 attention |
cs-feat-accept / cs-issue-fix / cs-feat-ff | 阶段结束后触发 neat 做全局同步 |
references/sync-matrix.md — 变化类型到文档层的映射references/agent-paths.md — 外部 agent 记忆与配置路径速查npx claudepluginhub liuzhengdongfortest/codestable --plugin codestableAudits project docs including memory files, CLAUDE.md, lessons, and docs/ for freshness. Deletes stale content, updates outdated info, compresses bloated indexes. Use periodically or before planning.
Implements two-phase workflow to analyze code changes via git diff and update project documentation. Use before merging branches, after features/bugfixes, or when docs stale.
Checks whether project documentation is up-to-date after code changes by scanning git diffs and reporting stale or missing docs.