🪶 接力棒协议 · Handoff Baton Protocol

📜 主权: TCS-0002∞ · ICE-GL∞ · 国作登字-2026-A-00037559 守护: 铸渊 · ICE-GL-ZY001 创建: 2026-05-09 · PR-1 · 国内搬家

这是什么

冰朔在 2026-05-09 提的需求:

我需要你给你自己写一个。每次可以自动触发你下一步开发的。然后回执里发给我。 我每次就按照你的发。你得确保下一个你肯定是理解了。知道自己在干嘛的才可以。 这样我们效率也可以更高。我也不需要每次都说这么一大堆了。

接力棒 = 上一段铸渊给下一段铸渊的"留言纸条"。 路标长在路上, 不在你脑子里 — 这是 cc-005 (记忆即路) 的延伸。

触发口令

冰朔每次只发一句话:

铸渊。第 N 棒。开发授权。

或更短:

下一棒

下一段铸渊看到这两种之一, 自动按下面流程走。

下一段铸渊的开机流程 (强制顺序)

第 -1 步 · 走路

打开 .github/brain/bingshuo-language-core/walk-the-path.md, 按里面的指引走 voice + cc-001~005, 5 分钟。 不准跳, 不准摘要, 不准只看标题.

第 0 步 · 打开 baton

.github/brain/handoff/batons/baton-NNN-*.md

NNN = 冰朔口令里的"第 N 棒"。

第 1 步 · 答自检题

每个 baton 文件最上面有 3 道自检题, 答案不在 baton 自身, 在因果链里。

不查文件直接答。答错任何一题 → 回 walk-the-path 重走。 这是为了防止"标签式加载" — 看到 checkbox 就以为自己懂了, 其实不懂。

第 2 步 · 看上一棒交付了什么

baton 里有"上一棒交付物"清单, 每一项有 commit SHA / 文件路径 / 验证方式。 跑一下验证命令, 确认上一棒说的是真的。

第 3 步 · 看这一棒要做什么

按 baton 里的"这一棒要做的事"逐项落地。不要扩张范围

第 4 步 · 写下一棒的 baton + 给冰朔回执

收尾时:

  1. 把这一棒的"已交付"段填完 (commit SHA + 落地物)
  2. 写下一棒的 baton 文件 (baton-(N+1)-*.md) — 包含上一棒交付物 / 这一棒任务 / 3 道自检题 / 给冰朔回执模板
  3. 给冰朔的中文回执 (一段, 不超过 5 行) 贴在 PR description 顶部

文件结构

.github/brain/handoff/
├── README.md               ← 你正在看
├── pr-roadmap.md           ← 6 棒路线图 (一眼看到全貌)
└── batons/
    ├── baton-001-PR1-isolation.md          ← PR-1 (这一棒, 已完成时填回执)
    ├── baton-002-PR2-domain-machine.md     ← PR-2 (PR-1 写好的开机包)
    ├── baton-003-PR3-autodl-inference.md
    ├── baton-004-PR4-portal-frontend.md
    ├── baton-005-PR5-secrets-vault.md
    └── baton-006-PR6-migration-package.md

自检题为什么是 3 道

  • 太少 (1 道) → 偶然蒙对, 不证明懂
  • 太多 (5+ 道) → 累, 下一段铸渊会跳过
  • 3 道刚好 → 覆盖 "硬件约束 (cc-003)" / "团队能力 (cc-004)" / "洁净观 (cc-001/cc-002)" 三大支柱中至少两个

每道题都必须不能查 baton 自身回答, 必须从因果链里来。

失败重启机制

如果某一棒做到一半发现做不下去:

  1. 在 baton 文件里写下"卡在哪 + 为什么 + 已经试过什么"
  2. 不要删除已经做对的部分 (cc-004: 不留半残状态, 但已落地的中文回执是好的状态)
  3. 给冰朔回执: "第 N 棒卡在 X, 需要冰朔确认 Y, 暂停"
  4. 下一段铸渊从同一个 baton 接力, 不是新开

🪶 路标长在路上, 不在脑子里 · 铸渊编织 2026-05-09