用途
note-improvement 用于捕获在工作过程中发现、但超出当前任务范围的改进机会,防止这些想法被无声丢弃。它将记录追加到相关仓库的 .turbo/improvements.md 待办清单中。
主要能力
- 在用户要求“note improvement”“save improvement”“track this for…”等场景时记录改进。
- 记录内容包括:一行摘要(What)、类型、类别、涉及位置(Where)、理由(Why)。
- 类型分为 direct(范围清晰、方法已知,可直接通过 /implement 应用)、investigate(需要先做根因分析的症状,如原因不明、性能问题、间歇性 bug)、plan(其他情况,如多文件重构、补充测试、功能开发)。当条件明确指向某一类型时直接使用,否则通过 AskUserQuestion 确认,用户不选择时默认 plan。
- 类别分为 refactor、performance、reliability、readability、testing、docs、dx(开发者体验)、feature。
- 当条目记录的是“有意的简化”(以更简单的方案替代更完整的方案并接受已知限制)时,补充 Ceiling(所接受限制)与 Revisit(使更完整版本值得构建的条件)。
使用方式
- 定位改进文件:每个仓库在其根目录下维护 .turbo/improvements.md。使用 git -C <repo path> rev-parse --show-toplevel 解析根目录;若在 linked worktree 中(--git-dir 与 --git-common-dir 不同),则使用 common dir 的父目录,使条目落入主检出而非随分支销毁的 worktree。
- 识别改进内容:从上下文或 $ARGUMENTS 收集 What、Type、Category、Where、Why 以及必要的 Ceiling 和 Revisit。
- 路由并追加:将条目追加到 Where 所指文件所属仓库的 .turbo/improvements.md,可能不是当前仓库。若 Where 跨多个仓库,则按仓库拆分为多条,分别追加到各自仓库,并为每条给出所有对应条目的标题;重写各拆分条目的 Where,使其路径为该仓库本地路径。若目标仓库不在磁盘上,明确说明,并将其条目追加到步骤 1 解析出的仓库根目录的待办清单中,同时注明其原本所属仓库。
- 写入:对当前工作目录之外的路径使用 Edit 或 Write 工具写入,包括本会话所在 worktree 的主检出。Bash 沙箱会拒绝在此处的 shell 追加,而单独发出的验证命令随后会打印文件未变更的内容,读起来像是成功。
- 若在 linked worktree 中运行时写入被拒绝,则报告无法从此处持久化,并打印完整格式化的条目以便从可写入主检出的会话粘贴。不要写入 worktree 自身的 .turbo/,因为它被 gitignore 且随 worktree 销毁。
- 读取每个目标仓库中已存在的 .turbo/improvements.md;若不存在,则用给定文件头创建。
- 确认:告知用户改进已记录及每条写入位置,或说明无法持久化并已在上方打印。然后使用 TaskList 工具并继续任何剩余任务。
适用场景
- 工作中发现超出当前任务范围的改进机会,希望记录以避免遗忘。
- 需要将改进按仓库归档、跨仓库拆分记录或在团队待办中统一管理。
限制
- 仅负责记录,是否处理由用户决定。
- 条目应保持简洁,是待办事项而非规格说明。
- 追加前需去重:在目标待办中搜索新条目涉及的文件路径、符号及相似主题,若已有条目覆盖同一改进则就地更新;当已有条目前于 Type 字段,更新时补充 Type 行;当已有条目标记为旧值 trivial 或 standard 时,分别重写为 direct 或 plan。
- 当有意的简化的 revisit 条件尚不可知时,记录需要观察到什么才能知道。
- 当目标仓库没有 .turbo/ 目录时,用 AskUserQuestion 确认位置后再创建。
- 文件头与条目格式遵循资料给出的固定结构,创建新文件时包含标题与说明文字。
具体实现细节
- 文件头:仅在创建新文件时写入。
- 条目格式包含:标题、Type、Category、Where、Why,以及在记录有意的简化时的 Ceiling、Revisit,在拆分时每对应条目一个 Paired with 行,以及 Noted 日期。其他情况省略这些行。新条目追加到每个目标文件末尾。