compound-engineering-plugin
为 Claude Code、Cursor、Codex 等 AI 编码助手提供复合工程技能的插件集合,包含 37+ 技能和 51 个 agent,覆盖从策略制定、头脑风暴、规划执行到代码审查、知识沉淀的完整开发循环。亮点是系统化地让每次工程工作累积正向收益(Compound Engineering),避免技术债务堆积,被多个主流 AI 编码平台原生支持。注意项目不接受外部 PR,但可提交 issue。
README
复合工程(Compound Engineering)
AI 技能和 agent,让每个工程单元都比上一个更轻松。
哲学
每个工程单元都应该让后续单元更轻松,而不是更难。
传统开发会积累技术债务。每个特性增加复杂度。每个 bug 修复都会留下一些本地知识,别人后来得重新发现。代码库越来越大,上下文越来越难掌握,下一个改动变得越来越慢。
复合工程颠覆了这一点。80% 在规划和审查,20% 在执行:
- 通过
/ce-brainstorm和/ce-plan在写代码前充分规划 - 通过
/ce-code-review和/ce-doc-review审查以发现问题并校准判断 - 通过
/ce-compound将知识编码为可复用的形式 - 保持高质量,让未来改动更轻松
关键不是仪式感,而是杠杆效应。好的头脑风暴让计划更清晰。好的计划让执行更精简。好的审查不仅抓住 bug,更抓住模式。好的复合笔记意味着下一个 agent 不必从头学习同样的教训。
了解更多
- 完整组件参考 —— 所有 agent 和技能
- 复合工程:Every 如何通过 agent 编写代码
- 复合工程背后的故事
工作流
/ce-strategy 是循环的上游 —— 它捕捉产品的目标问题、方法、用户画像、指标,并作为短小持久的锚点保存在 STRATEGY.md 中。构思、头脑风暴和规划在读取它时作为基础,因此策略选择会流入特性构思、优先级排序和规格说明。
核心循环是:对需求进行头脑风暴,规划实现,执行计划,审查结果,将学习复合并重复,每次上下文更好。
在循环之前,当你想让 agent 生成并批评更大的想法,再选择一个进行头脑风暴时,可以使用 /ce-ideate。它产生一个按优先级排序的构思产物,而不是需求、计划或代码。
| 技能 | 目的 |
|---|---|
/ce-strategy |
创建或维护 STRATEGY.md —— 产品的目标问题、方法、用户画像、关键指标和演进路线。构思、头脑风暴和规划在读取时作为基础 |
/ce-ideate |
可选的大局构思:生成并批判性地评估有根据的想法,然后将最强的想法导入头脑风暴 |
/ce-brainstorm |
交互式问答,对特性或问题进行深入思考,并在规划前编写合适大小的需求文档 |
/ce-plan |
将特性想法转化为详细的实现计划 |
/ce-work |
使用工作树和任务跟踪执行计划 |
/ce-debug |
系统地复现失败,追踪根因并实施修复 |
/ce-code-review |
合并前的多 agent 代码审查 |
/ce-compound |
记录学习,使未来工作更轻松 |
/ce-product-pulse |
生成单页、时间窗口内的脉冲报告,包含使用情况、性能、错误和后续行动。保存到 docs/pulse-reports/ |
/ce-product-pulse 是读取侧的伴侣 —— 一个关于用户在给定时间窗口(24 小时、7 天等)内实际体验以及产品表现的时间窗口报告,保存到 docs/pulse-reports/,使过去的脉冲形成可浏览的用户结果时间线。下一次策略更新和下一次头脑风暴将获得真实信号作为锚点。
每个循环都会复合:头脑风暴优化计划,计划通知未来的计划,审查发现更多问题,模式被记录。
快速示例
一个典型循环从将粗略想法转化为需求文档开始,然后根据该文档进行规划,再将执行交给 /ce-work:
/ce-brainstorm "让后台任务重试更安全"
/ce-plan docs/brainstorms/background-job-retry-safety-requirements.md
/ce-work
/ce-code-review
/ce-compound
对于有针对性的 bug 调查:
/ce-debug "结账 webhook 有时会创建重复的发票"
/ce-code-review
/ce-compound
快速入门
安装后,在任何项目中运行 /ce-setup。它会检查你的环境,安装缺失的工具,并引导项目配置。
compound-engineering 插件目前包含 37 个技能和 51 个 agent。查看完整组件参考了解完整清单。
安装
Claude Code
/plugin marketplace add EveryInc/compound-engineering-plugin
/plugin install compound-engineering
Cursor
在 Cursor Agent 聊天中,从插件市场安装:
/add-plugin compound-engineering
或者在插件市场中搜索 "compound engineering"。
Codex
三个步骤:注册市场,安装 agent 集,然后通过 Codex 的 TUI 安装插件。
向 Codex 注册市场:
codex plugin marketplace add EveryInc/compound-engineering-plugin安装复合工程 agents(Codex 的插件规范尚未支持自定义 agent):
bunx @every-env/compound-plugin install compound-engineering --to codex通过 Codex 的 TUI 安装插件: 启动
codex,运行/plugins,找到 Compound Engineering 市场,选择 compound-engineering 插件,然后选择 Install。安装完成后重启 Codex。Codex 的 CLI 可以注册市场,但当前没有提供从已添加市场安装插件的子命令 —— CE 技能需要/pluginsTUI 安装。
以上三个步骤都需要。市场注册和 TUI 安装处理技能;Bun 步骤添加了 $ce-code-review、$ce-plan、$ce-work 等技能在 Codex 中派生的审查、研究和 workflow agent。如果没有 agent 步骤,委托技能将报告缺失 agent。
对于非默认的 Codex 配置文件,请针对同一个 CODEX_HOME 运行所有与 Codex 相关的步骤。此示例将 CE 安装到 work 配置文件中:
CODEX_HOME="$HOME/.codex/profiles/work" codex plugin marketplace add EveryInc/compound-engineering-plugin
CODEX_HOME="$HOME/.codex/profiles/work" bunx @every-env/compound-plugin install compound-engineering --to codex
CODEX_HOME="$HOME/.codex/profiles/work" codex
在 Codex 内部,运行 /plugins,选择 Compound Engineering,然后安装 compound-engineering。市场步骤仅使插件可用;TUI 安装才是激活该配置文件的原生 CE 技能。
对于本地开发,从当前工作树注册并使用本地 CLI:
CODEX_HOME="$HOME/.codex/profiles/work" codex plugin marketplace add "$PWD"
CODEX_HOME="$HOME/.codex/profiles/work" bun run src/index.ts install ./plugins/compound-engineering --to codex
CODEX_HOME="$HOME/.codex/profiles/work" codex
注意: 一旦 Codex 的原生插件规范支持自定义 agent,Bun agent 步骤将不再需要,仅 TUI 安装就够了。
如果你之前使用过仅 Bun 的 Codex 安装,请先备份旧的 CE 产物再切换:
bunx @every-env/compound-plugin cleanup --target codex
GitHub Copilot
对于 VS Code Copilot Agent Plugins:
- 从 VS Code 命令面板运行
Chat: Install Plugin from Source - 使用
EveryInc/compound-engineering-plugin作为仓库 - 当 VS Code 显示此仓库中的插件时,选择
compound-engineering
对于 Copilot CLI,使用:
在 Copilot CLI 内部:
/plugin marketplace add EveryInc/compound-engineering-plugin
/plugin install compound-engineering@compound-engineering-plugin
从包含 copilot 二进制文件的 shell 中:
copilot plugin marketplace add EveryInc/compound-engineering-plugin
copilot plugin install compound-engineering@compound-engineering-plugin
Copilot CLI 会读取现有的 Claude 兼容插件清单,因此无需单独的 Bun 安装步骤。
如果你之前使用过旧的 Bun Copilot 安装,请先备份旧的 CE 产物再切换到原生插件:
bunx @every-env/compound-plugin cleanup --target copilot
Factory Droid
从包含 droid 二进制文件的 shell 中:
droid plugin marketplace add https://github.com/EveryInc/compound-engineering-plugin
droid plugin install compound-engineering@compound-engineering-plugin
Droid 使用 plugin@marketplace 插件 ID;这里 compound-engineering 是插件名,compound-engineering-plugin 是市场名。Droid 会安装现有的 Claude Code 兼容插件并自动转换格式,因此无需 Bun 安装步骤。
如果你之前使用过旧的 Bun Droid 安装,请先备份旧的 CE 产物再切换到原生插件:
bunx @every-env/compound-plugin cleanup --target droid
Qwen Code
qwen extensions install EveryInc/compound-engineering-plugin:compound-engineering
Qwen Code 会直接从 GitHub 安装 Claude Code 兼容插件,并在安装过程中转换插件格式,因此无需 Bun 安装步骤。
如果你之前使用过旧的 Bun Qwen 安装,请先备份旧的 CE 产物再切换到原生扩展:
bunx @every-env/compound-plugin cleanup --target qwen
OpenCode、Pi、Gemini 和 Kiro
此仓库包含一个 Bun/TypeScript 安装程序,可将复合工程插件转换为 OpenCode、Pi、Gemini CLI 和 Kiro CLI 格式。
bunx @every-env/compound-plugin install compound-engineering --to opencode
bunx @every-env/compound-plugin install compound-engineering --to pi
bunx @every-env/compound-plugin install compound-engineering --to gemini
bunx @every-env/compound-plugin install compound-engineering --to kiro
Pi 先决条件。 Pi 没有原生子 agent 原语,因此 Pi 安装依赖于 nicobailon/pi-subagents(必需),并推荐使用 edlsh/pi-ask-user 提供更丰富的阻塞用户问题:
pi install npm:pi-subagents # 必需 —— 提供 `subagent` 工具,用于并行派发 agent 的技能
pi install npm:pi-ask-user # 推荐 —— 提供 `ask_user` 工具;缺少时,技能会回退到聊天中的编号选项
要自动检测自定义安装目标并全部安装:
bunx @every-env/compound-plugin install compound-engineering --to all
自定义安装目标会在安装时运行 CE 遗留清理。要手动对特定目标运行清理:
bunx @every-env/compound-plugin cleanup --target codex
bunx @every-env/compound-plugin cleanup --target opencode
bunx @every-env/compound-plugin cleanup --target pi
bunx @every-env/compound-plugin cleanup --target gemini
bunx @every-env/compound-plugin cleanup --target kiro
bunx @every-env/compound-plugin cleanup --target copilot # 仅旧 Bun 安装
bunx @every-env/compound-plugin cleanup --target droid # 仅旧 Bun 安装
bunx @every-env/compound-plugin cleanup --target qwen # 仅旧 Bun 安装
bunx @every-env/compound-plugin cleanup --target windsurf # 仅已弃用的旧安装
清理会将已知的 CE 产物移动到目标根目录下的 compound-engineering/legacy-backup/ 目录中。
本地开发
bun install
bun test
bun run release:validate
从本地 checkout
适用于活跃开发 —— 对插件源码的编辑会立即生效。
Claude Code —— 添加 shell 别名,使本地副本与正常插件一起加载:
alias cce='claude --plugin-dir ~/Code/compound-engineering-plugin/plugins/compound-engineering'
运行 cce 替代 claude 来测试你的修改。生产环境安装保持不变。
Codex 和其他目标 —— 针对你的 checkout 运行本地 CLI:
# 从仓库根目录
bun run src/index.ts install ./plugins/compound-engineering --to codex
# 相同模式用于其他目标
bun run src/index.ts install ./plugins/compound-engineering --to opencode
从推送的分支
用于测试他人的分支或自己从工作树创建的分支,无需切换 checkout。使用 --branch 将分支克隆到确定性的缓存目录。
未推送的本地分支: 如果分支仅存在于本地工作树且未推送,请直接使用
--plugin-dir指向工作树路径(例如claude --plugin-dir /path/to/worktree/plugins/compound-engineering)。
Claude Code —— 使用 plugin-path 获取缓存的克隆路径:
# 从仓库根目录
bun run src/index.ts plugin-path compound-engineering --branch feat/new-agents
# 输出:
# claude --plugin-dir ~/.cache/compound-engineering/branches/compound-engineering-feat~new-agents/plugins/compound-engineering
缓存路径是确定性的。重新运行会更新 checkout 到该分支的最新提交。
Codex、OpenCode 和其他目标 —— 向 install 传递 --branch:
# 从仓库根目录
bun run src/index.ts install compound-engineering --to codex --branch feat/new-agents
# 适用于任何目标
bun run src/index.ts install compound-engineering --to opencode --branch feat/new-agents
# 使用 --also 组合多个目标
bun run src/index.ts install compound-engineering --to codex --also opencode --branch feat/new-agents
这两个功能都使用 COMPOUND_PLUGIN_GITHUB_SOURCE 环境变量来解析仓库,默认值为 https://github.com/EveryInc/compound-engineering-plugin。
Shell 别名
添加到 ~/.zshrc 或 ~/.bashrc。所有别名都使用本地 CLI,因此不依赖 npm 发布。plugin-path 只输出路径到标准输出,因此可以与 $() 组合使用。
CE_REPO=~/Code/compound-engineering-plugin
ce-cli() { bun run "$CE_REPO/src/index.ts" "$@"; }
# --- 本地 checkout(活跃开发)---
alias cce='claude --plugin-dir $CE_REPO/plugins/compound-engineering'
codex-ce() {
ce-cli install "$CE_REPO/plugins/compound-engineering" --to codex "$@"
}
# --- 推送的分支(测试 PR、工作树工作流)---
ccb() {
claude --plugin-dir "$(ce-cli plugin-path compound-engineering --branch "$1")" "${@:2}"
}
codex-ceb() {
ce-cli install compound-engineering --to codex --branch "$1" "${@:2}"
}
使用方法:
cce # 在 Claude Code 中使用本地 checkout
codex-ce # 将本地 checkout 安装到 Codex
ccb feat/new-agents # 使用 Claude Code 测试推送的分支
ccb feat/new-agents --verbose # 向 claude 传递额外标志
codex-ceb feat/new-agents # 将推送的分支安装到 Codex
Codex 安装将生成的插件技能隔离在 ~/.codex/skills/compound-engineering/ 下,不会向 ~/.agents 写入新文件。安装程序在能够证明旧的 CE 管理的 .agents/skills 符号链接指向 CE 的 Codex 管理存储时,会将其移除,从而防止旧的 Codex 安装覆盖 Copilot 的原生插件安装。
故障排除
Codex 技能正常工作,但审查或研究委托失败
运行 agent 安装步骤:
bunx @every-env/compound-plugin install compound-engineering --to codex
原生 Codex 插件安装处理技能。Bun 步骤安装这些技能委托的自定义 agent。
Codex 显示过时或重复的 CE 技能
在切换到原生 Codex 插件流程之前,备份旧的 Bun 安装产物:
bunx @every-env/compound-plugin cleanup --target codex
Copilot、Droid 或 Qwen 加载过时的 CE 技能
在使用原生插件路径之前,备份旧的 Bun 安装产物:
bunx @every-env/compound-plugin cleanup --target copilot
bunx @every-env/compound-plugin cleanup --target droid
bunx @every-env/compound-plugin cleanup --target qwen
限制
Codex 原生插件安装目前处理技能,而非自定义 agent。在 Codex 在其原生插件规范中支持 agent 之前,需要按照文档中的 Bun 后续步骤操作。
OpenCode、Pi、Gemini 和 Kiro 安装基于转换器,可能会随着这些目标格式的演变而变化。
发布版本由发布自动化管理。常规特性 PR 不应手动增加插件或市场清单的版本号。
常见问题(FAQ)
Claude Code 需要 Bun 吗?
不需要。Claude Code 直接从插件市场安装。Bun 仅用于基于转换器的目标、Codex 当前的 agent 后续步骤、本地开发以及清理旧的转换安装。
为什么 Codex 需要单独的 Bun 步骤?
Codex 的原生插件流程从 Codex 插件清单安装技能。它目前不安装复合工程技能委托的自定义审查员、研究员和 workflow agent。Bun 步骤填补了该空白。
在哪里可以看到所有可用的技能和 agent?
阅读复合工程插件 README。它列出了当前的技能和 agent 清单。
发布历史在哪里?
GitHub Releases 是规范的发布说明页面。根目录下的 CHANGELOG.md 指向该历史。
关于贡献
关于贡献: 请不要误解,但我不接受对我的任何项目的外部贡献。我只是没有心力去审查任何东西,而且这是我的名字在项目上,因此我对它引起的任何问题负责;所以从我的角度看,风险收益高度不对称。我还必须担心其他"利益相关者",这对于我主要为免费为自己制作的工具来说似乎不明智。欢迎提交 issue,甚至 PR 以说明建议的修复,但要知道我不会直接合并它们。相反,我会让 Claude 或 Codex 通过 gh 审查提交,并独立决定是否以及如何处理它们。特别欢迎 bug 报告。如果这冒犯了你,我很抱歉,但我想避免浪费时间并伤害感情。我理解这与寻求社区贡献的主流开源精神不一致,但这是我能保持这种速度并保持理智的唯一方式。