Plan 详细指南
Claude Code 使用
/spec:plan,Codex 使用$spec-plan。契约见spec-plan。
Plan 把需求文档变成 可执行计划。它回答的不是“做什么”,而是“准备怎么做、改哪里、怎么验证”。
输入与输出
- 输入:需求文档,或已经足够清晰的目标
- 输出:
docs/plans/*.md
一份合格的计划,通常应包含:
- 文件范围
- 风险与边界
- Implementation Units
- 验证方式
- 可能延后到实施阶段解决的问题
Plan 不负责什么
- 不在这里写代码
- 不把运行时试错当作规划
- 不把实现细节提前塞进需求文档
如果某个问题只能通过改代码和跑测试来确定,它就属于 Work。
使用方式
Claude Code:
bash
/spec:plan docs/brainstorms/2026-04-20-example-requirements.mdCodex:
bash
$spec-plan docs/brainstorms/2026-04-20-example-requirements.md执行逻辑图
text
用户运行 /spec:plan 或 $spec-plan
|
v
读取 requirements、repo facts、graph status、confirmed standards、相关源码路径
|
v
确认 scope boundaries、非目标、目标 repo / module
|
v
拆分 Implementation Units 和依赖顺序
|
v
标注风险、测试场景、验证方式、deferred unknowns
|
v
输出 docs/plans/*-plan.md
|
+-- 计划较大
| |
| v
| 交给 spec-write-tasks 编译 task pack
|
+-- 计划足够小
|
v
直接交给 spec-work 执行计划应该解决哪些问题
一份有价值的 Plan 至少应让后续 Work 能回答:
- 改动边界在哪里
- 哪些文件属于当前任务
- 哪些是非目标
- 先做什么,后做什么
- 如何验证完成
与 Work 的边界
Plan
- 决策
- 拆解
- 风险识别
- 验证设计
Work
- 真实改动代码
- 真实跑验证
- 在边界内完成交付
当前更准确的理解
Plan 不是“写得越长越好”的设计文档。
它更接近一个执行前决策工件,用来降低:
- 范围蔓延
- 中途返工
- 计划与实现脱节
