总览
一个单源插件,分发到 11+ 个 Agent 宿主。35 个面向用户的技能、1 个内部技能、一套编排引擎(lfg)、一个长跑的 tick 引擎(ce-babysit-pr)、一套共享的设计理念。
本仓库中的技能是目标,而非状态机。技能把目标、完成条件、安全失败方向、以及 Agent 无法从仓库中推导出来的事实交给 Agent,然后退到一边。跨技能编排由唯一的顶层编排器(lfg)和长跑的 tick 引擎(ce-babysit-pr)负责;没有任何技能会去编排它的同伴。
compound-engineering 解决什么
当你面前放着一个编程 Agent 宿主时,你需要做的事具有高度结构性:
- 理解一个模糊的功能请求
- 规划一个尊重约束的实现
- 在隔离分支上实现它
- 评审差异,查找缺陷与规范偏离
- 处理来自人类和机器人的 PR 反馈
- 把 CI 跟踪到一个已知状态
- 把学到的东西沉淀下来,让下一个 Agent 更聪明地开始
这些任务在项目中反复出现,但做好它们的技能却分散各处:写好代码 ≠ 评审代码,调试 ≠ 规划,而把它们编排起来的元任务,单凭一个 prompt 往往做不好。
compound-engineering 把这些关注点拆成离散的技能,每个都有自己的:
- 完成条件 — 技能在何时认为自己已结束?
- 安全失败方向 — 出错时,朝哪个方向偏是安全的?
- 不可推导的被调用者事实 — 技能无法从仓库推导出的事实
- 输出契约 — 产生什么产物或结构化返回
技能之间通过严格契约通信。每个技能声明它可以调用哪些其他技能;跨技能调用把类型化结构化值回传给调用方。
它不做什么
- 它不是框架。没有可嵌入的运行时;它是 Agent 指令。
- 它不是模型 prompt。技能描述目标而非系统消息;宿主决定如何呈现它们。
- 它不是单宿主插件。每个技能只编写一次,通过 CLI 转换器分发到 11+ 个宿主。
- 它不引导
CONCEPTS.md。那是ce-compound-refresh的事;ce-compound只为自己的学习播种该区域。 - 它不运行在只读模式上。大多数技能可以修改树、推送分支、打开 PR。谨慎使用
mode:non-interactive或mode:pipeline。
真理之源层级
compound-engineering 仓库是唯一的真理之源,其他一切都是衍生的:
按生命周期阶段分组的 35 个技能
每个技能都落在工程生命周期的某个特定阶段。下表分组即规范的阅读顺序。
| 阶段 | 技能 | 这里发生了什么 |
|---|---|---|
| 战略 | ce-strategy | 维护 STRATEGY.md:产品为谁服务、什么能赢、团队在哪里投入。 |
| 构思 | ce-ideate, ce-brainstorm, ce-bakeoff, ce-pov, ce-prototype | 找出要构建什么、发展替代方案、敲定判断、原型化手感。 |
| 规划 | ce-plan, ce-doc-review | 把产品决策转成可执行的计划,包含阶段、文件和验证。 |
| 执行 | ce-work, ce-worktree | 在真实分支上执行计划,必要时隔离。 |
| 质量 | ce-simplify-code, ce-test-browser, ce-test-xcode, ce-dogfood, ce-polish | 简化、浏览器测试、iOS 测试、端到端 dogfood、打磨 UX。 |
| 评审 | ce-code-review, ce-resolve-pr-feedback | 评审代码变更,并应用/解决 PR 反馈。 |
| 发布 | ce-commit, ce-commit-push-pr | 提交、推送、开 PR、交给 babysit。 |
| 监控 | ce-babysit-pr | 长跑的守护循环,解决反馈与 CI 失败,直到 PR 准备好合并。 |
| 调试 | ce-debug | 独立可用的诊断与修复循环;CI 失败时由 babysit 接入。 |
| 知识 | ce-compound, ce-compound-refresh, ce-explain, ce-handoff, ce-riffrec-feedback-analysis | 沉淀学习、审计它们、解释事情、交接会话、分析录音。 |
| 沟通 | ce-noslop, ce-promote, ce-proof, ce-product-pulse | 抹掉 AI 痕迹、起草营销文案、发布到 Proof、生成产品脉搏报告。 |
| 运维 | ce-optimize, ce-retune, ce-sweep, ce-setup | 度量驱动的优化、模型重调、反馈清扫、环境健康检查。 |
| 顶层 | lfg | 编排器,把上面这些串起来。 |
| 内部 | ce-skill-work (in .agents/skills/) |
仅维护者使用的流程:创建、编辑、评审技能散文。 |
技能之间如何通信
跨技能的图不是自由网格。有严格的分层:
- lfg 是唯一编排其他技能的技能。它的路由包括:plan path、defect、verdict、brainstorm、non-code、plan。
- ce-babysit-pr 是唯一长跑的 tick 引擎。它会调用
ce-resolve-pr-feedback、ce-debug和ce-commit-push-pr。 - ce-commit-push-pr 是唯一打开 PR 的技能,也是唯一把工作交接给
ce-babysit-pr的技能。 - ce-debug 是唯一拥有 诊断→修复 契约的技能。
- ce-compound 是唯一向
<root>/solutions/写入的技能。 - ce-explain 是唯一向
<root>/explainers/写入的技能。
其他所有跨技能边都是非对称且小规模的。完整图见 lfg。
配置作为共享契约
所有需要配置的技能都从 .compound-engineering/ 中的两个文件读取:
config.yaml— 共享的,提交到仓库。携带唯一特殊的键docs_root。config.local.yaml— 每用户一份,绝不提交。仅覆盖普通键。
这种双层系统让开发者可以携带个人偏好(模型选择、输出格式、禁用的技能)而不影响队友,同时项目又承载共享决策(产物根、机器可读的配置)。完整的键列表和解析规则见 配置系统。
源代码来自哪里
compound-engineering-plugin 由 Every Inc.(Kieran Klaassen 和 Trevin Chow)开发,同时接受活跃的外部贡献。仓库托管在 github.com/EveryInc/compound-engineering-plugin。
本百科以 2026-09-16 的提交 58e6f7a6 为准(与 chore/sync-ce-code-review-20260916 分支同日)。插件版本 3.26.3 / 市场版本 1.0.3。