Bonsai
博客
博客 /

到你了

讲一件我们自己看板上的小事。自从大部分活由 AI 助手来做,它就变了样。

以前一个 feature 在 In Progress 里待上一两天,某个人在写它。现在它先在 In Progress 里由写代码的 agent 做,再进 In Review 由审代码的 agent 读 PR,审出问题回到 writer 改一轮,再进 In Review,然后终于轮到我们中的一个真的去看那个 PR。之后它等 agent 部署到 staging,等我们在 staging 上点一圈,再等 agent 部署到 production。

每一步都是一个状态。看板把它们全都显示出来了。但没有一列能回答我们打开看板时的那个问题:有没有什么在等我?

列是一条时间线,agent 不按直线走

issue 追踪器是为人把活交给人而设计的。状态列从左到右读起来像时间线,对人组成的团队这是对的:issue 基本一直向右走,「In Progress」意味着某位同事手上有它。

传统看板中的任务依次经过四个状态列,又返回前一步重做,每次停留都需要人参与。

有了 agent,同一篇 issue 会来回弹。agent、agent、你、agent、你、agent、完成。步骤每小时都在变,而时间线上的位置几乎说不清你能不能去吃午饭。看看板变成了扫描:这九个状态里,哪几个是指我的?

Linear for Agents 和 GitHub 的 Copilot coding agent 把 agent 显示成 assignee 或者 PR 的作者,这有帮助。Jira 让你随便画流程,也有帮助。但在它们所有人那里,你要找的那件事,仍然是从状态名里猜出来的。

第二条轴

Bonsai 的看板现在有一条内置的轴,叫 Turn。任何时候,每篇 issue 都恰好处在四个之一:

Turn含义
Todo还没有人在动它
Agent’s turn有 agent 在做,或者马上要派
Your turn在等人
Closed没有人需要再看

看板按 Turn 分组,Your turn 是最左边那一列。打开一个项目,屏幕上第一样东西就是你的收件箱。旁边是 agent 此刻正在做的事。左边那列空了,你就是自由的。

人和一组 agent 轮流接球:agent 内部传递工作时,人可以做其他事情,直到轮到自己。

状态并没有消失。它们仍然由你定义,想要几个就几个,想叫什么就叫什么。只是每一个都属于某个 Turn。我们内置的 Feature 类型是这样的:

Turn状态
TodoBacklog、Blocked、Ready
Agent’s turnDeveloping、Reviewing、Revising、Deploying to Staging、Deploying to Production
Your turnReview PR、Verify Staging、Needs Decision
ClosedDone、Canceled、Duplicate

顺着走一遍,一个 feature 的 Turn 翻转六次:Developing、Reviewing、Review PR、Deploying to Staging、Verify Staging、Deploying to Production、Done。这种来回不是要藏起来的毛病,它就是工作真实的形状,看板终于把它画出来了。

为什么四个是固定的

每个状态都能改名。四个 Turn 不能改名,也不能加第五个。

这是故意的。这四个词是其他一切达成一致的基础。派发器知道 Agent’s turn 里的状态有一个角色要派。角色笔记里可以写一句「做完交回给人」,它只有一个意思:改到 Your turn 里的某个状态。看板知道哪一列是收件箱。如果这条轴可以编辑,每个项目都会把它改得稍微不一样,上面这些就都不成立了。

状态承载流程,Turn 承载注意力。把这两件事分开,就是全部的想法。

用起来是什么感觉

主要是更安静了。看板不再是一串要解码的状态,而是两个问题对应两列:他们需要我做什么,他们正在做什么。其余的都可以在右边等着。

Turn 正在上到 Bonsai 的 issue 看板,和把 issue 从一个 agent 交到下一个 agent 的自动化引擎一起。如果你在 waitlist 上,进来的时候就会看到它。