speckit.plan.md 3.16 KB
description: 使用计划模板执行实现规划流程,并生成设计产物。
handoffs:
  - label: 生成任务列表
    agent: speckit.tasks
    prompt: 将实现计划拆分为可执行任务
    send: true
  - label: 生成检查清单
    agent: speckit.checklist
    prompt: 为以下领域生成一份检查清单……

用户输入

$ARGUMENTS

在继续之前,你必须先考虑用户输入(如果不为空)。

概述

  1. 准备:在仓库根目录运行 .specify/scripts/bash/setup-plan.sh --json,并解析 JSON 中的 FEATURE_SPEC、IMPL_PLAN、SPECS_DIR、BRANCH。当参数里包含单引号(例如 "I'm Groot")时,使用转义写法:如 'I'\''m Groot'(或尽量用双引号:"I'm Groot")。

  2. 加载上下文:读取 FEATURE_SPEC 与 .specify/memory/constitution.md。加载 IMPL_PLAN 模板(已复制到目标位置)。

  3. 执行规划流程:按 IMPL_PLAN 模板结构完成:

    • 填写技术上下文(未知项标记为 “NEEDS CLARIFICATION”)
    • 从宪法中填写“宪法检查”小节
    • 评估门禁(若存在未经合理解释的违规则 ERROR)
    • Phase 0:生成 research.md(解决所有 NEEDS CLARIFICATION)
    • Phase 1:生成 data-model.md、contracts/、quickstart.md
    • Phase 1:通过运行 agent 脚本更新 agent 上下文
    • 设计完成后重新评估“宪法检查”
  4. 停止并汇报:命令在 Phase 2 规划后结束。汇报分支名、IMPL_PLAN 路径与生成的产物。

阶段

Phase 0:大纲与调研

  1. 从上面的技术上下文中提取未知项

    • 每个 NEEDS CLARIFICATION → 一条调研任务
    • 每个依赖 → 一条最佳实践任务
    • 每个集成点 → 一条模式/方案任务
  2. 生成并分发调研 agent

   对于技术上下文中的每个未知项:
     任务:"为 {feature context} 调研 {unknown}"
   对于每个技术选型:
     任务:"为 {domain} 场景寻找 {tech} 的最佳实践"
  1. research.md 中汇总结论,格式为:
    • 决策(Decision):[选择了什么]
    • 理由(Rationale):[为什么这样选]
    • 备选方案(Alternatives):[还评估了什么]

输出:research.md,且所有 NEEDS CLARIFICATION 已解决

Phase 1:设计与契约

前置条件: research.md 已完成

  1. 从功能 spec 中提取实体data-model.md

    • 实体名称、字段、关系
    • 来自需求的校验规则
    • 若适用:状态流转
  2. 从功能需求生成 API 契约

    • 每个用户动作 → 一个 endpoint
    • 使用标准 REST/GraphQL 模式
    • 输出 OpenAPI/GraphQL schema 到 /contracts/
  3. 更新 agent 上下文

    • 运行 .specify/scripts/bash/update-agent-context.sh cursor-agent
    • 脚本会检测当前使用的是哪个 AI agent
    • 更新对应的 agent 专属上下文文件
    • 只追加本次计划中新引入的技术
    • 保留标记区间内的人工补充内容

输出:data-model.md、/contracts/*、quickstart.md、agent 专属上下文文件

关键规则

  • 使用绝对路径
  • 门禁失败或存在未解决澄清项时直接 ERROR