编码任务

编码看板将一份写下的任务简报,以你想要的最少繁文缛节,变成已合并的代码:写下你需要的东西,用交互式的规划代理将它 Plan(规划成可审阅的阶段),或用 One shot 一次搞定,看着代理在它自己的 git worktree 里工作,用固定到行的评论审阅 diff,然后合并。每个阶段是一列;每项任务是一张卡片。

侧边栏在靠近顶部保留一个纤细的 TASKS 区块——一条脉动行会概括看板(9 项已规划 · 1 项进行中 · 2 项待审阅),并以橙色徽章统计在 Testing/Review 中等待的卡片,以及当某个代理需要你的输入时的红色徽章。单击区块标题或该行即可打开看板,或在任何地方按 ⇧⌘T

编码任务看板:Backlog 中有一份提供 Plan 和 One shot 的任务简报、Plan 中有两张编号的阶段卡片(第二张锁在一个依赖关系之后)、In Progress 中有一项运行中的任务、Testing/Review 中有一张显示其分支和评论数的卡片,以及 Done 中有一张已合并的卡片。
这里放什么
Backlog你写好但尚未开始的任务简报。每张卡片提供 PlanOne shot
Plan规划代理从任务简报归档的阶段卡片——已编号、理清依赖、可多选。
In Progress代理正在积极处理的阶段和 One shot 任务,各自位于自己的 worktree 中。
Testing/Review等你处理的已完成工作:卡片会打开显示分支 diff 的审阅窗口。
Done已合并、已开 pull request,或未合并即关闭的任务。

此页面上的一切在远程富客户端上运作方式完全相同——看板、规划窗口和审阅窗口全都通过控制 API 镜像。

撰写任务

新建任务(或单击某张 backlog 卡片)会打开编辑器:

  • 一个标题,以及以 Markdown 撰写的描述,附有编辑 / 预览切换。任务简报会成为代理的提示,所以请像写提示那样写它。
  • 工作区代理——任务会在所选的工作区内,以其某个已配置的代理运行。
  • 在此处启动代理——工作区内的一个文件夹。当它本身是一个 git 仓库时,任务会在那里于一个全新的 worktree 和分支中运行。
  • 需要时创建文件夹和 git 仓库——用于全新开发:当文件夹尚非其自身的仓库时,开始或规划会先运行 mkdir + git init(附一个空的根提交)。对于现有仓库内的文件夹,请保持关闭。

Backlog 中的任务简报提供两个按钮:

  • One shot 会将任务直接送入 In Progress:代理自主完成整件事,并在 Testing/Review 把 diff 交给你。
  • Plan 会先打开一个规划会话。

规划

Plan 会启动一个可见且交互的规划会话并打开其窗口——一个原生的对话视图,无需终端。会话以你的任务简报开场,并以卡片形式呈现;代理以只读方式探索仓库、叙述它所发现的内容,并在任务简报留有真正抉择时提出问题。

问题会以分页卡片的形式抵达——每个问题一个分页,精确地镜像代理在它自己会话中所显示的选择器。答案在本地收集,并在你按下提交之前都可编辑,按下后会一次送出整组;误点永远不是定案。你也可以在窗口底部的输入框中键入自由格式的答案,或按打开终端观看原始会话。

当代理取得所需,它会将计划归档到看板上——在 Plan 列中排好序的阶段卡片,每张大约是一个可审阅的 pull request 的工作量,彼此之间带有依赖关系——并记录一份计划概览。窗口接着会显示计划就绪连同阶段数和一个关闭按钮,规划会话的分页会自行关闭,而任务简报会离开 Backlog(其阶段取代了它;把它们全部删除,它就会回来)。

规划受到看管:若工作区重新启动、代理被结束,或会话在阶段归档前死亡,卡片的旋转图标会以一个具体原因结束——单击 Plan 以重试——而不是永远转个不停。

Plan 列

阶段卡片按计划顺序编号,并带有:

  • 当该阶段需要先让较早的阶段 Done 时的依赖徽章(一把附有阶段编号的锁)。
  • 当你在其依赖关系完成前就启动它时的 queued 徽章——一旦它们全部 Done,它就会自动开始。
  • 其母任务简报的名称。

