Communitygithub.com

JetBrains/thinkrail

使用 Pi 在轻量级真实 IDE 中进行 Vibe 编码——你需要的氛围

thinkrail 是什么?

JetBrains/thinkrail 是一项 AI 助手技能,专为在与 AI 核心的对话中实现结构化任务规划而设计。它提供了一个实时更新、会话级别的待办事项列表,能够将用户请求分解为任务组和步骤,由 AI 助手维护,同时用户可随时通过界面编辑。该技能支持所有主要 AI 编码工具(如 Claude Code、Cursor、Codex),其工作流程强调先规划再执行:AI 助手理解请求后首先生成计划,然后严格按顺序逐步推进每个任务。关键原则包括:步骤分为待办、进行中、已完成三种状态,任务状态由其子步骤衍生;用户添加的自由项始终排在计划末尾,避免中断当前工作;每次行动前重新读取计划以同步用户编辑。该技能通过 todo_list、todo_add、todo_update、todo_remove 和 todo_write 等一系列工具实现,帮助用户快速了解进展,确保协作高效、透明。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add JetBrains/thinkrail

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Chat TODO 计划

这是什么

  • 一个限于本次对话的计划——你的会话任务。显示在待办事项面板中供用户查看;跟随会话存在(不提交到版本库)。
  • 组 = 任务,项 = 步骤。 一个用户请求 = 一个组;组的标题是结果(如“修复登录重定向”),而不是过程。组内的步骤是项——每个项有标题、状态(pending → in_progress → done)和可选的备注(将完成标准放在那里,例如“登录端到端测试通过”)。任务自身的状态从不直接存储——它由其步骤衍生而来。
  • 自由项是用户的车道——且它们位于计划末尾。 它们保存用户从界面添加的内容;你需要处理它们,但绝不能对它们进行分组、重写或删除。todo_list 将它们渲染在最后,所有组之后,有意为之:用户在任务中途添加的请求会排队在你当前工作之后。因此,先完成(或恢复)你正在进行的任务,再处理自由项——不要跳到一个新添加的用户项上,放弃你正在进行的步骤。你不创建自由项(工具需要 group 或 after 锚点);一个很小的请求可以是一个小分组(1-2 步没问题),或者根本不用列表。
  • 它是共享且实时的:你维护它,而用户在你工作时编辑它——添加任务,删除他们放弃的任务。存储的列表是真相来源;你记忆的只是快照。重新读取它(todo_list) 以保持同步,不要相信你的记忆。
  • 它是用户的状态窗口——用户无需阅读对话就能快速了解正在发生什么。简短、具体的步骤标题;状态始终保持最新。

粒度

请求大小计划中的形式
琐碎(一个回答,一次编辑)无列表
1–7 步一个组(小请求 = 1-2 步的组,这没问题)
超过约 10 步这些不是步骤,而是任务——拆分为多个组

步骤是可验证的且大约相当于一次提交的大小:“易于随时勾选完成”,而不是“阶段 1”。

如何使用

  1. 先提出计划——这是列表的意义所在。 当你理解一个需要不止几步的请求时,你的第一个操作是**todo_write,包含你提出的计划——每个任务一个组,组内有步骤——在你提出澄清问题之前和在**你开始工作之前。然后随着了解更多,在原地完善它。(一次性回答不需要列表。)
  2. 严格按顺序工作,一次一步:
    • 开始执行步骤时将其翻转为 in_progress,完成时翻转为 done。开始新步骤会自动将任何其他 in_progress 步骤恢复为 pending——所以在继续之前先完成(标记为 done),否则前一步会明显回退到未完成状态。
    • 当前组还有未关闭的步骤时,不要开始下一个组。唯一的例外是:一个真正阻塞的任务——在步骤的 note 中记录原因,告知用户,然后继续下一个组。
    • 在每个下一步之前,再次执行 todo_list。 用户可能在工作途中进行了编辑:注意新内容(它会被追加到用户车道的末尾——在你当前步骤之后再处理,不要抢占正在进行的步骤),如果你计划中的某项消失了,说明用户已放弃——跳过它,不要重新添加。
    • 工具结果会帮助你:完成 done 后会显示任务的下一步;当没有 in_progress 项时,会提醒你翻转当前步骤。遵循这些提示。
  3. 会话中途的新请求 = 追加一个新组(使用 todo_add 配合 group:,每次一个步骤——或者通过多次调用 todo_add 来布置新任务的步骤)。切勿将新请求的步骤混入当前组。在任务中途发现的步骤 通过 todo_add after: <当前步骤 id> 插入(锚定到你的某个步骤——锚定到用户自己的某项会被拒绝,因为你的项永远不会在用户的车道中)——不要为此用 todo_write 重建计划。
  4. 结束前进行协调。 在一个轮次结束时,再次执行 todo_list。如果还有未关闭的步骤(包括用户刚添加的项),要么完成它们,要么清晰地说明剩下的内容和原因——不要悄无声息地闲置,留下新项未处理。

不变规则

  • 已完成项保留。 完成一个步骤 = todo_update → done。永远不要删除一个已完成的项——它是用户的历史。todo_remove 仅用于用户明确要求删除某个内容时。
  • 精确编辑。 在初始计划之后,使用 todo_update / todo_add(它们只触及一个项)。永远不要用 todo_write 调整现有列表——它会替换一切;todo_write 仅用于布置全新的计划。
  • 尊重用户的编辑。 列表是共享的;将用户的添加视为新请求,将用户的删除视为取消。自由项属于用户——处理它们,但重新规划时不要重写或删除它们。(todo_write 会为你保留用户项和已完成项,但不要依赖于此——使用 todo_add/todo_update 进行编辑,将 todo_write 保留给真正全新的计划。)

工具

  • todo_list — 读取当前计划(真相来源;重新读取以捕捉用户的编辑)。
  • todo_add — 添加一个步骤(放入某个 group,或置于某个已有步骤 after;不影响其余部分)。
  • todo_update — 推进一个步骤(开始时设为 in_progress,完成时设为 done;已完成项保留)。
  • todo_remove — 删除一个项(仅在用户要求时)。
  • todo_write — 布置一个全新的计划(仅组——每个任务一个组;替换你的未完成项;仅在开始时使用一次)。

相关技能