CatPaw:AI 编程跨会话工作流
面向 coding agent 的 local-first 工作流运行时,用 Work、Proof 和 Approval 管理跨会话协作与可验证交付。
项目地址:https://github.com/shiqkuangsan/catpaw | MIT 开源协议 | 当前源码版本:
3.4.3(main,2026-08-29)
这是什么
CatPaw 是面向 coding agent 的 local-first 可靠执行运行时(runtime)。它位于用户、AI Agent 和项目工作记录之间,负责把一次任务从理解推进到交付,并用文件系统保存跨会话仍有价值的事实。
它不是 IDE、模型提供商、prompt 包或完整的任务管理器。它解决的是 AI 编程中经常出现的协作问题:
- 新会话找不到上次的目标、决策和下一步
- Agent 声称“完成”,但验证证据和剩余缺口不清楚
- 多 Agent 修改同一份文件,所有权和合并边界模糊
- commit、push、deploy 或其它不可逆动作没有明确的授权边界
CatPaw 不替 Agent 决定所有事情,而是把交付结果、可检查证据和用户授权边界显式化,让工作可以继续、复盘和交接。
当前工作模型
CatPaw 3.4 将用户需要理解的模型收敛为三个并列概念:
| 概念 | 作用 |
|---|---|
| Work | 要交付的结果、当前进度和下一步 Next;需要跨会话时写入项目工作板 |
| Proof | 支撑判断的可检查事实、复现结果、独立审查和剩余缺口 |
| Approval | 只有用户可以提供的新增权限或风险接受;不会被 Agent 输出或 Proof 自动授予 |
对外可见的流程是:
Understand -> Execute -> Check -> Finish
每个 Work 都会先经过一次轻量的 Understand readiness pass。没有会改变交付的歧义时,CatPaw 保持简短并继续执行;如果歧义可能改变结果、范围、验收、数据或权限边界,或涉及外部与不可逆选择,Agent 会先展示当前理解、已核对事实或假设、当前真正需要用户决定的问题,以及这些决定解锁的第一个交付切片。它不会因此增加一个强制的 Clarify 阶段或新的 artifact。
内部仍使用 schema 2、Direct / Tracked / Gated 等路由元数据,但这些是运行时实现细节,不要求用户学习或手动选择。
最新功能更新
以下内容按仓库 main 的源码版本和 src/runtime/CHANGELOG.md 整理;源码版本不等同于 GitHub Release 页面上的标签。
| 版本 | 日期 | 主要更新 |
|---|---|---|
| 3.4.3 | 2026-08-29 | 对所有 Work 启用 Understand readiness;只追问会改变交付的决策或只能由用户提供的阻塞事实,并让当前理解和首个可交付切片可观察 |
| 3.4.2 | 2026-08-26 | 将 decision frontier、根因调试循环、双轴审查、限时 prototype、上下文切换和 expand -> migrate -> contract 等方法并入现有运行时权威 |
| 3.4.1 | 2026-08-16 | 为多系统或多关注点 Work 增加按需的浅层 scope tree、依赖边和 Confirmed / Proposed / Open 局部注记;不新增树状 artifact |
| 3.4.0 | 2026-08-14 | 公开模型统一为 Work / Proof / Approval;增加 status、Work、Proof、intent 和 transport 等 CLI 门面,并保留 3.x 兼容入口 |
| 3.3.0 | 2026-08-13 | 允许明确授权的 Builder 在独占 worktree 和非保护分支上创建一个本地 slice commit;Primary Agent 必须独立审查后才能采纳 |
| 3.2.0 | 2026-08-13 | 增加基于风险的 Agent dispatch 合约、bounded Task Envelope 和 explore / build / check 意图;只并行处理没有共享可变范围或顺序依赖的工作 |
| 3.0.0–3.0.5 | 2026-07 | 完成 hybrid runtime、schema 1 到 schema 2 的显式迁移、运行时激活校验和旧工作板导入加固 |
这些更新的共同原则是:增加可观察性和验证能力,但不把内部角色、阶段或调度细节扩张成用户必须维护的新系统。
Agent 协作
三种 bounded intent
CatPaw 用意图描述一次 Agent 应负责的结果,而不是定义人格、模型或权限:
| Intent | 责任 |
|---|---|
explore | 建立事实、边界、选项和设计 |
build | 实现或集成一个精确、隔离的范围 |
check | 审查缺陷或验证验收 |
Primary Agent 决定使用哪些 Agent、模型和 transport,以及串行还是并行,并负责最终候选的接受。一个 Agent 可以组合多个意图,但改变意图名称不会产生新的权限,也不会让同一个 Agent 的自审查变成独立 Proof。
实质性委派使用一次性的 bounded contract,至少说明结果、事实、读写范围、约束、输出格式、验证方式、依赖关系、停止条件和允许的动作。不同 Agent 不得同时写同一份可变表面;需要并行时,应使用隔离 worktree 或等价的隔离状态。
本地提交与外部会话
3.3.0 起,Builder 只有在 Primary Agent 明确给出独占 worktree、非保护分支、精确写入范围、干净基线、验证和凭据扫描要求,并标记允许本地 slice commit 时,才可以创建本地提交。该提交只是交接候选,不代表已经集成;push、PR、deploy、保护分支更新、改写历史和破坏性清理仍需用户明确授权。
CatPaw 管理两个 reciprocal、只读的外部 transport:cc(Claude Code)和 cx(Codex)。transport status 只报告进程、退出码和终端输出等可观察事实;空 stdout、进程稳定或退出成功都不能单独证明任务完成。
跨会话记忆与目录边界
CatPaw 将源码、构建包、已安装 runtime 和项目工作板视为四个独立表面:
source -> dist -> installed -> project board
项目工作板位于项目根目录的 .catpaw/,schema 2 的常见结构如下:
.catpaw/
├── index.md # 活跃工作概览
├── milestones/ # 可选的阶段目标
├── work/ # Work Item
├── plans/ # Work 的持久计划
└── evidence/ # typed Proof,按主题或 Work 组织
└── topics/
Work 映射为 Work Item 和 Plan,Proof 映射为 typed Evidence(research、review、test、provider、reflection 等类型),而 Approval 仍是用户授权边界,不是新的 artifact。旧版 todos/ 等目录可以通过显式 migration 导入;迁移会保留带 checksum 的 legacy/schema-1/ 归档,不会把源码仓库的 docs/、scripts/ 或测试目录复制进已安装 runtime。
CLI 与日常使用
安装后的命令可用 catpaw --help、catpaw <command> --help 和 catpaw --version 发现。推荐的日常入口是:
catpaw status
catpaw board init|status|doctor|migrate
catpaw work start|show|update|finish|cancel
catpaw milestone start|show|add|finish|cancel
catpaw proof add|list|show
catpaw intent list|show
catpaw transport check|open|send|status|read|close
Mutation 默认是 dry-run,只有显式 --apply 才写入。proof add 支持内联文本、文件和 stdin,避免把长篇 Proof 塞进命令参数。intent 是只读的合约发现入口;board 保留初始化、诊断和迁移等维护能力;transport 用于高级的 cc / cx 会话。
3.x 的 board status、work close、milestone close、evidence add、agent ... 和 --mode tracked|gated 仍作为兼容输入保留,但新文档应优先使用上面的公开命令和概念。
源码检出时,入口是 node src/runtime/bin/catpaw.mjs;安装后入口是 node ~/.catpaw/bin/catpaw.mjs。文档中的 catpaw 只是这个入口的简写,CatPaw 不会自动修改系统 PATH。
安装与升级
克隆、构建和验证源码包:
git clone https://github.com/shiqkuangsan/catpaw.git
cd catpaw
node scripts/build-runtime.mjs
node scripts/verify-runtime.mjs
构建只生成 dist/runtime/,不会自动写入 ~/.catpaw/,也不会修改全局或项目 adapter、注册表或项目工作板。需要安装或升级时,按仓库的 AI-INSTALL.md 和 Runtime Maintenance 单独执行,并先查看 dry-run 的文件变更和保留规则。
首次在项目启用工作板:
catpaw board init --apply
如果项目已有旧版 todos/,先运行 catpaw board migrate 查看完整映射和阻塞项;确认无误后再使用 --apply。runtime 激活、host adapter 合并、项目注册和 schema 迁移是彼此独立的动作,不会因为其中一步完成而自动触发其它动作。
适用范围与限制
CatPaw 特别适合跨多天、跨会话或需要清晰交接与验证证据的 coding-agent 工作。一次性的 typo、小脚本和明确的局部修复可以直接在当前会话完成,不必为了形式创建工作板。
它依赖本地文件系统保存状态,Proof 是可检查的支持事实而不是加密签名;最终完成判断仍需要 Agent 或用户按实际证据复核。CatPaw 负责协调、记忆和授权边界,不替代具体的编译器、测试框架、浏览器工具或部署平台。