草稿管理
草稿是 Backlog.md 中一种轻量级的任务前形态,用于记录尚未成熟的想法、待拆分的功能点或需要进一步澄清的需求。
草稿的用途
| 场景 | 说明 |
|---|---|
| 快速记录想法 | 无需填写完整字段,先保存标题和简要描述 |
| 待评审需求 | 在正式创建任务前,通过草稿收集反馈 |
| 任务拆分准备 | 将一个复杂功能先记为草稿,再细化为多个正式任务 |
| 避免污染任务列表 | 草稿不占用正式任务 ID,也不会出现在看板的默认视图中 |
创建草稿
通过 task create 创建
在创建任务时添加 --draft 选项,即可直接生成草稿:
backlog task create "未来可能需要的功能" --draft
通过 draft create 创建
使用草稿专属子命令,语法更简洁:
backlog draft create "未来可能需要的功能"
带描述的草稿
backlog draft create "重构认证模块" \
-d "考虑将 Session 认证迁移到 JWT" \
-l "refactor" \
-a "@architect"
draft create 支持的选项包括:
| 选项 | 说明 |
|---|---|
-d, --description <text> |
描述 |
--desc <text> |
--description 的别名 |
-a, --assignee <assignee> |
负责人 |
-s, --status <status> |
状态(默认 Draft) |
-l, --labels <labels> |
标签,逗号分隔 |
--due-date <date> |
截止日期(YYYY-MM-DD) |
--planned-start / --planned-end <date> |
计划起止日期 |
--actual-start / --actual-end <datetime> |
实际起止时间(UTC 存储) |
草稿与任务共用同一套创建期日期选项。
编辑草稿
使用 draft edit 直接修改草稿字段,选项与 task edit 完全一致:
backlog draft edit draft-3 --title "更清晰的标题" -l "refactor,backend"
backlog draft edit draft-3 --append-notes "补充调研结论"
规则:
- 只接受单个草稿 ID,不支持批量编辑
- 至少需要一个字段标志,否则报错
--status只接受Draft;要变成正式任务请使用backlog draft promote——脚本中不会被一次"编辑"悄悄提升- 加
--plain输出编辑后的完整记录
草稿 ID 的歧义保护
草稿身份解析是 fail-closed 的:当同一 ID 命中多个草稿文件(如编号漂移造成的 draft-3 与 draft-03 并存)时,draft view / draft edit / draft archive / draft promote 都会列出全部候选并以非零退出,不会任选一个执行。backlog doctor 会报告这类草稿身份问题(重复编号、frontmatter 漂移、无法解析的文件)。
查看草稿列表
backlog draft list
默认按优先级排序。可选参数:
| 选项 | 说明 |
|---|---|
--sort <field> |
按 priority 或 id 排序 |
--max-count <n> / --skip <n> / --count |
分页窗口:最多 n 条 / 跳过 n 条 / 只输出总数(语义见 搜索与序列 的「列表分页」) |
--plain |
纯文本输出 |
草稿提升为任务
当草稿内容已经足够清晰,可以开始执行时,将其提升为正式任务:
backlog draft promote draft-3
提升后:
- 草稿文件从
backlog/drafts/移入backlog/tasks/ - 草稿 ID(如
draft-3)被替换为正式任务 ID(如back-15) - 原草稿文件被归档或删除
任务降级为草稿
若某个正式任务发现条件不成熟、需要暂缓执行,可将其降级回草稿:
backlog task demote back-10
降级后:
- 任务文件从
backlog/tasks/移入backlog/drafts/ - 原正式任务 ID 被释放,可被新任务复用
- 获得新的草稿 ID(如
draft-5)
Web UI 草稿页面
浏览器访问 /drafts 可查看草稿列表并进行筛选管理。
筛选栏
页面顶部提供与任务列表一致的筛选栏:
| 控件 | 说明 |
|---|---|
| 关键字搜索 | 按草稿 ID 或标题搜索,子串匹配,支持清除按钮 |
| 状态筛选 | 下拉选择所有可用状态 |
| 优先级筛选 | 全部 / 高 / 中 / 低 |
| 里程碑筛选 | 全部里程碑 / 无里程碑 / 各个活跃里程碑 |
| 标签筛选 | 多选 chip 输入,带自动补全 |
筛选结果实时显示计数 显示 X / Y 个草稿。有活跃筛选时,右侧出现「清除筛选」按钮一键重置。
筛选状态持久化
所有筛选条件(包括搜索词)自动同步到 URL 查询参数,页面可分享和收藏。支持的参数:
?status=— 状态过滤?priority=— 优先级过滤?milestone=— 里程碑过滤(__none表示无里程碑)?label=— 标签过滤(可多次出现)?q=— 关键字搜索
草稿卡片与操作
每个草稿显示标题、优先级徽标、ID、创建/更新时间、负责人和标签。点击卡片可编辑草稿详情,右侧「提升为任务」按钮可将草稿提升为正式任务。
归档草稿
对于不再需要的草稿,可以直接归档:
backlog draft archive draft-2
归档后草稿移入 backlog/archive/tasks/ 目录。
草稿使用独立 ID 空间
草稿与正式任务使用完全独立的编号体系:
- 正式任务 ID:
back-1、back-2、back-3…… - 草稿 ID:
draft-1、draft-2、draft-3……
这意味着:
- 草稿的数量不会影响正式任务的 ID 序列
- 草稿提升时会分配下一个可用的正式任务 ID
- 正式任务降级时会分配下一个可用的草稿 ID
- 删除或归档草稿后,其 ID 不会导致正式任务编号的断层