用复选框选取多个阶段,选取栏便会出现:开始所选的 N 项会将每个都 One shot(受依赖关系管制的阶段会进入队列)、清除会放弃选取,而删除会在一次确认后移除整个选取。编辑某个阶段会显示其依赖于列表——每个同层阶段都附一个复选框,因此可以手动重新安排依赖关系。

阶段会完全自主地运行——一旦开始,就不预期任何交互输入。

In Progress

已启动的任务会在需要时启动工作区、创建仓库的一个全新 worktree,并以任务简报作为提示启动代理。卡片会显示实时的代理状态圆点、其开始时间,以及当代理卡在某个问题上时以红色显示的需要你的输入——单击卡片会跳至实时会话。侧边栏的 TASKS 徽章会统计这些,所以你绝不会漏掉任何一个。

当代理回报完成时,任务会移至 Testing/Review,其终端分页会自行关闭——一个已完成的会话不会被留着占用分页栏。若代理改为崩溃,卡片会转红,而不是假装在工作。

Testing/Review

Testing/Review 卡片会打开审阅窗口:该分支相对于其父级的完整 diff,从 VM 实时读取,附有每个文件的展开器、新增/删除计数,以及代理所记录的任何计划。

像审阅 pull request 一样审阅:

  • 行内评论:将光标移到任何新增行或上下文行上,并单击边栏的气泡,即可将一条评论附到那确切的行上;固定的评论会呈现在其所属的行下方。文件级和一般性的评论也可运作。
  • 退回 In Progress 会把每一条草拟的评论交付给代理——格式为 In foo.js, line 196: use a different method——而任务会回到 In Progress 进行另一轮。代理会在同一个 worktree 和分支上恢复。
  • 合并——这个分割按钮的默认值会合并进父分支;长按它可使用 Squash & Merge创建 Pull Request…(当工作区有 GitHub token 时),或合并进任何其他分支。一次干净的合并会关闭它自己的终端分页;冲突则会改为打开一个解决冲突的会话。
  • 不合并关闭会丢弃该轮,同时把记录保留在 Done 中。

提示: 同样的行内评论工作流程也存在于看板之外:当活动分页运行着一个编码代理时,文件浏览器的 diff 窗格会长出同样的边栏气泡,而发送给代理会把你的评论直接批量送进该会话——无需创建任何任务就能进行代码审阅。

移除卡片

每张卡片在光标移过时会长出一个 (以及一个从看板移除的上下文菜单项),并置于一次确认之后。对于背后有真实工作的卡片,对话框会提供选择:停止代理并删除 worktree(In Progress)或删除 worktree 与分支(Testing/Review)会把一切拆除,而仅移除卡片会让会话与检出在工作区内原封不动。

存储与 API

任务会持久化在工作区存储旁的单个文件中,采用原子写入与 ISO-8601 日期:

~/Library/Application Support/BromureAC/tasks.json

整个看板会镜像到应用的控制套接字上,供富客户端和脚本使用:

端点用途
GET /tasks列出每一项任务。
POST /tasks创建或更新(upsert)一份任务文档。
POST /tasks/<id>/start启动它(worktree + 代理)。
POST /tasks/<id>/plan启动规划会话。
POST /tasks/<id>/comment新增一条审阅评论(text,可选 fileline)。
POST /tasks/<id>/send-back交付未送出的评论并把任务退回 In Progress。
POST /tasks/<id>/merge合并(squash,可选 target)。
POST /tasks/<id>/open-pr创建 pull request 而非合并。
POST /tasks/<id>/to-testing, /to-in-progress手动移动它。
POST /tasks/<id>/destroy停止代理、删除 worktree 与分支、移除卡片。
DELETE /tasks/<id>仅移除卡片。

在底层,规划代理与任务代理会通过一个以会话为单位的看板 MCP 服务器(vsock,主机端)回话给看板:board_get_taskboard_set_planboard_create_subtasksboard_ready_for_review 就是阶段如何被归档、以及一项完成的任务如何宣告自己的方式——无需轮询、无需抓取。这些工具会为每个受支持的代理自动接线:Claude Code 加载以分支为单位的 MCP 配置,Codex 取得以每次调用为单位的 mcp_servers 覆盖,而 Grok 读取一份写入会话检出中(并排除于其 diff 之外)、以项目为范围的 .grok/settings.json