开源 · 本地优先 · 不绑定 AI 平台

换 AI,
别换项目记忆。

Baton 把进度、任务、决策、设计规范与 Git 状态留在项目里。Claude Code、Codex 或 Cursor 接手时,读到的是同一份项目事实,而不是上一段聊天记录。

不上传聊天记录。项目真相以普通 Markdown、JSON 与 Git 留在你的仓库里。

一套项目事实,贯穿整个接力链路
3个支持的工作端
2层项目状态
0个后台服务依赖
Claude CodeCodexCursor
01 / WHY

切换工具不贵。
重建项目上下文才贵。

真正拖慢项目的,往往不是写代码,而是每次换电脑、换会话、换 AI 后重新拼凑:做到哪了、为什么这么做、哪些不能动、远端到底有没有更新。

01

接手,从猜开始

新会话看不见昨天的分支、决定和卡点。你先复述半小时,AI 再重复探索一遍。

隐性成本重复解释 + 重复施工
02

“完成了”,但远端没有

本地提交不等于交付。第二台电脑拉不到代码,直到下一次开工才发现 push 从未成功。

隐性成本口头完成 ≠ Git 事实
03

做着做着,边界消失

确认过的原型和设计规范被忘记;一个小改动越做越大,几小时后才发现已经跑偏。

隐性成本返工 + 不可控变更

Baton 不试图保存一段永不结束的聊天。它让项目本身成为下一位执行者能读、能验证、能继续的共同记忆。

PROJECT, NOT CHAT
02 / PROJECT TRUTH

聊天会结束。
项目事实不会。

Baton 用两层清晰分工的状态,把“所有人都该知道的事实”与“只属于当前机器的证据”分开。

随 Git 同步 docs/ai_memory/ + .baton/

可移植的项目事实

项目记忆、Skill、入口规则、配置与清单都随 Git 到达下一台电脑,让三种工作端从同一份事实继续。

  • current.md当前工作摘要
  • handoff_current.md最后一棒的交接事实
  • state/tasks.json任务与验收状态
  • config.json · manifest.json恢复门禁与管理清单
AI-agnostic · Human-readable · Versioned
本机私有 .baton/local/

本地运行状态

只有机器相关的运行证据、版本锚与私有扫描/发布配置留在本机,并通过 gitignore 排除。凭据不进入项目记忆、Git 或日志。

  • local/本机验证与发布证据
  • version.json当前设备的安装锚
  • private config扫描与发布私有配置
  • .gitignore与共享事实严格分离
Local-first · Gitignored · Credential-safe
ONE SOURCE OF PROJECT TRUTH

交棒时,传的是可验证的项目状态。

每一位执行者都先读同一份状态,再在明确范围内工作,最后留下下一棒需要的事实。

03 / WORK CYCLE

四个动作,
串起一个工作周期。

口令只是入口。真正发生的是:先恢复事实,再约束执行,任务完成后等待你验收,最后用 Git 证据关掉这一棒。

先确认现在在哪里

恢复现场,不靠猜。

检查分支、HEAD 与工作区;在安全条件下同步;读取最新交接与待办,再把可选任务列给你。

  • 分叉、脏工作区或他人持有时停止写入
  • 任务不擅自排序,回复编号再开始
在边界内继续

接着做,不重做。

恢复当前任务、约束、卡点与唯一下一步。工作中可以随时保存设计规范、记录决策或写入交接检查点。

  • 冻结需求、允许路径与保护路径共同防跑偏
  • 先查索引,只读取命中的历史片段
任务完成,不等于替你验收

先转“待验收”。

记录 DoD 验证证据与结果,把任务置为“待验收”,交给你确认。这里不会默认执行整日收尾,也不会擅自 commit 或 push。

  • 用户验收前,不伪装成 completed
  • 给出下一任务或唯一下一步
用证据结束这一棒

远端一致,才算交棒。

核对改动范围,运行必要验证,更新进度、交接与指标,提交并推送;只有远端 SHA 与本地 HEAD 一致,才报告收尾成功。

  • 命中保护路径或越界改动立即阻断
  • 禁止 force push、reset --hard 与危险 clean
04 / COMPATIBILITY

一套 Skill。
三个工作端直连。

Baton 0.2.0 不依赖插件或后台服务。Codex、Cursor 与 Claude Code 直接按项目里的 Skill、状态文件和 Git 事实执行同一套接力协议。

01
DIRECT / THREE SUPPORTED HOSTS

三端直接执行

Claude Code、Codex 与 Cursor 直接读取同一套规则和普通文本状态,完成接力、记忆、防跑偏与 Git 闭环。

Claude CodeCodexCursor
  • ✓项目状态与统一交接
  • ✓长期记忆、索引与设计规范
  • ✓任务边界、Git 纪律与安全红线
  • ✓不依赖后台服务或专用云
02
PORTABLE / PROJECT-CARRIED

项目自己携带接力能力

项目 Skill、入口规则、记忆、配置与清单随 Git 同步。换电脑 clone 或 pull 后,三种工作端都能直接恢复现场。

