BMAD x Superpowers 深度融合
在├── docs/ [真理层]│ ├── tech-spec.md # 唯一的真理来源。如果代码和它冲突,改代码。│ ├── arch-decision/ # 架构决策记录 (ADR)。记录“为什么不选方案B”。│ └── threat-model.md # 安全边界定义。├── src/ [实现层]│ # 这里的代码只是 docs 的投影,它们是可被 AI 随时重写和替换的。├── tests
适用对象: 资深软件架构师、技术总监、AI 工程化专家
核心哲学: 将软件工程的“设计权”与“执行权”分离,通过协议与工具链实现高精度的 AI 协作。
📖 第一篇:理论基础与核心哲学 (The Theoretical Framework)
1.1 现代 AI 编程的“不可能三角”
在当前的 AI 辅助编程领域,我们面临着一个核心矛盾:
- 广度 (Context Width):理解整个项目架构、业务背景和用户意图的能力。
- 精度 (Execution Precision):编写无 Bug、类型安全、通过测试的代码的能力。
- 自主性 (Autonomy):在无人干预下完成长链条任务的能力。
目前的单体 Agent 无法同时满足这三点。
- BMAD (基于 IDE 的 Agent):擅长广度。它拥有文件树的索引,能理解“我们要构建一个电商系统”。但让它写具体的位运算代码时,它经常出错(精度不足)。
- Superpowers (基于 CLI 的 Agent):擅长精度和自主性。它能在终端里反复运行测试直到通过。但它很容易迷失在细节中,忘记了“为什么要做这个功能”(广度缺失)。
1.2 双脑架构 (The Bicameral Architecture)
本方法论借鉴了Julian Jaynes的“二分心智”理论,构建了一个由立法者和执行者组成的二元系统。
| 维度 | 左脑:BMAD (Rationalism) | 右脑:Superpowers (Empiricism) |
|---|---|---|
| 核心职责 | 立法 (Legislation) | 执法 (Enforcement) |
| 思维模式 | 演绎推理 (Deductive Reasoning) | 归纳验证 (Inductive Verification) |
| 产出物 | 规格说明书 (Spec / Markdown) | 可执行代码 (Impl / TypeScript) |
| 成功标准 | 逻辑自洽,无歧义 | 测试通过,无副作用 |
| 工具载体 | VS Code (Roo Code/Cline) | Terminal (Claude Code) |
1.3 核心协议:上下文种子 (The Context Seed Protocol)
连接双脑的不是“自然语言对话”,而是一种结构化的中间语言,我们称之为Context Seed(上下文种子)。它是一个高密度的信息包,包含了执行某一特定任务所需的所有约束条件,剔除了一切噪音。
📖 第二篇:工业级基础设施搭建 (Industrial Infrastructure)
要运行这套高精度的系统,普通的 npm init 是不够的。我们需要构建一个“无菌手术室”。
2.1 目录结构的语义学定义
在 F:\_xin\Teacher_Qi 下,我们建立严格的语义化目录:
Project Root
├── docs/ [真理层]
│ ├── tech-spec.md # 唯一的真理来源。如果代码和它冲突,改代码。
│ ├── arch-decision/ # 架构决策记录 (ADR)。记录“为什么不选方案B”。
│ └── threat-model.md # 安全边界定义。
├── src/ [实现层]
│ # 这里的代码只是 docs 的投影,它们是可被 AI 随时重写和替换的。
├── tests/ [契约层]
│ # 这里的代码是红线。Superpowers 必须死守的阵地。
├── worktrees/ [沙盒层]
│ # 所有的开发都在这里进行,严禁在主目录直接修改逻辑。
├── tools/ [编排层]
│ └── fusion-cli.js # 连接双脑的神经传导物质。
└── .clinerules [潜意识层]
# 植入 IDE 的硬性规则。
2.2 神经传导工具:Fusion CLI 的完整实现
这是一个生产级的协调脚本,用于处理上下文的提取、清洗和注入。
// tools/fusion-cli.js
const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');
const SPEC_FILE = path.join(__dirname, '../docs/tech-spec.md');
const SEED_FILE = path.join(__dirname, '../.context-seed.md');
// 1. 播种 (Seed Generation)
// 提取 Spec 的关键部分,结合当前任务,生成给 Superpowers 的指令。
function generateSeed(taskDescription) {
if (!fs.existsSync(SPEC_FILE)) {
console.error("❌ Fatal: Architecture Spec missing. Run BMAD first.");
process.exit(1);
}
const specContent = fs.readFileSync(SPEC_FILE, 'utf8');
// 构造高密度的 Prompt
const seedContent = `
# SUPERPOWERS MISSION PROTOCOL
## 1. SOURCE OF TRUTH (Architecture)
${specContent}
## 2. CURRENT OBJECTIVE (Tactical)
${taskDescription}
## 3. RULES OF ENGAGEMENT
- **Isolation**: You MUST create a git worktree named 'feat/${Date.now()}'.
- **TDD Mandate**: You MUST write a failing test first.
- **Verification**: Run 'npm test' after every change.
`;
fs.writeFileSync(SEED_FILE, seedContent);
console.log(`✅ Seed planted at ${SEED_FILE}. Ready for execution.`);
}
// 2. 验证 (Verification)
// 检查代码是否偏离了文档(简单的存在性检查,高级版可用 AST 分析)
function verifySync() {
// 这里可以集成复杂的静态分析逻辑
console.log("🔍 Verifying Spec <-> Code consistency...");
// ...
}
const action = process.argv[2];
const arg = process.argv[3];
if (action === 'seed') generateSeed(arg);
if (action === 'verify') verifySync();
📖 第三篇:标准作业程序详解 (Detailed SOP)
这是指挥官(您)必须背诵的每日操作流程。
阶段一:立法 (Legislation - BMAD)
场景:你需要设计一个“防抖动的高频数据采集器”。
动作:
- 在 VS Code 打开
docs/tech-spec.md。 - 唤醒 BMAD Agent:“设计采集器模块。要求:支持 10ms 级别的防抖,支持批处理上传,错误重试 3 次。”
- 人工审查:检查生成的文档。是否定义了
flush()接口?是否定义了内存上限? - 批准:保存文件。
阶段二:传导 (Transmission)
动作:
在终端运行:node tools/fusion-cli.js seed "Implement the DebounceCollector class"
阶段三:执法 (Enforcement - Superpowers)
场景:终端 (Claude CLI)。
动作:
- 读取种子:
/compact-> “Read .context-seed.md and execute the mission.” - 沙盒作业:
- Claude 自动执行
git worktree add -b feat/debounce worktrees/debounce main。 - Claude 进入
worktrees/debounce目录。
- Claude 自动执行
- 红灯 (The Red):
- Claude 创建
tests/collector.test.ts。 - 写入测试:模拟快速调用 100 次
add(),断言 100ms 后只触发一次上传。 - 运行测试 -> FAIL。
- Claude 创建
- 绿灯 (The Green):
- Claude 创建
src/collector.ts。 - 实现
setTimeout和数组缓冲逻辑。 - 运行测试 -> PASS。
- Claude 创建
- 重构 (Refactor):
- Claude 发现类型定义有点乱,自动整理接口。
阶段四:回归 (Reintegration)
动作:
- 合并:Claude 执行
git merge。 - 清理:Claude 执行
git worktree remove。 - 反向同步:回到 VS Code,告诉 BMAD Agent:“Implementation complete. Update the spec if any implementation details changed (e.g., added a private method
_flush).”
📖 第四篇:深水区实战案例 (Deep Dive Cases)
案例一:分布式雪花算法 (Snowflake ID) —— 精度与位运算的巅峰挑战
这个案例展示了如何处理 AI 极其不擅长的“精确数学逻辑”。
1. BMAD 架构定义
在 Spec 中,我们必须用伪代码甚至数学公式来约束 AI,而不是用自然语言。
## Snowflake Specification
- **Total Bits**: 64 (BigInt)
- **Structure**:
- Unused: 1 bit (always 0)
- Timestamp: 41 bits (ms)
- NodeID: 10 bits
- Sequence: 12 bits
- **Clock Regression Strategy**: If `current_ts < last_ts`, throw `Error("Clock moved backwards")`.
2. Superpowers 执行细节
我们要求 Superpowers 编写一个**“时间旅行测试”**。
// tests/snowflake.test.ts
test('should throw on clock regression', () => {
const generator = new Snowflake(1);
// Mock Date.now to return past time
vi.spyOn(Date, 'now').mockReturnValueOnce(1000).mockReturnValueOnce(999);
generator.nextId(); // First call OK
expect(() => generator.nextId()).toThrow("Clock moved backwards");
});
只有通过了这个测试,我们才允许该代码上线。普通的 Copilot 往往会忽略时钟回拨问题,导致 ID 冲突。
案例二:支付网关状态机 —— 逻辑完备性的挑战
支付逻辑最怕“状态穿透”(比如没付款就发货)。
1. BMAD 架构定义
使用 Mermaid 图 来定义合法的状态流转。
2. Superpowers 执行细节
我们要求 Superpowers 使用 xstate 或 TS Enum 实现,并编写全排列测试。
test.each([
['PENDING', 'CAPTURED'], // Illegal
['FAILED', 'AUTHORIZED'], // Illegal
])('should forbid transition from %s to %s', (from, to) => {
const fsm = new PaymentFSM(from);
expect(() => fsm.transition(to)).toThrow();
});
📖 第五篇:元进化 —— 训练你的私人开发军团 (Meta-Evolution)
这是最高阶的玩法。你不再手动写 Prompt,你训练 Agent 去写代码。
5.1 数据闭环 (Data Flywheel)
- 日志留存:保存所有成功的
.context-seed.md和最终的src/代码。 - 微调 (Fine-tuning):
- 当积累了 500 个样本后,你可以微调一个基于 Llama 3 或 Mistral 的小模型。
- 这个模型将完全理解你的编码规范(比如:你喜欢用
interface还是type,你喜欢jest还是vitest)。
- 私有化部署:将这个微调后的模型部署在本地,作为 Superpowers 的后端,速度更快,隐私性更强。
5.2 团队扩散 (Scaling)
如何在一个 50 人的团队中推广?
- Spec CI:在 CI 流水线中加入检查,如果 PR 中修改了
src/但没修改docs/,直接红灯。 - Context Sharing:建立一个中央的 Vector Database(向量数据库),存储所有的历史 Spec。当 BMAD Agent 设计新功能时,它会自动检索公司过去 5 年的类似设计方案,避免重复造轮子。
结语:造物主的视角
当你读完这份白皮书,你应该明白:
代码只是实现逻辑的一种暂时的、昂贵的、易碎的载体。
- 逻辑(Logic) 是永恒的(存在于 Spec 中)。
- 验证(Verification) 是神圣的(存在于 Test 中)。
- 实现(Implementation) 是可抛弃的(由 Superpowers 生成)。
你现在的角色,是这套 “逻辑 -> 验证 -> 实现” 转化机器的设计者。这才是 AI 时代软件工程师的终极形态。
更多推荐



所有评论(0)