Back to Imewlconverter

Speckit.Tasks

.codebuddy/commands/speckit.tasks.md

3.3.15.5 KB
Original Source

用户输入

text
$ARGUMENTS

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

概述

  1. 设置: 从仓库根目录运行 .specify/scripts/bash/check-prerequisites.sh --json 并解析 FEATURE_DIR 和 AVAILABLE_DOCS 列表. 所有路径必须是绝对路径. 对于参数值中的单引号如 "I'm Groot", 使用转义语法: 例如 'I'''m Groot'(或尽可能使用双引号: "I'm Groot").

  2. 加载设计文档: 从 FEATURE_DIR 读取:

    • 必需: plan.md(技术栈、库、结构), spec.md(带优先级的用户故事)
    • 可选: data-model.md(实体), contracts/(API 端点), research.md(决策), quickstart.md(测试场景)
    • 注意: 并非所有项目都有所有文档. 基于可用内容生成任务.
  3. 执行任务生成工作流:

    • 加载 plan.md 并提取技术栈、库、项目结构
    • 加载 spec.md 并提取带优先级的用户故事(P1、P2、P3 等)
    • 如果存在 data-model.md: 提取实体并映射到用户故事
    • 如果存在 contracts/: 映射端点到用户故事
    • 如果存在 research.md: 提取设置任务的决策
    • 按用户故事生成任务(参见下面的任务生成规则)
    • 生成显示用户故事完成顺序的依赖关系图
    • 为每个用户故事创建并行执行示例
    • 验证任务完整性(每个用户故事都有所有必需任务, 可独立测试)
  4. 生成 tasks.md: 使用 .specify/templates/tasks-template.md 作为结构, 填充:

    • 来自 plan.md 的正确功能名称
    • 阶段 1: 设置任务(项目初始化)
    • 阶段 2: 基础任务(所有用户故事的阻塞先决条件)
    • 阶段 3+: 每个用户故事一个阶段(按 spec.md 中的优先级顺序)
      • 每个阶段包括: 故事目标、独立测试标准、测试(如果请求)、实现任务
      • 每个任务的清晰 [Story] 标签(US1、US2、US3...)
      • 每个故事内可并行任务的 [P] 标记
      • 每个故事阶段后的检查点标记
    • 最终阶段: 完善与横切关注点
    • 按执行顺序编号的任务(T001、T002...)
    • 每个任务的清晰文件路径
    • 显示故事完成顺序的依赖关系部分
    • 每个故事的并行执行示例
    • 实现策略部分(MVP 优先, 增量交付)
  5. 报告: 输出生成的 tasks.md 路径和摘要:

    • 总任务数
    • 每个用户故事的任务数
    • 识别的并行机会
    • 每个故事的独立测试标准
    • 建议的 MVP 范围(通常只是用户故事 1)

任务生成上下文: $ARGUMENTS

tasks.md 应该立即可执行 - 每个任务必须足够具体, 以便 LLM 可以在没有额外上下文的情况下完成它.

任务生成规则

关键: 任务必须按用户故事组织, 以实现独立的实现和测试.

测试是可选的: 仅当在功能规范中明确请求测试或用户请求 TDD 方法时才生成测试任务.

检查清单格式(必需)

每个任务必须严格遵循此格式:

text
- [ ] [TaskID] [P?] [Story?] 带文件路径的描述

格式组件:

  1. 复选框: 始终以 - [ ] 开头(markdown 复选框)
  2. 任务 ID: 按执行顺序的序号(T001、T002、T003...)
  3. [P] 标记: 仅当任务可并行化时包含(不同文件, 不依赖于未完成的任务)
  4. [Story] 标签: 仅用户故事阶段任务需要
    • 格式: [US1]、[US2]、[US3] 等(映射到 spec.md 中的用户故事)
    • 设置阶段: 无故事标签
    • 基础阶段: 无故事标签
    • 用户故事阶段: 必须有故事标签
    • 完善阶段: 无故事标签
  5. 描述: 带确切文件路径的清晰操作

示例:

  • ✅ 正确: - [ ] T001 根据实施计划创建项目结构
  • ✅ 正确: - [ ] T005 [P] 在 src/middleware/auth.py 中实现认证中间件
  • ✅ 正确: - [ ] T012 [P] [US1] 在 src/models/user.py 中创建用户模型
  • ✅ 正确: - [ ] T014 [US1] 在 src/services/user_service.py 中实现 UserService
  • ❌ 错误: - [ ] 创建用户模型(缺少 ID 和故事标签)
  • ❌ 错误: T001 [US1] 创建模型(缺少复选框)
  • ❌ 错误: - [ ] [US1] 创建用户模型(缺少任务 ID)
  • ❌ 错误: - [ ] T001 [US1] 创建模型(缺少文件路径)

任务组织

  1. 来自用户故事(spec.md) - 主要组织方式:

    • 每个用户故事(P1、P2、P3...)都有自己的阶段
    • 将所有相关组件映射到它们的故事:
      • 该故事所需的模型
      • 该故事所需的服务
      • 该故事所需的端点
      • 如果请求测试: 该故事特定的测试
    • 标记故事依赖关系(大多数故事应该是独立的)
  2. 来自合约:

    • 将每个合约/端点 → 映射到它服务的用户故事
    • 如果请求测试: 每个合约 → 在该故事阶段的实现之前的合约测试任务 [P]
  3. 来自数据模型:

    • 将每个实体映射到需要它的用户故事
    • 如果实体服务多个故事: 放在最早的故事或设置阶段
    • 关系 → 适当故事阶段的服务层任务
  4. 来自设置/基础设施:

    • 共享基础设施 → 设置阶段(阶段 1)
    • 基础/阻塞任务 → 基础阶段(阶段 2)
    • 故事特定的设置 → 在该故事的阶段内

阶段结构

  • 阶段 1: 设置(项目初始化)
  • 阶段 2: 基础(阻塞先决条件 - 必须在用户故事之前完成)
  • 阶段 3+: 按优先级顺序的用户故事(P1、P2、P3...)
    • 每个故事内: 测试(如果请求)→ 模型 → 服务 → 端点 → 集成
    • 每个阶段应该是一个完整的、可独立测试的增量
  • 最终阶段: 完善与横切关注点