ce-compound
记录最近解决的问题,以便下次遇到问题只需几分钟而不是几个小时。知识复合。
ce-compound 是知识获取技能。解决一个重要问题后,此技能会向 docs/solutions/ 写入结构化文档,涵盖症状、根本原因、不起作用的内容、工作解决方案和预防策略。 ce-plan、ce-ideate、ce-debug 和 ce-work 的未来运行会将此文件夹作为机构内存进行查询 - 因此相同的调查永远不会发生两次。
复合工程构思链是/ce-ideate → /ce-brainstorm → /ce-plan → /ce-work。 ce-compound 是 ** 闭环 ** - 在调试或构建会话结束时捕获,文档反馈给上游作为未来运行的基础。第一次解决“简短生成中的 N+1 查询”需要 30 分钟的研究;第二次,你找到文档,修复需要 2 分钟。
TL;DR
| 问题 | 回答 |
|---|---|
| 它有什么作用? | 将已解决的问题记录到 docs/solutions/[category]/[filename].md 中,其中包含结构化的前言、错误跟踪或知识跟踪部分以及交叉引用 |
| 何时使用它 | 解决了一个不平凡的问题后;当用户说“有效”、“已修复”、“问题已解决”时 |
| 它生产什么 | docs/solutions/ 中的一份文档,加上对 AGENTS.md/CLAUDE.md 的可选小编辑以提高可发现性 |
接下来是什么?如果新的学习表明旧文档可能已过时,则可选 /ce-compound-refresh |
## 问题
大多数团队会两次解决同一问题(有时是同一个人),因为第一个解决方案存在于对话、聊天记录或队友的头脑中。常见故障形状:
- 解决方案存在于聊天中 — Slack 线程、线性评论、代理记录;一周后消失
- 已记录但无法发现 — 写入维基无人搜索,或
docs/solutions/存在但代理不知道检查它 - 重新遇到时重写 - 针对同一问题创建了一个略有不同的文档,现在有两个文档会发生变化
- 没有捕获反模式 - *不起作用的部分是调查中最昂贵的部分,也是第一个消失的部分
- 在会话结束混乱时捕获,而不是会话结束清晰 - 当上下文已经褪色时编写文档
解决方案
ce-compound runs as a structured capture flow at the moment context is freshest:
- 两种模式 - 完整(用于交叉引用和重复检测的并行子代理)和轻量级(单次传递,更快,更少的令牌)
- Bug跟踪和知识跟踪产生与文档类型匹配的不同部分结构
- 重叠检查决定是否更新现有文档而不是创建重复文档
- 可发现性检查确保项目的
AGENTS.md/CLAUDE.md表面docs/solutions/以便未来的代理找到它 - 专业代理审查(kieran 审查员、代码简单性、性能/安全性/数据完整性)可选择增强文档
是什么让它如此新颖
1. 两种模式 — 完整模式与轻量级模式
完整模式 并行运行三个研究子代理(上下文分析器/解决方案提取器/相关文档查找器),然后可选地运行一个前台会话历史记录器(默认情况下关闭 - 在 Claude Code、Codex、Cursor 中搜索您之前的会话以获取相关上下文)。交叉引用现有文档、检测重复项、进行专门审查。
轻量级模式 在一次传递中执行相同的文档,没有子代理,没有交叉引用。更快,更少的代币。最适合简单修复或上下文紧张时。
用户明确选择模式——技能永远不会自动选择。
2. Bug 跟踪与知识跟踪 — 不同形状的不同结构
该技能根据 problem_type 将工作分为两个轨道之一:
- 错误跟踪 — 症状、什么不起作用、解决方案、为什么有效、预防。用于构建错误、测试失败、运行时错误、性能问题、集成问题等。
- 知识轨道 — 背景、指导、为什么这很重要、何时应用、示例。用于架构模式、设计模式、工具决策、约定、工作流程实践。
轨道决定章节顺序和 frontmatter 字段。将错误跟踪字段强制纳入知识跟踪学习(反之亦然)会产生内容结构错误的文档。
3. 重叠检测——更新现有文档而不是创建重复文档
相关文档查找器分数与现有 docs/solutions/ 内容在五个维度上重叠:问题陈述、根本原因、解决方法、引用文件、预防规则。
- 高重叠(4-5 维匹配)→ 使用更新鲜的上下文更新现有文档。现有路径保持不变;添加
last_updated字段。描述同一问题的两篇文档不可避免地会出现偏差。 - 中等重叠(2-3 个维度匹配)→ 创建新文档、合并审核标志(潜在的
ce-compound-refresh触发器)。 - 低或无 → 正常创建新文档。
4.可发现性检查——只有代理能够找到知识,知识才会复合
每次运行都会检查项目的指令文件(AGENTS.md 或 CLAUDE.md)是否会引导未来的代理发现 docs/solutions/。如果没有,它会提出显示知识库的最小添加,请求同意并应用它。检查每次都会运行,因为知识存储仅在可找到时才复合价值。
提议的添加内容与现有文件的语气和密度相匹配——适合时在现有目录列表中添加单行条目,仅当没有其他内容时添加小标题部分。
5.选择性刷新触发
捕获新的学习内容后,ce-compound 检查是否应在窄范围提示上调用 /ce-compound-refresh。它不会默认运行刷新——只有当新的学习表明特定的旧文档现在可能已经过时(矛盾、被取代或在刚刚重构的领域中)时。
6.专门的审后
根据问题类型,可选的专业代理会审查文档:ce-performance-oracle 用于性能问题,ce-security-sentinel 用于安全性,ce-data-integrity-guardian 用于数据库,ce-code-simplicity-reviewer 用于代码密集型问题。
7. 会话历史记录集成(选择加入)
完整模式可以选择性地调度 ce-session-historian 来跨线束搜索之前的会话以获取相关上下文 - 之前尝试过什么、什么不起作用、关键决策。调查结果被折叠到“什么不起作用”(错误跟踪)或“上下文”(知识跟踪)中。由于令牌成本,默认关闭;用户明确选择加入。
8.自动调用触发器
诸如“有效”、“已修复”、“现在工作”、“问题已解决”之类的短语会自动调用该技能,因此捕获会在上下文最新鲜时发生。用户可以使用 /ce-compound [context] 覆盖以立即捕获。
简单示例
您刚刚花了 45 分钟在摘要生成流程中调试 N+1 查询。您确认修复有效并说“有效,发货”。
ce-compound 自动调用(或者您显式调用它)。它询问是否使用完整模式或轻量级模式,然后询问是否也搜索会话历史记录。您选择“完整”,没有会话历史记录。
三个子代理并行调度:上下文分析器读取对话历史记录,分类为 performance_issue(错误跟踪),建议文件名和类别。解决方案提取器使用之前/之后的代码构建修复。相关文档查找器 greps docs/solutions/ 查找相关问题,报告与不同 N+1 案例上的旧文档有一定程度的重叠。
编排器组装文档,通过 YAML 安全脚本验证 frontmatter,并写入 docs/solutions/performance-issues/n-plus-one-brief-generation.md。可发现性检查发现 AGENTS.md 未提及 docs/solutions/,建议在现有目录列表中添加一行,并在确认后应用它。
第 3 阶段调度 ce-performance-oracle 和 ce-code-simplicity-reviewer 来验证代码示例和方法。第 2.5 阶段提出了更新建议:较旧的 N+1 文档可能会从合并审核中受益。该技能建议 /ce-compound-refresh n-plus-one 作为窄范围提示并结束。
何时去实现它
在以下情况下使用 ce-compound:
- 你刚刚解决了一个不平凡的问题,并且背景是新鲜的
- 用户说“有效”、“已修复”、“现在工作”、“问题已解决”
- 您处于自然停顿状态,想要在上下文消失之前捕捉所学内容
- 该问题经过了有意义的调查(不是拼写错误或一行修复)
在以下情况下跳过 ce-compound:
- 问题正在进行中或解决方案未经验证
- 修复是一个微不足道的拼写错误或明显的错误,没有可概括的见解
- 这项工作纯粹是机械性的(格式化、依赖冲突)
用作工作流程的一部分
ce-compound 是多个工作流程的闭环:
/ce-debug第 4 阶段 — 成功修复和 PR 后,当错误可普遍化时,可以选择提供ce-compound(重复 3 次以上,关于共享依赖项的错误假设)/ce-work第 4 阶段 — 发货后,当工作产生可重用模式、约定或工具决策时,表面ce-compound- 独立 — 在任何重要的问题解决会话之后直接调用
输出反馈到上游技能:
/ce-plan在第一阶段研究期间通过ce-learnings-researcher读取docs/solutions//ce-ideate将其读取为全面接地步骤的一部分/ce-debug在获取问题跟踪器引用时读取它以获取先前的上下文
当新的学习表明旧文档现在可能已过时时, ce-compound 会建议 /ce-compound-refresh 进行窄范围提示。
使用独立版
该技能有其自己的完整循环:
- 刚刚完成的问题 —
/ce-compound(或从“有效”自动调用) - 带有上下文提示 —
/ce-compound "the email digest race condition we fixed" - 长时间会话中的轻量级 - 当上下文紧张时,在提示时选择轻量级模式
自动调用触发器发生在对话中;如果您刚刚确认某些内容有效,则无需记住斜线命令。
输出工件
docs/solutions/[category]/[filename].md
自动检测类别。错误跟踪示例:build-errors/、test-failures/、runtime-errors/、performance-issues/、database-issues/、security-issues/、ui-bugs/、integration-issues/、 logic-errors/。知识轨道示例:architecture-patterns/、design-patterns/、tooling-decisions/、conventions/、workflow-issues/、developer-experience/、documentation-gaps/、 best-practices/。
该文档带有 YAML frontmatter(module、tags、problem_type 等)以实现可搜索性。验证通过 scripts/validate-frontmatter.py 运行,以捕获静默损坏(格式错误的 --- 分隔符、标量值中未加引号的 :)。
如果可发现性检查发现知识存储未浮出水面,则该技能还可能会对 AGENTS.md/CLAUDE.md 进行小编辑。
## 参考
| 论证 | 效果 |
|---|---|
| (空) | 使用对话上下文记录最新的修复 |
<brief context> |
<brief context>例如,“我们修复了电子邮件摘要竞争条件”——聚焦捕获 |
自动调用触发器:对话中任何地方的“有效”、“已修复”、“现在工作”、“问题已解决”等短语。
## 常问问题
为什么有两种模式? 完整模式适用于大多数情况 - 并行子代理捕获重复项、查找相关文档并运行专门的评论。轻量级模式适用于简单的修复或在上下文中紧密运行的会话,其中深度交叉引用不值得花费令牌成本。
错误跟踪和知识跟踪有什么区别? 错误跟踪记录了事件级别的修复——“X 坏了,这就是原因以及我们如何修复它。”知识轨迹捕获了持久的指导——“这就是我们在这里做X的方式,以及原因。”两者有不同的受众和结构:错误跟踪有症状/什么不起作用/解决方案;知识轨道有背景/指导/何时应用。
为什么自动更新文档而不是总是创建新文档? 描述同一问题的两篇文档不可避免地会出现分歧。新的上下文更新鲜、更值得信赖,因此该技能将其合并到现有文档中。结果是一份随着时间的推移而改进的规范文档,而不是一堆需要稍后整合的部分重叠的文档。
它可以在非软件环境中工作吗?
知识轨迹概括了(约定、决策、工作流程实践),但该技能假设有代码存储库、docs/solutions/ 目录和 YAML-frontmatter 约定。它主要是一个软件团队工具。
如果我不想对 AGENTS.md 进行可发现性编辑怎么办?
该技能在应用编辑之前会请求同意。您可以拒绝;文档仍然被写下来。如果您的 AGENTS.md 已提及 docs/solutions/,则不会触发可发现性提示。
另请参阅
ce-compound-refresh— 随着代码库的发展不断维护docs/solutions/ce-debug— 验证修复后的常见上游调用者ce-work— 发货后的常见上游调用者ce-plan— 在规划期间读取docs/solutions/作为机构内存ce-ideate— 读取docs/solutions/作为接地的一部分