【3】第一条工作流:Spec 先行 + Superpowers 分步交付

 
## 为什么需要「第一条工作流」

工具链齐了,若仍用「一句话做一个后台管理系统」,你会得到:

- 一次改十几个文件,diff 难审  
- 上下文压缩后 AI 忘记最初目标  
- 能跑但缺 empty/error/权限  

**第一条工作流** 的目标:把 AI 的产出 **锁在 Spec 和步骤里**,让人每一步都能审、能停、能回滚。

---

## 总流程(平台 / 中后台)

```text
brainstorming(设计对齐)
    → writing-plans(实现计划)
    → subagent-driven-development / executing-plans(分步实现)
    → test-driven-development(关键逻辑)
    → verification-before-completion(声称完成前跑验证)
    → code-review(审查)
    → finishing-a-development-branch(合并/PR)
```

以上步骤对应 `ai-native` 仓库中的 **superpowers** Skill 子模块。在 Cursor 里用自然语言触发即可。

### 对话示例

| 阶段 | 你对 Agent 说 |
|------|-------------|
| 设计 | 「用 superpowers 的 brainstorming,先别写代码,帮我把需求问清楚。」 |
| 计划 | 「用 writing-plans 把刚才的设计拆成带文件路径的任务。」 |
| 实现 | 「实现 Task 1,遵守 fullstack-dev-standards。」 |
| 完成前 | 「用 verification-before-completion,跑测试后再说是否完成。」 |
| 合并前 | 「用 code-review 审查本次 diff。」 |

---

## 阶段一:brainstorming(动手前对齐)

**铁律:未呈现设计并获认可前,不写代码。**

brainstorming Skill 要求:

1. 探索项目上下文  
2. 一次只问一个澄清问题  
3. 给出 2–3 种方案与权衡  
4. 分节呈现设计,逐节确认  
5. 写入 `docs/superpowers/specs/YYYY-MM-DD-<feature>-design.md`  
6. 用户审阅通过后 → **只** 进入 writing-plans  

即使「只是个简单列表页」,也要走短版设计——简单项目更需要明确边界,否则 AI 假设会跑偏。

---

## 阶段二:writing-plans(可执行任务)

设计通过后,产出 **实现计划**,建议路径:

`docs/superpowers/plans/YYYY-MM-DD-<feature>.md`

每个任务须包含:

- **精确文件路径**(Create / Modify)  
- **完整代码片段**(不是「加个表单」)  
- **可运行验证命令** + 期望输出  
- **TDD 步骤**:失败测试 → 实现 → 通过 → commit  

计划头模板:

```markdown
# [功能名] Implementation Plan

> **For agentic workers:** 使用 superpowers:subagent-driven-development 或 executing-plans 按任务执行。

**Goal:** [一句话]

**Architecture:** [2–3 句]

**Tech Stack:** [关键技术]

## Global Constraints
[从 Spec 复制的项目级约束]
```

**禁止** 计划里出现 TBD、implement later、类似 Task N 等占位。

---

## 规划落盘:planning-with-files

除实现计划外,**长任务**(预计 5 次以上工具调用)建议在项目根维护三文件:

| 文件 | 用途 |
|------|------|
| `task_plan.md` | 阶段、进度、决策、错误记录 |
| `findings.md` | 调研与发现(每 2 次搜索/浏览后更新) |
| `progress.md` | 会话日志、测试结果 |

**类比**:上下文窗口 = RAM(易失);文件 = 磁盘(持久)。对话被压缩后,计划仍在磁盘上。

模板:`ai-native` → `.cursor/skills/planning-with-files/templates/`

触发语:

> 「用 planning-with-files,先建 task_plan.md,再开始改代码。」

---

## 阶段三:分步实现

两种执行模式(superpowers 提供):

| 模式 | 适用 | 说明 |
|------|------|------|
| **subagent-driven-development** | 有 Subagent / Task | 每任务派生子代理,任务间 Review |
| **executing-plans** | 单会话 | 按 checkbox 逐步执行,卡点停下来问人 |

**共同原则:**

- 一次只做计划里的一项  
- 不越界改「禁止修改」路径  
- 每步跑验证命令  
- 卡住就停,不要猜  

---

## 阶段四:质量闸门

### test-driven-development

关键逻辑:**先写失败测试,再写实现**。  
若已经先写了实现再补测试,严格 TDD 要求删掉重来——否则无法证明测试有效。

### verification-before-completion

**铁律:没有 fresh 验证证据,不得声称完成。**

```
1. 识别:什么命令能证明 claim?
2. 运行:完整跑一遍
3. 阅读:exit code、失败数
4. 再声称:通过 / 未通过
```

禁止「应该没问题了」「看起来对了」。

### code-review

合并前用 code-review Skill 或人工按维度审查:安全、性能、正确性、可维护性、测试。

---

## 给 AI 的第一条消息模板(复制即用)

```markdown
## 目标
[一句话要做什么]

## 非目标
[明确不做什么]

## 技术栈
Vue 3 + TypeScript + Pinia + 团队 request 封装(code/data/message)

## 允许修改
- src/views/xxx/
- src/services/xxxService.ts

## 禁止修改
- src/utils/request.ts
- 路由配置

## 验收标准
- [ ] loading / error / empty
- [ ] 筛选变更重置 pageNo=1
- [ ] 无权限按钮置灰

## 参考 Skill
请先读 fullstack-dev-standards,再动手。
```

**非目标** 和 **禁止修改** 往往比目标更能省返工。

---

## 分场景:官网 vs 平台

| 类型 | 时间重心 | 流程是否省略 Spec |
|------|---------|------------------|
| **官网 / 品牌站** | 设计工具(Figma、动效) | 否,仅设计占比更高 |
| **中后台 / 平台** | Cursor + 组件规约 + 需求迭代 | 否,Spec 与计划更重要 |

两类都要 **人审、测试、Review**;差别只在设计 vs 工程的时间分配。

---

## OpenSpec 与 SDD(延伸阅读)

大需求可借助 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 等工具,把需求写成 **结构化规格**(边界、输入输出、与模板接点),再逐条喂给 Agent。

核心思想不变:**别让 AI 在对话里临时发明一套互相矛盾的约束。**

---

## 本篇小结

1. 先 brainstorming,再 writing-plans,再分步写代码。  
2. 长任务用 planning-with-files 落盘。  
3. 首条消息写清目标、非目标、允许/禁止路径、验收标准。  
4. 完成前 verification,合并前 code-review。

---

## 系列导航

| 篇目 | 标题 |
|:---:|------|
| 1 | [AI-Native 是什么?](01-AI-Native是什么.md) |
| 2 | [工具链入门](02-工具链入门.md) |
| **3** | **第一条工作流:Spec 先行 + Superpowers 分步交付**(本文) |
| 4 | [前后端交付标准](04-前后端交付标准.md) |
| 5 | [7 天上手计划与 FAQ](05-七天上手与FAQ.md) |

---

*本文是「AI-Native 开发入门」系列文章,配套仓库 `ai-native`。*
posted @ 2026-06-24 18:00  一个老码农  阅读(1)  评论(0)    收藏  举报