0.2当前公开版本
  • +已验证坑点与确认决策自动入记忆
  • +长文档按完整语义边界自动分卷
  • +更新只在明确口令后执行
  • +缺失 Skill 或规则可按官方路径恢复
能力 项目事实 0.2.0 行为
支持的工作端 Codex · Cursor · Claude Code 直接按 Skill 执行
自动项目记忆 已验证坑点 + 用户确认的长期决策 即时写入现有 knowledge 与索引
自动语义分卷 完整章节、表格、代码块与记录不被切断 写文档时自动检查,不安装后台 watcher
跨机恢复 docs/ai_memory/ + config + manifest 随 Git 到达;本机 local 状态不入库
更新策略 显式 update / repair 口令 无后台自动更新

!“自动”发生在三端按 Skill 写项目文档时,不代表安装常驻进程、文件监听器或 Baton 自有云。

05 / GUARDRAILS

速度之前,
先把边界说清楚。

Baton 的优势不是让 AI “更会说完成”,而是把容易被忽略的协作约束,变成每一棒都能遵守和验证的项目规则。

A / SCOPE

范围不是提示,是契约。

FROZEN / BOUNDED / OPEN 明确约束等级;allowed paths、protected paths 与验收标准共同决定“能改什么、不能改什么、怎样才算过”。

FROZENALLOWED PATHSDoD
B / GIT

Git 证据,不是口头保证。

ff-only 同步,分叉即停。收尾时比较远端 SHA 与本地 HEAD;不一致,就不报告成功。

C / MEMORY

确认过的知识,自动进入记忆。

已验证坑点与用户明确确认的长期决策即时写入现有 knowledge 与索引;存疑信息先询问,不把猜测固化成项目事实。

D / SEMANTIC SPLIT

文档会分卷,完整语义不会被切断。

长文档在写入时自动检查,优先从完整章节或记录边界分卷;代码块、表格、交接和任务记录保持完整。

E / OWNERSHIP

一份工作区,只允许一个写入者。

所有权未释放时,下一位执行者保持只读并报告,避免多个 AI 同时改同一工作区,把“接力”变成“抢方向盘”。

F / SAFETY

危险 Git 不进入流程。

force push、reset --hard、危险 clean 与未授权 rebase 被明确禁止;冲突不会被自动“解决”。

06 / GET BATON

装好本机 Skill,
让项目自己带记忆。

同一份安装为 Codex、Claude Code 与 Cursor 准备用户级 Skill;项目初始化再补齐可随 Git 迁移的记忆、规则、配置与清单。

USER SKILLS / THREE HOSTS

一次安装,让三种工作端认识 Baton。

03个工作端

准备 Git、Node.js 18+ 与 PowerShell,克隆官方仓库并运行用户级安装。完成后打开新的 AI 会话。

POWERSHELL复制后回车
git clone https://github.com/kakadeka/Baton.git "$HOME/Baton"
& "$HOME/Baton/scripts/baton-install.ps1" -Scope User
01

支持 Codex、Cursor 与 Claude Code

02

已有目录时先执行 git -C "$HOME/Baton" pull --ff-only

03

用户级安装每台电脑执行一次,之后打开新会话

安装后只验证一句
上班啦

看到分支、HEAD、工作区状态与任务表,就说明 Baton 已接管工作流程。

07 / PRINCIPLES

该继续时继续。
该停时一定停。

可靠的接力系统,不只会自动执行。遇到无法安全判断的情况,它必须把风险原样交给人。

查看完整规则源码↗
01

分叉不自动合并

只允许 ff-only 安全同步;发现 divergence,停止并报告。

STOP
02

越界不偷偷修正

改动超出 allowed paths 或命中 protected paths,收尾直接失败。

BLOCK
03

凭据不进入记忆

API Key、Token 与机器私有信息不写入 Git、Memory、Metrics 或日志。

PRIVATE
04

历史不被静默改写

记录只追加,旧结论需要更新时标记“已取代”,保留来路。

TRACE
08 / FAQ

接棒之前,
你可能还想知道。

支持 Codex、Cursor 与 Claude Code。三者直接按同一份 Skill、项目状态与 Git 事实运行,不需要额外插件或 Baton 后台服务。

不会。Baton 保存的是项目需要的结构化事实:进度、任务、决策、约束、交接与验证结果。聊天记录和私人上下文不是接力载荷。

不会。“完成”是任务级动作:记录证据并转为“待验收”。“下班啦”才执行工作日收尾,包括范围核对、文档更新、提交、推送与远端 SHA 核验。

不会。只有明确说“更新 Baton”或“修复 Baton”时才会执行官方更新与后验检查,不安装后台更新器。

不会引入 Baton 自有云。项目记忆、Skill、config 与 manifest 随你配置的 Git remote 同步;机器私有数据只留在 .baton/local/ 等本机路径。

PASS YOUR PROJECT, NOT YOUR CONTEXT.

下一次换 AI,
不用再从头解释。

把接力机制装进项目,让每一棒都知道从哪里继续、哪些不能动,以及怎样才算真正交付。