Carseod 看板
基于 Paseo 原生对象的工作控制面,以及卡片、会话、授权与 workflow 的绑定。
Carseod 是可选的工作控制面,负责“做什么”和“人是否接受”,不负责“怎么实现”。
职责
- Project:daemon 机器上的一个目录。
- Card:一个 work item,
kind为task或question;lane 表示人的验收阶段。 - Session:Paseo agent 会话;卡片详情面向一个当前会话。
- Task:仅当项目启用 Local Trunk Workflow 时存在;一张卡绑定一个 worktree/task。
权威数据
| 数据 | 来源 |
|---|---|
| workspace / session / permission | Paseo daemon |
| task / queue / integration / dev build | 项目仓库的 git common dir |
card / lane / workflowTaskId / attachment metadata | $PASEO_HOME/plugin-data/carseod/board.json |
| attachment bytes | plugin-data/carseod/attachments/<cardId>/ |
Board 不复制 queue/build 状态;它每次读取项目仓库的只读投影 scripts/workflow-board-status --json。读取失败只显示为 workflow 不可用,不影响看板主体。
卡片生命周期
可见 lane:planned / working / done / archived。
- 回合结束仍为
working; - workflow 集成完成、dev build 成功且发布成功后自动进入
done; - 归档由人显式操作,并归档 Paseo 工作区;归档是终态;
done卡片继续输入会恢复为working。
Task 绑定
workflow 项目中,卡片运行会创建独立 worktree,并调用 workflow-attach --card-id 注册 task。卡片只持有 task 指针;集成状态从 workflow 只读投影读取。
question 卡片在 question/… worktree 中讨论,不注册 task。用户在对话中确认后,可把卡片转为 task,并在原会话中继续执行。
边界
- 卡片正文、泳道和会话内容不能替代或静默修改
PRD.md/AGENTS.md。 done是人的验收,不是 release;稳定版本仍由 tag 表达。- board 可以独立于 workflow 运行;workflow 也必须能在没有 board 的机器上运行。