| name | plan-to-tasks |
| description | 根据 plan.md 拆解变更计划为可独立验证的子任务 |
| argument-hint | [变更目录] |
Plan-to-Tasks — 任务拆解
读取 plan.md,将变更计划拆解为可独立验证的子任务,分析依赖关系,按拓扑分层。
输入
- 主输入:
$CHANGE_DIR/plan.md,已锁定不可变
- 参考:
$CHANGE_DIR/change.md(如有),仅了解历史,不推翻 plan.md
拆解规则
- 一个子任务对应一个可独立验证的变更点——完成后能用一条明确的检查命令确认正确性
- 修改配置 + 同步更新所有引用处 = 一个子任务。新建一个模块文件 = 一个子任务。重构一个函数的所有调用方 = 一个子任务
- 不按文件行号或字段粒度机械切分
- 优先按垂直切片拆分:每个子任务应端到端穿透所有层,而非按技术层水平拆分
- 例外:当垂直切片会导致大量重复工作时,才考虑水平切一层做基础后再垂直切片
依赖分析
- 子任务 B 调用了子任务 A 创建的接口/模块 → B 依赖 A
- 两个子任务修改不同模块、无接口依赖 → 独立,可并行
- 依赖使用完整 slug(如
T02-实现取消状态机),更新任务名时同步检查引用
- 不凭空制造依赖
任务文件格式
每个子任务写入独立的 $CHANGE_DIR/tasks/T<ID>-<slug>.md:
---
status: 待开始
priority: 高 | 中 | 低
depends_on: []
---
# T<ID>: <标题>
**目标**:<一句话描述这个任务要达成什么>
**涉及文件**:
- <文件路径>
**验证方式**:<验证命令或手动检查方法>
depends_on 使用完整 slug(如 [T01-拆分读写表]);更新任务文件名时需同步检查引用。
输出
在 $CHANGE_DIR/ 下创建 tasks/ 目录,每个子任务一个 .md 文件。
change.md 追加
---
# 变更 v{N}:任务拆解
## 产出文件
tasks/T01-xxx.md, ...
## 变更概述
将 plan.md 拆解为 {总数} 个可独立验证的子任务,按 {层数} 个并行层排列。
## 任务摘要
| ID | 子任务 | 涉及文件 |
|----|--------|---------|
| T1 | xxx | a.py |
## 并行分层
| 层 | 包含任务 | 依赖 |
|----|---------|------|
| 1 | T1, T3 | 无 |
| 2 | T2 | T1 |
停止条件
- plan.md 不存在或无法解析 → 停止
- plan.md 中存在无法确定子任务边界的模糊条目 → 提问,不猜测
- 所有 task 文件写入完毕且 change.md 追加完毕 → 停止