关于 ce-compound-refresh
ce-compound-refresh 审查 `/solutions/` 中的学习文档与当前代码库是否一致,并按证据执行维护、提交更改和生成逐文档报告。它面向维护复合工程知识库的开发者,区分准确性修订与需用户确认的价值删减。
主要功能
- 01审查文档准确性及相互重叠
- 02按分类执行文档维护
- 03扫描并协调 CONCEPTS.md 词汇
- 04生成完整的逐文档报告
- 05仅提交本次修改的文件
适用场景
- 01核对学习文档是否仍符合当前代码
- 02修正过时路径、链接或指导
- 03经确认后清理重复或低价值文档
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ everyinc/ compound-engineering-plugin --skill ce-compound-refresh安装后在 Claude Code 中输入/ce-compound-refresh确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/resolution-template.mdreferences/classify.mdcommit.mdconcepts-vocabulary.mddiscoverability.mdinvestigate.mdmodes.mdper-action-flows.mdreport.mdschema.yamlscope.mdworth-audit.mdyaml-schema.mdscripts/validate-doc-claims.pyvalidate-frontmatter.py详细介绍
Compound Refresh
根据当前代码库审核 <root>/solutions/ 下的经验总结,执行证据支持的维护操作,并提供完整的逐文档报告及已提交的更改。报告和修正后的文档集就是交付成果。只有每份文档都值得信赖,这个知识库才能持续积累价值。
模式
**现在阅读 references/modes.md。**该文档会从参数中读取模式,并说明每种模式可以在无人干预的情况下执行哪些操作、标记过时的备用方案、提问工具以及 CONCEPTS.md 的引导流程。
两种模式都遵循两条规则。写入失败时,将其记录为建议操作,然后继续运行。提问时,必须使用宿主提供的阻塞工具,或按照该文档定义的编号选项备用方案进行。绝不默默跳过问题。
价值判断
常规刷新会检查准确性:每份文档是否仍然正确、是否仍然与其他文档有区别。即使代码库在其他地方也说明了某项知识,常规刷新也绝不会删除准确的文档。只有用户提出并确认后,才会进行第二项判断:价值。该判断会根据代码库审核整个范围,并可能删除准确的文档。
读取调用参数,判断用户是否有此意图:用户希望整理、筛选、精简、删减、升级知识库,或让它达到收录标准,无论具体措辞如何,而不是检查内容是否偏离。若有此意图,在开展任何调查之前,先复述对用户意图的理解并请求确认:
You asked to clean up the learnings. Which do you want?
1. Delete or shorten docs the codebase already explains. A doc goes when a test, a code comment, or the instructions file states the same reasoning, and every cut quotes that file. Drift is fixed too. Scope: <scope>.
2. Fix drift only. Stale paths and links, duplicate docs, and guidance the code no longer supports. Nothing accurate is deleted.
选择选项 1 时,在调查之前阅读 references/worth-audit.md;该文档会补充收录标准、证据规则和处理流程。选择选项 2,或用户没有表达此意图时,不要阅读该参考文档,也不要应用其中的评估标准;整个流程仅执行准确性刷新。非交互模式无法请求确认,因此 references/modes.md 会说明此时如何处理推断出的意图。
产物根目录
首次拼接 <root>/solutions/ 路径时,解析 <root>。传给任何子 Agent 的应是解析后的 <root>/solutions/ 路径,而不是配置文件。启动每个子 Agent 时都不传递 mode 参数,因此沿用用户的权限设置。
拼接任何产物路径之前,先解析 CE 产物根目录 <root>。
- 读取
<repo-root>/.compound-engineering/config.yaml中的docs_root(<repo-root>=git rev-parse --show-toplevel)。不要从config.local.yaml读取。未设置时,<root>沿用原有默认值docs。 - 验证已设置的值:它必须是仓库相对目录,且其真实路径(解析符号链接后)仍位于仓库内,不得是仓库根目录,也不得位于
.git/下。否则停止并报错,指出docs_root及其值——绝不回退到docs。 - 使用
<root>作为唯一产物位置:若不存在则创建,并将每个路径拼接为<root>/<subdir>,其中<subdir>是此技能自身使用的子目录;绝不同时读取docs。
范围
候选文档为 <root>/solutions/ 下的 .md 文件,排除 README.md 和 _archived/ 下的所有内容。提示未匹配任何内容时,绝不扩大范围。阅读 references/scope.md,了解缩小范围的策略、各模式在未命中时的处理方式、空知识库提示、分流顺序,以及每项操作附带的 README 条目清理。
调查
阅读 references/investigate.md,了解过时性维度、自动记忆规则、子 Agent 职责和类别结构说明。
根据当前代码库检查每条经验,然后检查整个集合是否存在重叠、取代和矛盾。矛盾会造成主动误导,因此其优先级高于单条内容的过时问题。
知识类经验有时会指向其提及或链接的指导文件,例如某个技能的 SKILL.md、运行手册或说明文件。只比对经验提及的指导内容。绝不要为了查找指导文件而搜索指导层。
每个调查子 Agent 的提示词都必须逐字包含该参考文件中的三个 Subagent prompt 条款。其中两个涉及搜索工具和自动记忆。第三个条款如下:
如果经验属于知识类,且提及或链接了指导文件(技能的
SKILL.md、运行手册、根目录说明文件),请阅读该文件;如果文件对同一流程规定了不同顺序或相互矛盾的规则,请返回双方冲突的引文,并说明当前代码遵循哪一方——或者代码两者都不支持。只阅读经验提及的指导文件;不要搜索其他指导文件,也不要编辑它。
分类
每份文档都必须且只能归入以下一种处理结果:保留、更新、合并、替换或删除。文档绝不在原处归档:不存在 _archived/,因为版本历史就是归档。
在分配处理结果前阅读 references/classify.md。 该文件定义了各处理结果的含义、更新与替换的界限、自动删除规则及其预检查、迁移与拆分规则、检索价值测试、无法验证不等于错误、模式文档,以及交互模式会询问的内容。
无论证据如何,始终遵守以下两个界限。此技能绝不更改产品代码。关于当前机制的说法以当前代码为准,但有独立证据支持的指导内容,不会仅仅因为实现已不再遵循它就变成错误:应依据指导证据对文档分类,并将实现冲突报告为潜在的产品回归。当经验与指导内容矛盾时,刷新流程会报告这一点;绝不能编辑技能、运行手册或说明文件。
执行
阅读 references/per-action-flows.md,并按照每份文档的分类执行对应章节,每份文档执行一个流程。该文件定义了判断标准、迁移和拆分流程、替换用子 Agent 的约定,以及引用清理。
词汇收录
完成逐文档操作后,将调查过程中标记的领域术语与 CONCEPTS.md 核对。无条件阅读 references/concepts-vocabulary.md。 其中的纳入标准并不直观,因此,不阅读该文件就判断“没有符合条件的术语”,属于走捷径,而非得出的结论。
所有模式下都会静默应用编辑。报告中的 CONCEPTS.md 一行应记录扫描结果,包括“已扫描,没有符合条件的术语”。
报告
以 Markdown 格式输出完整报告。 报告就是交付物,而非内部摘要;在非交互模式下,报告也是唯一输出。报告必须自成一体,不能缩略,并分为 已应用 和 建议 两部分。摘要块、逐文件详情以及“建议”部分应包含的内容,请阅读 references/report.md。
提交
如果没有任何更改,则跳过。否则,仅暂存本次刷新修改过的文件,并按照仓库约定提交。有关各模式的分支决策和 Git 失败时的后备处理,请阅读 references/commit.md。
可发现性检查
报告完成后,检查项目说明是否会引导 Agent 在处理有文档记录的区域之前先查看 <root>/solutions/。每次都要执行此检查:只有 Agent 能找到这些内容,知识库才能持续累积价值。读者必须了解的内容、最小增补规则及语气、CONCEPTS.md 的特殊情况、每种模式下的征求同意与报告条目,以及如何将后续编辑纳入提交,请阅读 references/discoverability.md。