Baton 是做什么的?
使用捆绑的 Python 引擎作为权威的本地任务账本。显式运行命令;此技能不会启动守护进程、检测模型使用限制或自动联系其他代理。
解释聊天操作
用户通常通过聊天调用此技能,例如 /baton handover TASK-01 to pc1-codex、$baton continue TASK-01 或 /baton:baton status,具体取决于宿主。将剩余单词解释为操作请求,并为用户执行相应的引擎命令。这些是对此单一技能的请求,而不是单独注册的命令或终端命令。
| 请求的操作 | 引擎操作 |
|---|---|
init | 如有必要进行引导;检查项目;仅对新看板执行 InitFresh。 |
join | JoinExisting。 |
status, tasks, packet TASK | Status, Tasks, WebPacket。 |
add TASK "Title" with files ... | AddTask,当提供依赖时附带依赖。 |
start TASK, claim TASK | SilentHandshake;当请求时,使用 --git-branch 进行 Git 工作和隔离的工作树。然后仅在用户要求实现时进行实现。 |
checkpoint TASK with message ... | Checkpoint;仅在用户的上传授权范围内添加 --push。 |
progress TASK to 60 percent | UpdateProgress,附带真实的进度数字和说明。 |
handover TASK to AGENT, handoff TASK to AGENT | AtomicHandoff;包含来自对话的当前提示、更改和剩余工作。 |
continue TASK, resume TASK | CheckOrContinue;在编辑之前根据其所有权决定进行操作。 |
done TASK | 运行相关项目检查,当实现准备好时执行 Done。 |
review TASK | 作为不同的代理检查固定的更改和相关检查,然后执行 SubmitReview。 |
reopen TASK, merge TASK, release TAG, revert TASK, recover TAG | 分别对应 ReopenTask, MergeTask, ReleaseTag, RevertTask, RecoverTag。 |
release files ... from TASK | 为指定的声明执行 ReleaseFiles。 |
resolve recovery | ResolveRecovery;如果被拒绝,则保留未解决的工作及其日志。 |
abandon recovery | 仅当明确要求放弃时执行 ResolveRecovery --abandon-recovery。报告剩余的修复项。 |
selftest | SelfTest。 |
reset workspace | 仅当领导明确授权重置时执行 ResetWorkspace --confirm-reset。 |
根据请求和当前看板解析任务 ID 和路径。询问确实缺失的信息,例如新项目的密钥或模糊的协作者身份。始终将此对话的协作者 ID 显式传递给承载身份的引擎操作;另一个代理可能已更改共享本地会话的已保存 ID。尊重对话中较早的授权。MergeTask 和 ReleaseTag 会尝试远程上传,因此当用户的请求禁止上传时,不要对已配置的远程使用它们。
设置项目
要求:Python 3.10+ 和 Git。选择一个可用的 Python 3 解释器(python3、python 或 Windows 上的 py -3);不要假设 Windows 的 python3 别名有效。
在项目的第一个引擎命令之前,找到此技能自己的 scripts/bootstrap.py 并使用所选解释器和 --project <absolute-project-path> 运行它。它会将捆绑的引擎复制到 .collab/collab_engine.py,并将 /.collab/ 添加到项目的 .gitignore。它不会初始化账本或替换不同的现有引擎。如果拒绝,请单独解决升级问题。
以下命令从项目根目录运行。必要时用所选解释器替换 python3。对于 Git 支持的任务,首先检查项目是否是一个带有基线提交和已配置 Git 身份的 Git 仓库。当不是 main 时,使用 --base-branch <branch> 指定其实际基础分支。
在编辑前建立所有权
- 运行
Status。使用不同的协作者 ID 加入已初始化的工作区;通过用户的授权本地上下文获取项目密钥。对于新的工作区,使用选定的领导和项目密钥执行InitFresh。将密钥和本地会话保留在 Git 之外。 - 如果任务不存在,则添加一个任务及其预期的文件路径和依赖项。
- 在编辑前运行
SilentHandshake。BUSY_REDIRECT 表示拒绝声明该任务;选择一个符合条件的替代任务。对于共享同一项目的并行分支支持任务,使用--use-worktree。 - 对有意义进展设置检查点。转移所有权时,使用 AtomicHandoff;接收代理运行 CheckOrContinue。已交接的代理必须尊重 SKIP_ALREADY_HANDED_OFF。
- 当实现准备好时运行 Done,然后让不同的代理审查固定的提交。真正的审查意味着在提交裁决之前检查更改和相关检查。
尊重用户对提交、上传、合并和发布的范围和现有授权。同行批准本身并不授权外部发布。未经授权,不要向其他代理或人员发送消息;交接记录可由下一个代理在运行时消费。
引擎命令
每行以 python3 .collab/collab_engine.py --local-path . 为前缀。在适用处提供稳定的 --collaborator-id <agent>。
| 操作 | 参数和行为 |
|---|---|
InitFresh | --project-key <key> --collaborator-id <lead>;如果现有账本则拒绝。 |
JoinExisting | --project-key <key> --collaborator-id <agent> --device-cluster-id <cluster> --same-device true 用于同一台 PC 协作。 |
Status / Tasks | 检查所有权、进度和交付。Status 接受 --render-format CLI 或 Markdown。 |
AddTask | --task-id T1 --task-title "Implement feature" --files src/feature.py;可选的 --depends-on T0。 |
SilentHandshake | --task-id T1 --collaborator-id <owner> --git-branch;可选的 --use-worktree。 |
Checkpoint | --task-id T1 --collaborator-id <owner> --commit-message "checkpoint: meaningful progress";可选的 --push。提交当前拥有的文件。 |
ReleaseFiles | --task-id T1 --collaborator-id <owner> --files <paths> 用于有意的声明释放。 |
AtomicHandoff | --task-id T1 --collaborator-id <owner> --target-agent-id <receiver> --reason "Continue implementation";使用 --last-prompt, --changes-summary, --remaining-todo 添加上下文;可选的 --push。 |
CheckOrContinue | --task-id T1 --collaborator-id <agent>;加载交接或尊重恢复-跳过防护。 |
Done | --task-id T1 --collaborator-id <owner>;固定干净的工作以供审查;可选的 --push。 |
SubmitReview | `--task-id T1 --collaborator-id --review-verdict APPROVED |
ReopenTask | --task-id T1 --collaborator-id <owner-or-lead> 用于修改待处理或已恢复的工作。 |
MergeTask | --task-id T1 --collaborator-id <agent> --squash;尝试推送。使用 --use-worktree 以保留另一个任务的共享检出;--reapply 显式重新应用已恢复的工作。 |
ReleaseTag | --tag v1.0.0 --tag-message "Accepted milestone" --collaborator-id <agent>;标记已验证的基础分支并尝试上传。 |
RevertTask | --task-id T1 --collaborator-id <agent>;创建一个撤销提交;可选的 --push 和 --use-worktree。 |
RecoverTag | --tag v1.0.0 --recovery-branch recover/v1.0.0 从里程碑创建分支。 |
ResolveRecovery | 仅在受影响的检出修复后解决。--abandon-recovery 显式归档日志并列出手动修复;它不执行这些修复。 |
SelfTest | 在一次性环境中运行引擎的 42 阶段测试套件。 |
对于使用工作树的分支支持任务,在任务的记录 worktreePath 内编辑并运行项目检查。
限制和恢复
- 声明是协作性的引擎级检查;编辑器和任意 Git 命令可以绕过它们。协作者 ID 是标签,而不是认证身份。
- 一台 PC 的看板是本地权威。单独的 PC 使用分支和 Git 同步;同步的看板副本不提供分布式锁。不要将驱动器文件夹视为共享的事务性账本。
--backup-path <local-synced-folder>写入单向看板快照。同步客户端处理云上传;引擎没有原生 Drive、OneDrive 或 TeraBox API 适配器。- 审查批准标记任务完成并释放其声明;已验证的合并/交付是单独的操作。仅在引擎验证远程推送后报告
DELIVERY: COMPLETE;当返回 LOCAL_ONLY 或 INCOMPLETE 时保留。 - 如果恢复报告 UNRESOLVED,保留日志和本地文件。检查命名的检出,保存相关编辑,并在清理后重试。不要将放弃作为保留文件的替代方案。
- ResetWorkspace 归档看板,需要领导身份加上
--confirm-reset;仅当重置工作区在用户请求范围内时使用它。
该技能需要一个具有文件系统和 Shell 访问权限的编码代理。使用宿主的实际技能调用;/baton 不是普遍注册的终端或聊天机器人 API。