创建与编辑任务
创建任务
基础创建
执行以下命令,输入任务标题即可快速创建任务:
backlog task create "任务标题"
若当前终端支持交互式 TTY 且未提供标题,系统将自动启动创建向导,引导你填写任务详情。
backlog task create --help与backlog task edit --help的输出末尾附有 Note 提示,指向backlog instructions overview工作流概览。项目期望每个会话从该概览开始——其中包含项目状态机指引与 AI 可读输出的--plain约定,直接查阅--help的新读者也能看到这条引导。
完整参数创建
通过命令行选项可在创建时一次性设置所有字段:
backlog task create "实现用户登录" \
-d "支持邮箱和密码登录" \
-a "@developer" \
-s "To Do" \
-l "feature" \
--priority high \
--ac "用户可以使用邮箱登录" \
--ac "密码需要至少8位" \
--plan "1. 设计数据库表 2. 实现API 3. 写测试" \
--notes "参考现有认证模块" \
--dep "back-1" \
--ref "https://docs.example.com/auth" \
--doc "doc-5"
常用选项说明
| 选项 | 说明 | 可多次使用 |
|---|---|---|
-d, --description <text> |
任务描述 | 否 |
--desc <text> |
--description 的别名 |
否 |
-a, --assignee <assignee> |
负责人,可重复使用或以逗号分隔指定多个 | 是 |
--unassign |
显式清空负责人(不回落 defaultAssignee,与 -a 互斥) |
否 |
-s, --status <status> |
初始状态 | 否 |
-l, --labels <labels> |
标签,逗号分隔 | 否 |
--priority <priority> |
优先级:high、medium、low |
否 |
--ac <criteria> |
追加验收标准(可多次使用) | 是 |
--acceptance-criteria <criteria> |
追加验收标准,--ac 的别名 |
是 |
--dod <item> |
Definition of Done 项 | 是 |
--no-dod-defaults |
禁用默认 DoD | 否 |
--plan <text> |
实现计划,支持 \n 换行转义 |
否 |
--notes <text> |
实现备注,支持 \n 换行转义 |
否 |
--final-summary <text> |
最终总结,支持 \n 换行转义 |
否 |
--ordinal <number> |
排序权重 | 否 |
-m, --milestone <milestone> |
所属里程碑 | 否 |
--draft |
创建为草稿 | 否 |
-p, --parent <taskId> |
父任务 ID(创建子任务) | 否 |
--depends-on <taskIds> |
依赖任务,逗号分隔 | 是 |
--dep <taskIds> |
--depends-on 的简写 |
是 |
--ref <reference> |
外部引用链接或文件路径 | 是 |
--doc <documentation> |
关联文档 | 是 |
--due-date <date> |
截止日期(YYYY-MM-DD) |
否 |
--planned-start <date> |
计划开始日期(YYYY-MM-DD) |
否 |
--planned-end <date> |
计划结束日期(YYYY-MM-DD) |
否 |
--actual-start <datetime> |
实际开始时间(YYYY-MM-DD HH:MM) |
否 |
--actual-end <datetime> |
实际结束时间(YYYY-MM-DD HH:MM) |
否 |
--modified-file <path> |
关联的修改文件 | 是 |
--plain |
创建后输出纯文本格式 | 否 |
description 中的换行
--description 和 --desc 支持跨平台一致的换行输入:
# 在描述中插入换行
backlog task create "标题" --desc "第一行\n第二行"
# 编辑时同样支持
backlog task edit back-10 --desc "修复内容:\n1. 修复 A\n2. 修复 B"
- Windows 上输入
\n即可得到换行(CLI 内部模拟 bash 双引号转义层后统一处理) - 如需输入字面
\n而非换行,Windows 需输入\\\\n,非 Windows 输入\\n - 此转义仅处理
\n(换行)和\\(字面反斜杠),其他序列如\t原样保留 --plan、--notes、--final-summary同样支持上述跨平台换行转义
避免 bash ANSI-C 引号:不要用
$'...'包装多行值。bash 的$'...'会在 CLI 看到参数之前就把\n解析成真实换行,导致回显命令跨行断裂、CLI 只取到第一行。请改用普通双引号内的\n转义(--plan "第一步\n第二步")。此规则同样适用于--desc、--notes、--comment、--final-summary、--append-notes、--append-final-summary等所有多行字段。
查看任务
交互式 TUI 查看
backlog task <id>
或显式使用 view 子命令:
backlog task view <id>
进入 TUI 后:
- 使用方向键或
j/k浏览任务详情 - 按
E在系统编辑器中打开任务文件(TUI 自动挂起,退出编辑器后恢复) - 按
Escape或q退出查看
纯文本输出
在非交互式环境(如脚本或 AI 会话)中,使用 --plain 输出结构化纯文本:
backlog task <id> --plain
backlog task view <id> --plain
稳定 JSON 输出
读取类命令支持 --json 输出结构化、版本化的 JSON,便于脚本解析:
backlog task list --json
backlog task view back-10 --json
backlog task back-10 --json
backlog search "api" --json
backlog doc list --json
输出使用统一信封 { schemaVersion: 1, kind: "..." },字段与 --plain 保持一致,并包含 dueDate、plannedStart、plannedEnd、actualStart、actualEnd 等日期字段,以及验收标准进度 acceptanceCriteriaCompleted / acceptanceCriteriaCount(无验收标准的任务为 0/0)。任务列表、任务详情与搜索结果三类 JSON 使用同一套字段。--json 只写 stdout,错误写 stderr;与 --plain 互斥,同时指定会报错并返回非零。
JSON 摘要还包含以下字段:
isReady:该任务的依赖就绪判定,与--ready过滤使用同一份投影结果,两者不会互相矛盾;task view --json额外给出readiness块(isReady/isBlocked/blockingDependencies/missingDependencies)references/modifiedFiles:任务的引用与修改文件列表(无值时为空数组),列表、搜索与详情三类载荷一致携带source:默认读取为null;当通过--completed扩大语料时,来自 completed 目录的行标记为"completed"
持续监视(--json --watch)
task list --json --watch 进入监视模式:监听任务目录变更,每次变化输出一份与一次性 --json 逐字节一致的完整 JSON 替换帧,内容未变化时不重复输出:
# 配合 jq 持续观察某负责人的待办队列
backlog task list -a "@alice" -s "To Do" --json --watch | jq --unbuffered '.tasks | length'
- 选项、筛选、排序在每次读取时重新求值,与一次性命令不会漂移
- 通过 SIGINT / SIGTERM 或有界关闭退出;适用于脚本订阅与仪表盘管道
- 启动方退出即停:当驱动 watch 输出的上游程序(如某个脚本或 IDE 插件)在未停止 watch 的情况下退出时,watcher 会检测到启动方进程消失并自行结束,不会在安静仓库中沦为无限运行的孤儿进程
- 空转低 CPU:无事发生时,每秒的 reconcile tick 只做一次廉价的文件 stat 签名比较(条目名 + size + mtime + ctime,仅一层深),签名不变就不重新读取;大仓库空转 CPU 占用从约 35% 降到 1% 以下,输出字节与更新延迟不变
编辑任务
基础编辑
backlog task edit <id> --title "新标题" --status "In Progress"
若未提供任何编辑字段,且终端支持交互式 TTY,系统将启动编辑向导。
多 ID 批量编辑
task edit 接受多个任务 ID,用于批量应用共享类标志:
# 将多个任务一次性移动到同一状态
backlog task edit back-1 back-2 back-3 -s "In Progress"
# 批量追加标签
backlog task edit back-1 back-2 --add-label sprint-3
规则:
- 可批量应用的标志:
-s/--status、-a/--assignee、-l/--label、--add-label、--remove-label、--priority、-m/--milestone、--clear-milestone、--add-doc、--add-ref等共享字段 - 逐任务字段(
--title、--desc、--plan、--notes、--comment、--ordinal、AC/DoD 项、日期清除等)在多 ID 调用中会被拒绝 - 单个任务失败不中断整批,命令结束时汇总报告每个失败
- 多 ID 调用若未携带任何可批量应用的标志,会报错而不是打开编辑向导
对应地,服务端提供 POST /api/tasks/move 批量移动接口,Web 看板的多选拖拽即通过它一次提交(见 看板视图 的多选小节)。
常用编辑选项
| 选项 | 说明 | 可多次使用 |
|---|---|---|
-t, --title <title> |
修改标题 | 否 |
-d, --description <text> |
修改描述 | 否 |
--append-description <text> |
追加到现有描述末尾(可重复使用) | 是 |
--append-desc <text> |
--append-description 的别名 |
是 |
-a, --assignee <assignee> |
修改负责人,可重复使用或以逗号分隔指定多个 | 是 |
--unassign |
显式清空负责人(与 -a 互斥) |
否 |
-s, --status <status> |
修改状态 | 否 |
-l, --label <labels> |
重置标签 | 否 |
--add-label <label> |
追加标签 | 否 |
--remove-label <label> |
移除标签 | 否 |
--priority <priority> |
修改优先级 | 否 |
--ordinal <number> |
修改排序权重 | 否 |
-m, --milestone <milestone> |
修改里程碑 | 否 |
--clear-milestone |
清空里程碑 | 否 |
--ac <criteria> |
追加验收标准 | 是 |
--acceptance-criteria <criteria> |
设置/覆盖验收标准(逗号分隔或可多次使用) | 是 |
--clear-ac |
原子清空全部验收标准(与其它 AC 变更选项互斥) | 否 |
--remove-ac <index> |
删除指定序号(1-based)的验收标准 | 是 |
--check-ac <index> |
勾选指定序号的验收标准 | 是 |
--uncheck-ac <index> |
取消勾选指定序号的验收标准 | 是 |
--dod <item> |
追加 DoD 项 | 是 |
--remove-dod <index> |
删除指定序号的 DoD 项 | 是 |
--check-dod <index> |
勾选指定序号的 DoD 项 | 是 |
--uncheck-dod <index> |
取消勾选指定序号的 DoD 项 | 是 |
--plan <text> |
设置实现计划,支持 \n 换行转义 |
否 |
--append-plan <text> |
追加到现有实现计划(可重复使用) | 是 |
--notes <text> |
设置备注(覆盖现有),支持 \n 换行转义 |
否 |
--append-notes <text> |
追加备注 | 是 |
--final-summary <text> |
设置最终总结,支持 \n 换行转义 |
否 |
--append-final-summary <text> |
追加最终总结 | 是 |
--clear-final-summary |
清除最终总结 | 否 |
--due-date <date> |
修改截止日期 | 否 |
--planned-start <date> |
修改计划开始日期 | 否 |
--planned-end <date> |
修改计划结束日期 | 否 |
--actual-start <datetime> |
修改实际开始时间 | 否 |
--actual-end <datetime> |
修改实际结束时间 | 否 |
--clear-due-date |
清除截止日期 | 否 |
--clear-planned-start |
清除计划开始日期 | 否 |
--clear-planned-end |
清除计划结束日期 | 否 |
--clear-actual-start |
清除实际开始时间 | 否 |
--clear-actual-end |
清除实际结束时间 | 否 |
--depends-on <taskIds> |
设置依赖(覆盖现有) | 是 |
--dep <taskIds> |
--depends-on 的简写 |
是 |
--ref <reference> |
设置引用(覆盖现有) | 是 |
--doc <documentation> |
设置关联文档(覆盖现有) | 是 |
--add-ref <reference> |
追加引用(保留已有值) | 是 |
--remove-ref <reference> |
按值移除引用 | 是 |
--clear-refs |
清空全部引用 | 否 |
--add-doc <documentation> |
追加关联文档 | 是 |
--remove-doc <documentation> |
按值移除关联文档 | 是 |
--clear-docs |
清空全部关联文档 | 否 |
--add-dep <taskIds> |
追加依赖 | 是 |
--add-depends-on <taskIds> |
--add-dep 的别名 |
是 |
--remove-dep <taskIds> |
按值移除依赖 | 是 |
--clear-deps |
清空全部依赖 | 否 |
--remove-comment <index> |
删除指定序号(1-based)的评论,可逗号分隔 | 是 |
--clear-comments |
清空全部评论 | 否 |
--modified-file <path> |
设置关联文件(覆盖现有) | 是 |
--plain |
编辑后输出纯文本格式 | 否 |
验收标准操作示例
# 添加新的验收标准
backlog task edit back-10 --ac "新的验收项"
# 删除第 2 条验收标准
backlog task edit back-10 --remove-ac 2
# 勾选第 1 条验收标准
backlog task edit back-10 --check-ac 1
# 取消勾选
backlog task edit back-10 --uncheck-ac 1
# 原子清空全部验收标准(再重新添加,即 clear-then-add 工作流)
backlog task edit back-10 --clear-ac --ac "全新的验收标准"
--clear-ac 用于一次性清空全部验收标准,且会拒绝与其它 AC 变更选项(--ac、--remove-ac 等)以外的组合冲突。AC 与 DoD 的编辑与序列化是确定性的,重复编辑不会产生冗余或错乱的清单结构。
实现计划追加示例
# 在现有计划后追加内容
backlog task edit back-10 --append-plan "补充集成测试用例"
# 先替换计划,再追加多条
backlog task edit back-10 --plan "新计划" --append-plan "第一步" --append-plan "第二步"
每次追加会以一个空行与已有内容分隔;多个 --append-plan 按命令行顺序依次应用。纯空白值会被忽略。当实现计划章节不存在时,第一次非空追加会自动创建该章节。
备注与总结操作示例
# 追加备注
backlog task edit back-10 --append-notes "新的备注内容"
# 设置最终总结
backlog task edit back-10 --final-summary "任务已完成,实现了..."
# 追加到最终总结
backlog task edit back-10 --append-final-summary "补充说明"
# 清除最终总结
backlog task edit back-10 --clear-final-summary
评论操作示例
# 追加一条评论
backlog task edit back-10 --comment "建议将 UI 部分拆分到独立 PR"
# 追加评论并指定作者
backlog task edit back-10 --comment "建议将 UI 部分拆分到独立 PR" --comment-author @sara
# 同时追加多条评论
backlog task edit back-10 --comment "第一条评论" --comment "第二条评论"
评论正文支持 Markdown,但单独的 --- 行被保留为评论分隔符,不能出现在评论正文中。评论会显示在任务详情的 Comments 区域,按追加顺序排列,包含序号、作者(如有)和时间戳。
评论与实现备注、最终总结的区别:
| 内容类型 | 用途 | 写入方式 |
|---|---|---|
| 评论 | 讨论、审阅记录、问答 | --comment |
| 实现备注 | 执行进度、技术探索过程 | --notes / --append-notes |
| 最终总结 | PR 式完成摘要 | --final-summary |
列表型字段:设置 / 追加 / 移除 / 清空
--ref、--doc、--dep 一类列表字段支持四种语义,同一次命令中互斥:
| 操作 | 标志 | 语义 |
|---|---|---|
| 设置 | --ref / --doc / --dep / --depends-on |
整个列表替换为给定值 |
| 追加 | --add-ref / --add-doc / --add-dep / --add-depends-on |
追加到现有值之后,保留原有条目 |
| 移除 | --remove-ref / --remove-doc / --remove-dep |
按值删除指定条目 |
| 清空 | --clear-refs / --clear-docs / --clear-deps |
清空整个列表 |
# 覆盖式设置依赖
backlog task edit back-10 --dep "back-3,back-4"
# 追加一个依赖,已有依赖保持不变
backlog task edit back-10 --add-dep back-5
# 按值移除某个依赖
backlog task edit back-10 --remove-dep back-4
# 清空全部依赖
backlog task edit back-10 --clear-deps
规则:
- 设置与追加不可混用(
--ref与--add-ref互斥),清空也不可与同类设置/追加/移除混用;违规时命令失败且任务文件保持不变 - 移除标志可重复出现或逗号分隔,空值会被拒绝
- 空值设置会被拒绝:
backlog task edit back-10 --dep ""报错并提示改用--clear-deps(旧版本会静默无操作却退出 0,属于假成功) - MCP
task_edit语义一致:数组中出现空字符串元素会被拒绝,只有显式空数组[]才表示清空
引用条目的三种形态
--ref / --add-ref 的每个条目是一个位置,支持三种形态:
| 形态 | 示例 |
|---|---|
| 外部 URL | https://docs.example.com/auth |
| 项目相对文件路径 | src/utils/editor.ts |
| 带行号的路径 | src/utils/editor.ts:42(单行)或 src/utils/editor.ts:40-58(连续区间) |
- 一个条目只承载一个位置;要引用同一份文件的两个区域,请写两个条目
--remove-ref按存储的完整字符串匹配,行号后缀也需一并给出- Web 界面中点击带行号后缀的链接会在预览框中按指定行范围展示内容
评论删除
# 删除第 2 条评论
backlog task edit back-10 --remove-comment 2
# 一次删除多条(列表编辑类标志均支持逗号分隔)
backlog task edit back-10 --remove-comment 2,3
# 清空全部评论
backlog task edit back-10 --clear-comments
--remove-comment 接受 1-based 序号,越界时报错并提示可用序号;--clear-comments 不能与 --comment 同时使用。删除后剩余评论按位置重新编号(序号本身不持久化)。CLI、MCP task_edit、Web UI 评论区的逐条删除按钮与「Clear comments」按钮行为一致。
并发编辑保护
任务的"读取—修改—写入"由文件锁保护,避免两个进程同时编辑同一任务时静默丢失其中一次修改。争用时会立即失败:
Edit failed: back-10 is being modified by another process; retry if appropriate.
| 表面 | 争用时的表现 |
|---|---|
| CLI | 退出码非零并打印上述消息,任务文件不变 |
| Web API | HTTP 409 |
| MCP | 操作错误(OPERATION_FAILED) |
采用 fail-fast:不等待、不合并、不自动重试,失败方需自行重试。锁基于任务文件本身,跨独立的 backlog 进程生效,而不是只在单个进程内有效。锁也会覆盖草稿降级路径。
任务列表与筛选
# 列出所有任务
backlog task list
# 按状态筛选
backlog task list -s "In Progress"
# 多状态筛选(重复或逗号分隔)
backlog task list -s "To Do" -s "In Progress"
# 排除某状态
backlog task list --exclude-status "Done"
# 只看未指派任务(与 --assignee 互斥)
backlog task list --unassigned
# 按负责人筛选
backlog task list -a "@developer"
# 按里程碑筛选
backlog task list -m "M1 - CLI"
# 按优先级筛选
backlog task list --priority high
# 查看指定父任务的子任务
backlog task list -p back-4
# 按字段排序(priority 或 id)
backlog task list --sort priority
# 只列出依赖已就绪、可以立即开始的任务
backlog task list --ready
# 扩大语料:同时列出 completed 目录中的历史任务
backlog task list --completed
# 纯文本输出
backlog task list --plain
--completed将读取范围从活跃任务扩大到 backlog/completed/ 语料,JSON 行以 source: "completed" 标记;backlog search --completed 与 MCP list_tasks / search_tasks 的 completed: true 参数语义一致。注意:MCP task_search 现在默认只搜索活跃任务,需显式传 completed: true 才会包含历史任务。
纯文本列表行在任务含验收标准时附带 (ac: 已勾选/总数) 后缀,MCP 纯文本列表同样输出;无验收标准的任务不显示该后缀。
列表分页
task list 与 search、draft list、milestone list、doc list、doc search、decision list、memo list 统一支持 grep 风格的分页窗口选项:
| 选项 | 说明 | 示例 |
|---|---|---|
--max-count <n> |
最多输出 n 条 | --max-count 20 |
--skip <n> |
跳过前 n 条(取下一页) | --skip 20 |
--count |
只输出匹配总数(一个数字) | --count |
窗口在过滤、排序、--limit 之后按输出顺序应用,连续翻页不重叠不遗漏;被截断的文本输出以 Showing <first>-<last> of <total> items. Next: backlog task list --skip <n> 结尾,照抄命令即可翻页。--count 只输出数字且不能与 --json 组合(返回非零退出);JSON 信封仅在窗口截断时附加 total / nextSkip 字段,未截断时逐字节不变。分页语义的集中说明见 搜索与序列 的「列表分页」一节。
依赖就绪过滤(--ready)
backlog task list --ready 只保留可以立即开工的任务:
- 判定采用 fail-closed:依赖中只要存在未完成或无法解析的条目,该任务即视为被阻塞
- 已完成的任务无论其状态字符串是什么,都算作"已完成证据"(以完成语料库中的位置为准)
- 依赖身份按规范化 ID 匹配(前缀与零填充差异不影响判定)
- 循环依赖与歧义依赖数据会被如实标记为阻塞,不会猜测
- 相同判定同时出现在 CLI(
--ready,plain/json/交互式三种输出)、TUI 任务详情面板的 Readiness 行、Web 任务详情 Dependencies 卡片的状态徽章,以及 MCPtask_list的ready: true参数 - 该过滤只做标记与筛选,不修改任何任务,也不改变 ordinal 排序的权威性
完成任务与归档
完成任务的第一步是将其状态修改为终端状态(通常为 Done):
backlog task edit <id> --status "Done"
状态到达终端后,若想把任务从活跃看板中清出,可执行 complete 子命令,把任务文件移入 backlog/completed/ 目录:
backlog task complete <id>
task complete 是清理操作:任务必须处于终端状态,否则命令报错并提示先用 backlog task edit <id> -s "<终端状态>" 完成状态推进;成功后任务从活跃看板消失,文件移入 completed 目录,输出 Completed task <id>. 与新文件路径。MCP 侧对应工具为 task_complete(参数 id),语义相同,且不允许完成其他分支的任务。
归档任务会将文件移入 backlog/archive/tasks/ 目录,属于软删除,原 ID 可被后续新任务复用:
backlog task archive <id>
若希望将已完成的任务从活跃列表中移除,可定期执行清理命令:
backlog cleanup
日期字段
创建或编辑任务时,可通过以下选项管理日期字段:
# 计划字段(date-only)
backlog task create "API 文档" --due-date 2026-06-01 --planned-start 2026-05-25 --planned-end 2026-05-30
# 实际字段(datetime)
backlog task create "紧急修复" --status "In Progress" --actual-start "2026-05-29 10:00"
backlog task edit back-10 --actual-end "2026-05-30 18:00" --clear-actual-start
- 计划字段格式为
YYYY-MM-DD(date-only) - 实际字段格式为
YYYY-MM-DD HH:MM(UTC datetime) - 在交互式 TTY 环境下,创建/编辑向导会提示输入日期
Web UI 中的日期编辑
在任务详情弹窗的侧边栏中:
- Due Date / Planned Start / Planned End —
date输入框 - Actual Start / Actual End —
datetime-local输入框(支持 UTC ↔ 本地时区转换)
自动填充规则:当设置 Due Date 且 Planned Start 为空时,系统会自动填充 Planned Start 为当前日期、Planned End 为 Due Date 的值。你可在保存前修改这些自动填充值。
实际时间自动填充:当在 Web UI 中将任务状态变更为 In Progress 或 Done 时,系统会自动填充对应的 actual 字段(若为空)。
日期清除:点击任意日期输入框的 Clear 按钮后,保存任务即可从文件中移除对应日期字段。清除操作通过空字符串传递,确保服务端正确接收删除指令。
Web UI 创建任务
在 Web UI 中点击看板或任务列表的「新建任务」按钮打开创建模态框:
- References / Documentation:创建模式下即可通过路径自动补全添加引用链接或关联文档;输入
.back可发现.backlog目录 - 保存后 references 和 documentation 会写入任务文件
降级为草稿
若发现某个任务尚需完善、暂时无法执行,可将其降级为草稿:
backlog task demote <id>
降级后任务将移入 backlog/drafts/ 目录,并获得独立的草稿 ID(如 draft-3)。其他任务对原 ID 的引用会被自动清理(见 归档与清理)。
Web 界面的降级操作带有防误触保护:降级进行中所有编辑、状态变更与快捷键都被锁定,网络错误时会明确提示"降级可能已成功"并刷新视图供你核对,避免重复提交。
标签输入(Web UI)
在 Web UI 的任务详情弹窗中编辑标签时,标签输入框支持智能自动完成:
- 下拉提示:点击标签输入框或开始输入时,会显示项目中所有已有标签的下拉列表(包含配置标签和所有任务中的标签)
- 模糊搜索:输入时按字符顺序模糊匹配,如输入
we可匹配web-ui - 键盘选择:使用
↑/↓箭头高亮选项,按Enter选中;按Escape关闭下拉框 - 创建新标签:输入内容不匹配任何现有标签时,按
Enter或输入逗号,即可创建新标签 - 重复检测:如果尝试添加与已有标签仅大小写不同的重复项(如已有
feature时输入Feature),输入框边框会变红提示,且下拉框显示feature already added
在编辑器中打开任务
TUI 中编辑
在 backlog task <id> 或 backlog board 的 TUI 界面中:
- 选中目标任务
- 按
E(或Shift+e)直接在系统编辑器中打开任务文件 - 编辑器关闭后 TUI 自动恢复,并重新加载最新内容
手动编辑
任务文件即为普通 Markdown,可直接使用任何编辑器修改:
vim backlog/tasks/back-10.md
手动编辑后,Backlog.md 的文件监视器会自动刷新索引,无需重启服务。