feat(todo): 子任务系统 — 复杂任务支持子任务拆解与依赖追踪
- 新增 `sub add <parent_id>` / `sub status <sid>` CLI 命令
- SID 格式 {parentId}{Letter},支持依赖声明(deps)与校验
- HTML 新增子任务展开块、进度徽章、依赖色标(绿=完成/红=未完成)
- 父任务全部子任务完成时自动转为「待验收」;手动设 done 时检查子任务
- 更新 /todo 命令文档补充 sub 子命令说明
- #21 已录入 8 个实现子任务(21A–21H),含完整依赖链
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
description: 项目 TODO 管理(list / add / status / done / reject / reopen / rm)
|
||||
argument-hint: "list | add <描述> | status <id> <open|doing|done> | done <id> [version] | reject <id> <原因> | reopen <id> | rm <id>"
|
||||
description: 项目 TODO 管理(list / add / status / done / reject / reopen / rm / sub)
|
||||
argument-hint: "list | add <描述> | status <id> <open|doing|done> | done <id> [version] | reject <id> <原因> | reopen <id> | rm <id> | sub add <parent_id> ... | sub status <sid> ..."
|
||||
model: claude-sonnet-4-6
|
||||
allowed-tools: Bash, Read
|
||||
---
|
||||
@@ -13,6 +13,30 @@ allowed-tools: Bash, Read
|
||||
- `done` 状态可被用户 `reject`(拒绝),退回 `open` 并升为最高优先级
|
||||
- Claude 可设:`open` / `doing` / `done`;用户专属:`accepted`(`/todo done`)、`reject`
|
||||
|
||||
**子任务(subtask)**:复杂任务(tier-1/2)可拆出子任务,SID 格式为 `{parentId}{Letter}`(如 `21A`、`21B`)。
|
||||
- 父任务在子任务全部 `done` 前**不得**手动设为 `done`;全部完成时**自动**转为 `done`
|
||||
- 子任务状态与父任务独立,自身有 `open` / `doing` / `done` 三态
|
||||
- 子任务可声明依赖(`deps`),HTML 中以绿/红徽章展示依赖完成情况
|
||||
|
||||
---
|
||||
|
||||
## 改动等级 (tier) 与开发流程
|
||||
|
||||
每个 todo 有两个独立维度:**重要度 `level`**(优先级高低)和 **改动等级 `tier`**(复杂度/工作量)。
|
||||
|
||||
| tier | 名称 | 判定标准 | 开发流程 |
|
||||
|------|------|---------|---------|
|
||||
| 1 | 一级 | 涉及接口设计 / 数据库 schema 变更,**或**改动跨越 **2 个以上模块** | **必须先进 plan 模式**,用户批准方案后才能编码;完成后同步更新 `docs/architecture/`、`docs/api/` 等设计文档 |
|
||||
| 2 | 二级 | 模块内较大改动,涉及 **5 个文件以上** | 可直接开发,完成后本地验证(build/test/analyze) |
|
||||
| 3 | 三级 | 小改动、局部优化、bugfix | 可直接开发,完成后本地验证 |
|
||||
|
||||
**判定关键词指引:**
|
||||
- 一级:「新增接口」「改 schema」「新表」「跨模块」「涉及后端+前端」「新增 API」
|
||||
- 二级:「重构」「整页改版」「涉及多个 screen」「较大」
|
||||
- 三级:「修复」「bugfix」「优化」「调整文案」「小改」「单文件」
|
||||
|
||||
**重要**:开发完成后只做本地验证(build / test / analyze),**不要**自动触发 `/release`。发版由用户决定。
|
||||
|
||||
---
|
||||
|
||||
根据 `$ARGUMENTS` 分派,缺省等同 `list`:
|
||||
@@ -31,20 +55,21 @@ node todo/todo.mjs list
|
||||
- `--title`:核心一句话标题(简洁,去掉平台/类别信息)
|
||||
- `--level`:`high`(阻断/紧急)/ `mid`(重要,默认)/ `low`(一般/优化)
|
||||
- 关键词「紧急」「阻断」「必须」「严重」→ high;「重要」「需要」→ mid;其余 → low
|
||||
- `--tier`:**必须推断**,见上方「改动等级」判定标准,取值 `1`/`2`/`3`
|
||||
- `--tags`:从描述推断平台/类别,可多个逗号分隔,常用值:`前端,后端,Web,mac,Windows,Android,iOS,数据库,CI/CD,文档`
|
||||
- `--desc`:补充说明(可选,如有具体文件/路径/上下文则填入)
|
||||
|
||||
然后运行:
|
||||
```bash
|
||||
node todo/todo.mjs add --title "..." --level mid --tags "前端,Web" --desc "..."
|
||||
node todo/todo.mjs add --title "..." --level mid --tier 2 --tags "前端,Web" --desc "..."
|
||||
```
|
||||
|
||||
转述:「已添加 #id [级别] 标题 标签」,并显示 summary。
|
||||
转述:「已添加 #id [级别·等级] 标题 标签」,并显示 summary。
|
||||
|
||||
## status <id> <open|doing|done>
|
||||
|
||||
**Claude 在开发过程中主动调用**,更新条目的开发状态:
|
||||
- 开始处理某个 todo → `status <id> doing`
|
||||
- 开始处理某个 todo → `status <id> doing`(**先确认 tier**:一级须先 plan 模式,二/三级直接开发)
|
||||
- 开发完成提交验收 → `status <id> done`
|
||||
- 退回重做 → `status <id> open`
|
||||
|
||||
@@ -99,4 +124,35 @@ node todo/todo.mjs rm <id>
|
||||
|
||||
---
|
||||
|
||||
## sub add <parent_id> --title "..." [--tier N] [--deps "21A,21B"]
|
||||
|
||||
**Claude 在开发过程中主动调用**,为复杂任务(tier-1/2)添加子任务:
|
||||
- `parent_id`:父任务数字 id(如 `21`)
|
||||
- `--title`:子任务标题
|
||||
- `--tier`:改动等级(`1`/`2`/`3`,默认 `2`)
|
||||
- `--deps`:依赖的其他子任务 SID,逗号分隔(如 `"21A,21B"`);被依赖项必须已存在
|
||||
|
||||
SID 自动分配:第一个子任务为 `{parent_id}A`,依此类推(21A, 21B, 21C…)。
|
||||
父任务若为 `open` 状态,添加第一个子任务时自动升为 `doing`。
|
||||
|
||||
```bash
|
||||
node todo/todo.mjs sub add <parent_id> --title "..." [--tier N] [--deps "21A,21B"]
|
||||
```
|
||||
|
||||
转述:「已添加子任务 {SID} [等级]「{title}」→ #parent 依赖: ...」,并显示 summary。
|
||||
|
||||
## sub status <sid> <open|doing|done>
|
||||
|
||||
**Claude 在开发过程中主动调用**,更新子任务状态:
|
||||
- SID 格式:`21A`、`21B`(不区分大小写)
|
||||
- 当**最后一个子任务**标记为 `done` 时,父任务**自动**转为 `done`
|
||||
|
||||
```bash
|
||||
node todo/todo.mjs sub status <sid> <open|doing|done>
|
||||
```
|
||||
|
||||
转述:「{SID}「{title}」→ {状态}」,若触发父任务自动转换则一并提示。
|
||||
|
||||
---
|
||||
|
||||
所有命令完成后,在终端显示来自脚本的完整 summary(按 open / doing / done / accepted 分组)。
|
||||
|
||||
Reference in New Issue
Block a user