--- description: 项目 TODO 管理(list / add / status / done / reject / reopen / rm) argument-hint: "list | add <描述> | status | done [version] | reject <原因> | reopen | rm " model: claude-sonnet-4-6 allowed-tools: Bash, Read --- 管理项目 `todo/todo.json` 待办清单,所有写操作会自动重渲染 `todo/todo.html`。 **重要规则**:所有待办项必须通过本命令管理,禁止使用其它 todo 工具(TaskCreate/TodoWrite 等)。 **状态流转**:`open`(待开始)→ `doing`(开发中)→ `done`(待验收)→ `accepted`(已验收) - `done` 状态可被用户 `reject`(拒绝),退回 `open` 并升为最高优先级 - Claude 可设:`open` / `doing` / `done`;用户专属:`accepted`(`/todo done`)、`reject` --- 根据 `$ARGUMENTS` 分派,缺省等同 `list`: ## list(或无参数) 运行以下命令并将终端 summary 转述给用户,同时提示 HTML 路径便于浏览: ```bash node todo/todo.mjs list ``` ## add <描述> 将 `$ARGUMENTS` 去掉首词 `add` 后的内容解析为待办描述,推断: - `--title`:核心一句话标题(简洁,去掉平台/类别信息) - `--level`:`high`(阻断/紧急)/ `mid`(重要,默认)/ `low`(一般/优化) - 关键词「紧急」「阻断」「必须」「严重」→ high;「重要」「需要」→ mid;其余 → low - `--tags`:从描述推断平台/类别,可多个逗号分隔,常用值:`前端,后端,Web,mac,Windows,Android,iOS,数据库,CI/CD,文档` - `--desc`:补充说明(可选,如有具体文件/路径/上下文则填入) 然后运行: ```bash node todo/todo.mjs add --title "..." --level mid --tags "前端,Web" --desc "..." ``` 转述:「已添加 #id [级别] 标题 标签」,并显示 summary。 ## status **Claude 在开发过程中主动调用**,更新条目的开发状态: - 开始处理某个 todo → `status doing` - 开发完成提交验收 → `status done` - 退回重做 → `status open` ```bash node todo/todo.mjs status ``` 转述:「#id 状态已更新为 xxx」,并显示 summary。 注意:`accepted` 不可通过此命令设置,仅用户可标记。 ## done [version] **用户调用**,标记条目已验收交付,记录版本号。从 `$ARGUMENTS` 提取 id 和可选 version(格式 vX.Y.Z): - 有 version:`node todo/todo.mjs done --version ` - 无 version:`node todo/todo.mjs done `(脚本自动用 `git describe --tags --abbrev=0`) 转述:「#id 已验收,记入版本 vX.Y.Z」,并显示 summary。 ## reject <原因> **用户调用**,拒绝验收处于 `done` 状态的条目。拒绝后: - 状态退回 `open` - 优先级强制升为 `high` - 拒绝原因记录在条目上,HTML 卡片中可见 从 `$ARGUMENTS` 提取 id 和原因文字: ```bash node todo/todo.mjs reject --reason "<原因>" ``` 转述:「#id 已拒绝,优先级升为最高,原因:xxx」,并显示 summary。 ## reopen 重新开启条目(清空拒绝记录和验收信息),退回 `open` 状态: ```bash node todo/todo.mjs reopen ``` 转述「#id 已重新开启」。 ## rm ```bash node todo/todo.mjs rm ``` 转述「#id 已删除」。 --- 所有命令完成后,在终端显示来自脚本的完整 summary(按 open / doing / done / accepted 分组)。