第 27 章 | 第一次跑 `/dev`
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)
(申请发送: agentupdate)
第 27 章:第一次跑 /dev
学习目标
把前 26 章学的东西连起来,跑出第一行真实代码。
起跑前 checklist
flowchart TB
Pre["跑 /dev 前"] --> C1{git init 了?}
C1 -->|否| Init1["git init + 把 openspec/, .claude/, CLAUDE.md commit"]
C1 -->|是| C2{有 examples/<name>.md?}
Init1 --> C2
C2 -->|否| C2N["先建一个简单的,作为 E2E 入口"]
C2 -->|是| C3{Python venv 激活?}
C2N --> C3
C3 -->|否| C3N["python3 -m venv .venv && source .venv/bin/activate"]
C3 -->|是| C4{tmux/ffmpeg/Chrome?}
C3N --> C4
C4 -->|否| C4N["回 Ch 4 装"]
C4 -->|是| Ready["✓ 起跑就绪"]
C4N --> Ready
style Ready fill:#c8e6c9第一次的预期流程
你: /dev status
↓
trace:
Group 1: PENDING (4 task)
Group 2: PENDING (5 task)
...
你: /dev 1
↓
trace:
→ Group 1: dispatch developer (sonnet) ... done
→ Group 1: dispatch tester (sonnet) ... PASS
→ Group 1: dispatch reviewer (opus) R1 ... APPROVED
✓ Group 1: 项目脚手架
→ 这是理想成功路径。第一次很可能不是。
第一次会卡的地方(按概率排序)
| 卡点 | 原因 | 修法 |
|---|---|---|
| 1. developer 报"找不到 pyproject.toml" | 组 1 任务里要建,但 path 不对 | 等 developer 自己建好 |
| 2. tester 报 ImportError | dev 依赖没装 | venv 激活,pip install -e ".[dev]" |
| 3. edge-tts 网络错 | 限频或网络 | 重试或先 mock |
| 4. tmux 行为不对 | 老版本 | brew upgrade tmux |
| 5. reviewer 拒绝(合理) | developer 真的偏离 design | 看 review/N.md,让 developer 回炉 |
| 6. reviewer 拒绝(钻牛角尖) | sonnet 偶尔过严 | 阈值 3 后会自动升 deep |
每次 dispatch 后必看的三个地方
flowchart LR
Dispatch["dispatch 完"] --> A["1. agent 的 stdout 报告"]
A --> B["2. 它声称写过的文件 (Read 验证)"]
B --> C["3. git status / git diff"]
C --> Decide["确认状态再推进"]
style Decide fill:#c8e6c9→ 不要只信 stdout——agent 会撒谎或漏勾 checkbox。
第一次跑完组 1,你应该看到
$ git log --oneline
abc1234 feat(group-1): 项目脚手架
def5678 init: openspec scaffold
$ tree src/ tests/
src/doc2video/
├── __init__.py
└── ...
tests/
└── ...
$ ls openspec/changes/add-doc2video/
proposal.md design.md specs/ tasks.md review/ test-reports/
review/1.md 和 test-reports/1.md 都已存在。
第二组开始 = 进入节奏
/dev 2 → /dev 3 → /dev 4 → ...
或者直接:
/dev → 全部跑完到 E2E
心理准备
✅ 第一组慢一点正常(环境磨合)
✅ 中间会有几次回炉(这正是 reviewer 的价值)
✅ 偶尔卡 architect(说明 spec 真有缺陷,别懊恼)
❌ 别在第一组失败就怀疑整套设计——多半是基础设施
你现在能做什么
- 走完 起跑 checklist
- 跑出第一组完整循环
- 读懂 dispatch trace、知道哪里看进度
下一章讲故障排查——遇事不要慌。