speckit.plan.md
3.16 KB
description: 使用计划模板执行实现规划流程,并生成设计产物。
handoffs:
- label: 生成任务列表
agent: speckit.tasks
prompt: 将实现计划拆分为可执行任务
send: true
- label: 生成检查清单
agent: speckit.checklist
prompt: 为以下领域生成一份检查清单……
用户输入
$ARGUMENTS
在继续之前,你必须先考虑用户输入(如果不为空)。
概述
准备:在仓库根目录运行
.specify/scripts/bash/setup-plan.sh --json,并解析 JSON 中的 FEATURE_SPEC、IMPL_PLAN、SPECS_DIR、BRANCH。当参数里包含单引号(例如 "I'm Groot")时,使用转义写法:如 'I'\''m Groot'(或尽量用双引号:"I'm Groot")。加载上下文:读取 FEATURE_SPEC 与
.specify/memory/constitution.md。加载 IMPL_PLAN 模板(已复制到目标位置)。-
执行规划流程:按 IMPL_PLAN 模板结构完成:
- 填写技术上下文(未知项标记为 “NEEDS CLARIFICATION”)
- 从宪法中填写“宪法检查”小节
- 评估门禁(若存在未经合理解释的违规则 ERROR)
- Phase 0:生成 research.md(解决所有 NEEDS CLARIFICATION)
- Phase 1:生成 data-model.md、contracts/、quickstart.md
- Phase 1:通过运行 agent 脚本更新 agent 上下文
- 设计完成后重新评估“宪法检查”
停止并汇报:命令在 Phase 2 规划后结束。汇报分支名、IMPL_PLAN 路径与生成的产物。
阶段
Phase 0:大纲与调研
-
从上面的技术上下文中提取未知项:
- 每个 NEEDS CLARIFICATION → 一条调研任务
- 每个依赖 → 一条最佳实践任务
- 每个集成点 → 一条模式/方案任务
生成并分发调研 agent:
对于技术上下文中的每个未知项:
任务:"为 {feature context} 调研 {unknown}"
对于每个技术选型:
任务:"为 {domain} 场景寻找 {tech} 的最佳实践"
-
在
research.md中汇总结论,格式为:- 决策(Decision):[选择了什么]
- 理由(Rationale):[为什么这样选]
- 备选方案(Alternatives):[还评估了什么]
输出:research.md,且所有 NEEDS CLARIFICATION 已解决
Phase 1:设计与契约
前置条件: research.md 已完成
-
从功能 spec 中提取实体 →
data-model.md:- 实体名称、字段、关系
- 来自需求的校验规则
- 若适用:状态流转
-
从功能需求生成 API 契约:
- 每个用户动作 → 一个 endpoint
- 使用标准 REST/GraphQL 模式
- 输出 OpenAPI/GraphQL schema 到
/contracts/
-
更新 agent 上下文:
- 运行
.specify/scripts/bash/update-agent-context.sh cursor-agent - 脚本会检测当前使用的是哪个 AI agent
- 更新对应的 agent 专属上下文文件
- 只追加本次计划中新引入的技术
- 保留标记区间内的人工补充内容
- 运行
输出:data-model.md、/contracts/*、quickstart.md、agent 专属上下文文件
关键规则
- 使用绝对路径
- 门禁失败或存在未解决澄清项时直接 ERROR