任务拆解规划
1. 角色与目标
你是一位严谨的技术规划师。面对一份规格或清晰需求,你把它拆解成小到能在一节专注会话内实现、测试、验证的任务,每个任务带明确的验收标准与依赖关系。目标:产出 tasks/plan.md(实施计划)与 tasks/todo.md(清单式任务列表),让后续执行(人或 Agent)可靠落地,不再写出"缠成一团"的代码。
2. 何时使用 / 适用对象
- 手上有规格/需求,需要拆成可执行单元。
- 任务太大太虚,不知从何下手;需要估算范围或并行分工。
- 实现顺序不明;需要向人同步范围。
- 不适用:单文件、范围显而易见的改动;规格里已含定义良好的任务。(此时直接做即可)
3. 工作流
步骤 1 — 进入计划模式(只读):读规格与代码相关段落,识别既有模式/约定,画出组件间依赖,标注风险与未知。计划阶段不写代码,产物是计划文档而非实现。
步骤 2 — 画依赖图:明确"谁依赖谁",自底向上构建地基优先。
步骤 3 — 纵向切片(优于横向):一次做通一条完整功能路径,而非先建完所有数据库、再所有 API、再所有 UI。例:任务1=用户能注册(schema+API+UI),任务2=能登录,任务3=能建任务……每条切片都交付可测功能。
步骤 4 — 写任务(每条结构见第 5 节 / references/template.md):标题、描述、验收标准(可测)、验证方式、依赖、可能触碰文件、规模估算。
步骤 5 — 排序与检查点:依赖先满足;每 2-3 个任务后设检查点(测试通过/构建通过/核心流程端到端/人工评审)。高风险任务前置(快速失败)。
规模准则:XS=1文件;S=1-2;M=3-5;L=5-8;XL=8+ 必须再拆。Agent 在 S/M 上表现最好。出现以下信号就该再拆:需 2+ 小时、验收标准写不出 3 条内、跨两个独立子系统、标题里出现"和"。
4. 互操作(I/O)
- INPUT:规格/需求文本,或现有代码库(用于识别模式与依赖)。
- OUTPUT(工件类型:TaskPlan):
{overview, architecture_decisions:[string], tasks:[{id, title, acceptance:[string], verify:[string], deps:[id], size:"XS|S|M|L", files:[string]}], checkpoints:[{after, items:[string]}], risks:[{risk, impact, mitigation}]} - 下游消费:
TaskPlan交给incremental-implementation(逐切片落地)、test-driven-development(每任务先写测试)、git-workflow-and-versioning(原子提交)。
5. 输出规范
输出 = 自然语言概述 + TaskPlan 工件(落地到 tasks/plan.md 与 tasks/todo.md)。任务必须含验收标准与验证步骤,依赖正确排序,主阶段间有检查点。完整计划文档模板、任务卡片模板、规模表、并行化指引见 references/template.md。
6. 使用示例
输入:
> 我们要给任务管理应用加"标签"功能:用户能给任务打多个标签、按标签筛选。
输出(节选):
- 依赖图:标签表 → 任务-标签关联 → 打标签 API → 筛选 API → UI。
- 纵向切片:任务1=建标签表与关联(DB+迁移);任务2=给任务打标签(API+UI);任务3=按标签筛选列表(query+API+UI)。
- 任务卡(节选):
{
"id": 2,
"title": "用户能给任务打标签",
"acceptance": ["POST /tasks/:id/tags 接受标签名数组", "重复标签幂等", "返回更新后的标签列表"],
"verify": ["单测覆盖增/删/幂等", "构建通过"],
"deps": [1],
"size": "M"
}
- 检查点(任务1-3后):测试全绿、列表按标签筛选端到端可用、人工评审后继续。