Every 公司的复利工程实践 - 让每一次工程工作都让下次更容易
Compound Engineering 是 Every 公司开发的 AI 技能和 Agent 集合。它的核心理念是:每次工程工作都应该让下次更容易,而不是更难。
| 传统开发 | 复利工程 |
|---|---|
| 每加一个功能,代码更难维护 | 80% 在计划和审查,20% 在执行 |
| 技术债务累积 | 每次工作都要留下知识 |
| 知识随着人走 | 知识沉淀在文档中 |
| 代码会"腐烂" | 代码越改越好 |
Brainstorm → Plan → Work → Review → Compound → Repeat
↑
Ideate (可选)
/plugin marketplace add EveryInc/compound-engineering-plugin
/plugin install compound-engineering
在 Cursor Agent chat 中输入:
/add-plugin compound-engineering
# Codex
bunx @every-env/compound-plugin install compound-engineering --to codex
# OpenCode
bunx @every-env/compound-plugin install compound-engineering --to opencode
# Gemini CLI
gemini extensions install https://github.com/EveryInc/compound-engineering-plugin在 Claude Code 中输入:
/ce:brainstorm
如果看到提示让你开始构思,说明安装成功!
想象你有一个知识库,每次解决一个问题后,你都把解决方案记录下来。下次遇到类似问题,你可以直接查阅,不需要再重新研究。
这就是复利:每次工作都有"利息",积累成未来的生产力。
-
Brainstorm(构思)
- 探索需求和替代方案
- 通过问答细化想法
- 生成需求文档
-
Plan(计划)
- 将需求转化为技术计划
- 包含精确的文件路径和代码
- 每个任务可独立验证
-
Work(工作)
- 使用 git worktree 隔离开发
- 任务跟踪和进度报告
- 子 Agent 执行和审查
-
Review(审查)
- 多 Agent 代码审查
- 从不同角度审视代码
- 发现问题和改进点
-
Compound(复利)
- 记录学到的东西
- 更新文档和知识库
- 让下次更容易
功能:通过交互式问答细化需求,生成需求文档。
什么时候用:当你有新想法,但不确定具体要做什么时。
案例:
/ce:brainstorm
Compound Engineering 会问你一系列问题:
你好!让我帮你细化想法。
1. 你想构建什么?给谁用?
→ 我想做一个 AI 写作助手,帮助营销人员写文案
2. 解决什么痛点?
→ 写文案太花时间,经常不知道从哪里开始
3. 现有方案有哪些?
→ Jasper AI, Copy.ai,但要付费
4. 你的方案有什么不同?
→ 免费、开源、专门针对中文营销文案
5. 如何判断成功?
→ 用户可以用它生成完整的营销文案
你回答完问题后,它会生成需求文档:
## 需求文档:AI 营销文案助手
### 核心功能
1. 主题生成:输入产品名,自动生成营销主题
2. 文案生成:根据主题生成完整文案
3. 改写优化:优化现有文案
### 目标用户
- 营销人员
- 小企业主
- 自由职业者
### 成功指标
- 80% 用户完成首次文案生成
- 平均生成时间 < 30 秒
功能:将需求文档转化为详细的技术实现计划。
什么时候用:需求明确后,需要开始实现时。
案例:
/ce:plan
它会读取你的需求文档,生成技术计划:
## 技术计划:AI 营销文案助手
### Phase 1: 基础架构 (30 分钟)
#### 任务 1.1: 项目初始化
- 文件: package.json, tsconfig.json
- 命令: `bun init`
- 验证: `bun run build`
#### 任务 1.2: 基础类型定义
- 文件: src/types/index.ts
- 代码: Topic, CopyRequest, CopyResponse
- 验证: `bun test types`
#### 任务 1.3: API 客户端封装
- 文件: src/api/client.ts
- 代码: OpenAI API 调用封装
- 验证: `bun test api`
### Phase 2: 核心功能 (1 小时)
#### 任务 2.1: 主题生成器
- 文件: src/generators/topic.ts
- 输入: 产品名
- 输出: 10 个营销主题
- 验证: `bun test generators/topic`
#### 任务 2.2: 文案生成器
- 文件: src/generators/copy.ts
- 输入: 主题 + 产品信息
- 输出: 营销文案
- 验证: `bun test generators/copy`
... (更多任务)
### 验收标准
- [ ] 主题生成功能可用
- [ ] 文案生成功能可用
- [ ] 单元测试覆盖率 > 80%
功能:使用 git worktree 隔离执行计划,任务跟踪。
什么时候用:有技术计划后,需要开始实现时。
案例:
/ce:work
Phase 1: 创建工作环境
✓ Created worktree: /workspace/ai-copywriter
✓ Branch: feature/ai-copywriter
✓ 依赖已安装
✓ 测试基线: 12 passing
Phase 2: 执行任务
## 任务进度
### Phase 1: 基础架构
[██████] 1.1 项目初始化 ✓
[██████] 1.2 类型定义 ✓
[██████] 1.3 API 客户端 ✓
### Phase 2: 核心功能
[███ ] 2.1 主题生成器 (进行中)
[ ] 2.2 文案生成器
[ ] 2.3 改写优化
### Phase 3: 前端
[ ] 3.1 React 组件
[ ] 3.2 页面集成
Phase 3: 原子提交
✓ [task-1.1] Initialize project structure
✓ [task-1.2] Add TypeScript types
✓ [task-1.3] Implement API client wrapper
✓ [task-2.1] Implement topic generator
[原子提交列表]
- task-1.1: Initialize project structure
- task-1.2: Add TypeScript types
- task-1.3: Implement API client wrapper
功能:多 Agent 代码审查,从不同角度审视代码。
什么时候用:代码写完后,准备合并前。
案例:
/ce:review
它会启动多个审查 Agent:
## 代码审查进行中
[1/4] 🔍 correctness-reviewer
检查逻辑错误、边缘情况、状态管理
→ 2 issues found
[2/4] 🔍 security-reviewer
检查安全漏洞、输入验证、权限
→ 0 issues found
[3/4] 🔍 performance-reviewer
检查性能问题、数据库查询、缓存
→ 1 issue found
[4/4] 🔍 testing-reviewer
检查测试覆盖、断言强度、边缘情况
→ 3 issues found
汇总报告:
## 审查结果
### Critical (必须修复)
- ❌ 缺少 API 错误处理 (src/api/client.ts:45)
- ❌ 内存泄漏风险 (src/generators/topic.ts:78)
### High (建议修复)
- ⚠️ 测试覆盖率不足 (src/api/ -> 65%)
### Medium (可选优化)
- 💡 日志可以更详细
- 💡 考虑添加缓存
### 审查通过
✓ 安全审查通过
✓ 性能审查通过
功能:记录本次工作中学到的东西,让下次更容易。
什么时候用:功能完成后,想要沉淀知识时。
案例:
/ce:compound
Compound Engineering 会问你:
让我帮你记录这次学到的东西...
1. 这次实现中最重要的是什么?
→ 使用流式响应处理长文案
2. 什么情况下会出问题?
→ API 超时没有正确处理
3. 有什么建议给未来的自己?
→ 一定要添加超时和重试机制
4. 哪些文档需要更新?
→ README.md
→ API.md
生成复利文档:
## 复利文档:AI 营销文案助手
### 本次学到的重要经验
1. **流式响应处理**
- 使用 Server-Sent Events (SSE)
- 前端需要正确处理流数据
- 参考: src/utils/stream.ts
2. **超时和重试**
- API 调用必须设置超时 (30s)
- 失败后自动重试 3 次
- 参考: src/api/retry.ts
### 更新的文档
- README.md: 添加使用示例
- API.md: 记录新的端点
### 下次开发的建议
- 先实现错误处理
- 添加监控和日志
功能:通过发散性思考和对抗性过滤,发现改进机会。
什么时候用:想要发现产品改进点,但没有具体想法时。
案例:
/ce:ideate
Phase 1: 发散
发现 10 个潜在改进点:
1. 添加模板功能
2. 支持更多语言
3. 批量生成
4. SEO 优化建议
5. 社交媒体分发
6. A/B 测试
7. 团队协作
8. 历史记录
9. 导出功能
10. AI 配图
Phase 2: 评估
评估每个想法:
[高价值]
- 模板功能: 80% 用户需要
- 批量生成: 60% 用户需要
[中价值]
- 多语言支持: 40% 用户需要
- SEO 优化: 35% 用户需要
[低价值]
- AI 配图: 15% 用户需要
[建议]
- 首先实现模板功能
- 其次实现批量生成
让我们看 Compound Engineering 如何帮助你完成这个项目。
你输入:
/ce:brainstorm
你回答问题:
1. 你想构建什么?给谁用?
→ 我想做一个天气应用,给日常用户查看天气
2. 解决什么痛点?
→ 现有天气应用广告太多,想做一个简洁的
3. 现有方案有哪些?
→ 天气通、墨迹天气,但都有广告
4. 你的方案有什么不同?
→ 无广告、简洁、支持小组件
生成需求文档:
## 需求文档:简洁天气应用
### 核心功能
- 当前天气显示
- 7 天预报
- 小组件支持
- 无广告
### 技术方案
- API: OpenWeatherMap
- 前端: React Native
- 平台: iOS + Android
### 目标用户
- 日常查看天气的用户
- 痛点:广告太多
你输入:
/ce:plan
生成计划:
## 技术计划:简洁天气应用
### Phase 1: 项目设置
1. 初始化 React Native 项目
2. 配置 TypeScript
3. 添加导航库
### Phase 2: 天气服务
4. 创建天气 API 客户端
5. 实现当前天气查询
6. 实现 7 天预报
### Phase 3: UI 组件
7. 当前天气卡片组件
8. 预报列表组件
9. 城市搜索组件
### Phase 4: 小组件
10. iOS 小组件
11. Android 小组件
### Phase 5: 测试
12. 单元测试
13. 集成测试
### 验收标准
- [ ] 可以查询任意城市天气
- [ ] 显示 7 天预报
- [ ] 支持 iOS 小组件
- [ ] 无广告
你输入:
/ce:work
执行过程:
✓ Created worktree: /workspace/weather-app
✓ Branch: feature/weather-app
开始执行任务...
[Phase 1: 项目设置]
✓ 1.1 初始化 React Native 项目
✓ 1.2 配置 TypeScript
✓ 1.3 添加导航库
[Phase 2: 天气服务]
✓ 2.1 创建天气 API 客户端
✓ 2.2 实现当前天气查询
✓ 2.3 实现 7 天预报
[Phase 3: UI 组件]
✓ 3.1 当前天气卡片
✓ 3.2 预报列表
✓ 3.3 城市搜索
[Phase 4: 小组件]
✓ 4.1 iOS 小组件
✓ 4.2 Android 小组件
任务完成!所有提交已生成。
你输入:
/ce:review
审查结果:
## 代码审查报告
[✓] correctness-reviewer
- 无逻辑错误
[⚠] security-reviewer
- 建议:API 密钥不应硬编码
- 建议:添加速率限制
[✓] performance-reviewer
- 性能良好
[⚠] testing-reviewer
- 覆盖率 72%,建议 > 80%
修复建议问题后继续...
你输入:
/ce:compound
记录内容:
## 复利文档:天气应用
### 学到的经验
1. **API 密钥管理**
- 使用 react-native-config 管理环境变量
- 不要硬编码任何密钥
2. **天气 API 缓存**
- 缓存 30 分钟减少 API 调用
- 减少用户等待时间
3. **小组件刷新**
- iOS 小组件每小时刷新
- 使用 Background Tasks 库
### 更新的文档
- README.md: 添加功能说明
- CONTRIBUTING.md: 添加开发指南
- ARCHITECTURE.md: 添加架构说明
### 给未来的建议
- 先处理 API 错误
- 添加更多城市支持前先优化性能
A: 免费!MIT 许可证。
A:
- gstack: 15 个专业角色,最完整
- Superpowers: 自动化工作流,TDD 强制
- Compound Engineering: 强调"复利",知识沉淀
A: ce 是 Compound Engineering 的缩写。所有的命令都以 /ce: 开头。
/plugin update compound-engineeringA: 可以。Compound Engineering 使用技能系统,你可以添加自己的技能。
- 阅读 Compound Engineering 完整文档
- 尝试
/ce:ideate发现改进点 - 了解多平台支持:Codex、OpenCode、Cursor
准备好了?开始你的第一个 /ce:brainstorm 吧! 🚀