Task
issue、PR 和你自己记的事,各自带着 Workspace 和 PR。
Task 是什么
Task 就是那件事本身。Workspace 是在哪干,agent 是谁来干,Task 是为了什么干。它只存别处推不出来的东西:
- 信源:一个 GitHub issue、一个 pull request,或者什么都没有(你自己手填的)。
- 你的备注。
- 阶段:
new、planning、confirming、ready、in progress、in review、done。这是你定的。在 task 详情的下拉框里改,或者交给 agent、agentflow 去设。
其他一切都是显示时现算的。标题来自 issue。活动状态来自实际发生的事:
| Todo | 名下还什么都没有 |
| In progress | 有一个 Workspace |
| In review | 有一个打开的 PR |
| Done | 所有信源都已关闭或合并,或者你标记了完成 |
名下的 agent 或 run 出了状况也会体现出来:needs you、error 或 running,取最严重的那个。阶段是你打算做到哪,活动状态是实际发生了什么。两者并排显示,谁也不去纠正谁。
PR 归属于哪条 task,靠分支判断:head 分支等于这条 task 某个 Workspace 分支的 PR,就是它的 PR。Kumo 不解析 fixes #96。
Task 从哪来
- GitHub issue,自动进来。在 GitHub 上的 project(且
gh已登录),每个打开的 issue 一被 Kumo 看到就成为一条 task。Kumo 只看它有理由看的 project:已经有 task 的、有在线 agentflow 在监听的、或者 Task 页正开着的。每五分钟查一次,列表没变化不消耗你的限流额度。 - 一个 PR:在 Task 页上选中它,或者从它新建 Workspace 时。
- 手填:Task 页上,或侧栏 Tasks 那一行上的
+。Manual 让你填标题、project 和备注;Chat 让你用一句话描述要做的事,交给一个 agent 拆成一条或多条 task,需求不清楚时它会先问。 - agent 建的:
kumo task new。
Task 页
侧栏顶上的 Tasks 打开一个整页:左边是列表,右边是选中那条的详情。它在侧栏那一行会数出有几条在等你。
列表按 project 分组,顶上的筛选按钮有 All、Mine(你建的、指派给你的、或者等你 review 的)、Needs you、Confirming 和 In review。搜索框接受普通词、#96,以及可以组合的过滤条件:
label:bug milestone:"0.26" author:ann stage:ready is:pr is:issue is:manual
每一行显示 issue 编号、标题、它的 PR(⑂ #131)、labels,然后是阶段和活动状态。已完成的 task 显示为灰色,排在末尾,只在 All 里出现。点一行只是选中它,不会跳到别处。
详情从上到下是:task 的身份和阶段、动作、它的 pull request、名下的 Workspace 和 agentflow run、issue 的正文、评论(只读,回复仍去 GitHub),以及活动流:分支上的 commit、agent 的启停、run 的进展、事件,最新的在前。每一行都链到它说的那个东西。
动作
第一颗按钮永远是这条 task 离完成还差的那一步,你不用自己去想下一步是什么:
| 什么时候 | 第一颗按钮 |
|---|---|
| 名下还什么都没有 | Start a Workspace… |
| 有 Workspace,没有 PR | Open a pull request ▾ |
| 有打开的 PR | Merge #131… |
| PR 已合并,issue 还开着 | Close issue… |
| 你手填的 task | Mark done |
然后是放弃它的方式(Close issue…、Close pull request… 或 Delete task…),把 task 交给某条 agentflow 的 Run flow ▾,以及始终都在的 Start a Workspace…:一条 task 随时都能再开一个 Workspace。
- Start a Workspace… 打开已经为这条 task 填好的 New Workspace:分支、带 issue 正文的第一条 prompt,以及告诉 agent 它在做哪条 task 的那一行。
- Open a pull request ▾ 列出这个 Workspace 上的 agent。选一个,Kumo 就给它发一句固定的话:push 这个分支,向 base 分支开一个 PR,正文里写上
Fixes #96。这条消息在那个 agent 的对话里显示为FROM Task #96,而不是你。 - Merge #131… 让你在 Merge、Squash、Rebase 里选(仓库允许哪些就显示哪些),通过
gh合并。GitHub 拒绝的话,你会看到它的原话。
Kumo 写 GitHub 只有四个地方,全都是你按下并确认的按钮:关闭 issue、合并 PR、关闭 PR,以及让 agent 去开 PR。没有后台同步,也不发评论。
Task 面板
在 Workspace 里,右侧栏的 Task 按钮(⇧⌘T)显示这个目录对应的 task:编号、标题、PR,以及和 Task 页上相同的第一颗按钮。不离开 board 就能把事情收尾。没有关联 task 的 Workspace 会直说。
对话里的 Task
- 在输入框里打
#,按编号或标题挑一条这个 project 的 task,最近动过的在前。插进去是@task:#96。 - 从 task 新建的 Workspace,第一条 prompt 开头会带一小段:这是哪条 task,以及怎么用
kumo task读取和更新它。agent 由此知道自己的工作归在哪,也能自己推进阶段,不用你粘贴任何东西。 - agent 用
kumo task list / show / new / edit / start / done做 Task 页上能做的那些事。kumo task show后面什么都不跟,就是这个 agent 所在 Workspace 的那条 task。
Task 的结束
一条 task 的所有信源都关闭或合并后,Kumo 会把它标为完成;名下不再有 Workspace 时,就把它移除。列表不会被做完的事堆满。你手填的 task 用 Mark done 结束。
Delete task… 只移除 task,它的 Workspace 都还在。在 GitHub 上重新打开 issue,它会作为一条新 task 回来。
事件
每条 task 都会在 Kumo 的事件总线上广播自己:task.created、task.updated(带上变了什么:阶段、labels、PR 打开或合并……)、task.done 和 task.deleted。Agentflow 就从这些事件起跑。见 Agentflow。