一句总结
Fable 5 极可靠地遵循简短的、原则级的指令。Christopher Allen 之前为了让旧模型不离轨而搭的整套脚手架——检查清单、合规脚本、同步层——一夜之间成了死重。但有一个老问题随自主性变强而加剧了:session 还是会忘事。
他开源了 claude-workstream-kit:一个给 Claude Code 项目用的、git 版本化的、轻量的工作追踪系统,Fable-first 设计。这是他从一个大得多的私人系统重建时剩下的东西——而"扔掉"那部分反而是这文章最有意思的地方。
重建税
AI 编码 session 天生是 ephemeral。工作不是。 一个特性可能跨一周 session。一场迁移可能跨一打 session。一个研究问题可能演变一个月。
当工作状态只活在会话历史里,每个新 session 都在付 Christopher 称之为"重建税"的成本:重述目标、重发现过去定了什么、为什么定。看得见的成本是时间和 token。更安静的成本是漂移——session 3 仔细做的决定,session 9 被不知不觉地改成了别的,因为没东西记下原始推理。
每个认真用这些工具的人都感受过这件事。常见的 workaround 各管一片:
- 不断长大的 CLAUDE.md——能跨 session,但每次未来 session 都加载,且里头东西从不关闭。变成杂物抽屉。
- Harness 自带任务追踪和 plan mode——单个 session 内好,但状态不在你的 repo 里,也不旅行。
- Agent memory——给教训和偏好用的,account-side,按 fact。不是一个项目工作的账本。
- GitHub Issues / PRs——团队场景的正确答案,但状态 service-side,要网络和认证,适配代码交付而不是探索。
- 仓库里的 SPEC.md——能活能旅行,但没有恢复指针、没"已决 vs 开放"记录、没完成的定义。
没一个提供的是:项目范围、git 版本化、可移植的工作状态——活过 harness 能做的一切,像测试或文档一样跟着 repo 走。
Workstream:git 里的两个文件
这个 kit 的回答刻意小。一个 workstream 是一个多 session 工作的单元,跟踪在两个 markdown 文件里,提交到你的 repo:
workstream.md——一个工作片断里所有耐久的东西:目的、checkbox backlog、决策与推理、教训,以及——这部分重要——创建时写的可证伪的删除标准:在什么条件下这个工作算 done、可以归档。ACTIVE.md——一个项目级指针:什么是 active 的、当前任务、单一的下一步动作、什么被 block。
Git 做重活。clone repo 整个工作状态跟着走。提交历史就是进度日志。文件是平面 frontmatter 加 checkbox,一个 shell 一行命令——或者一个便宜的小模型——不用任何解析机制就能读项目状态。最后那个属性是让委派和自治验证变实用的原因。
围绕两个文件:
- 四个短的 lifecycle skills(create, work, close, handoff)
- 三个钉死的 subagents(一个只读 Haiku scout,一个吃 bounded packets 的 Sonnet worker,一个 fresh-context 验证器)
- 一个 session-start hook,弹出你的状态并标记陈旧
- 一个幂等安装器
零依赖用户级配置。 拷进一个项目就能跑。
搭建过程教给我的事
两个发现重塑了为 Fable 重建时的设计。
强模型需要更少脚手架,不是更多
前辈系统有多阶段检查清单、有合规脚本验证模型真做了那些步骤、有同步层传播规则更新。那堆东西的大多数是为管理模型而存在,不是为工作而存在。
Fable 级别的模型把经济学反过来:它们可靠地遵循原则级指令——而过度的规定反而主动劣化它们的输出。 这个 kit 里每个 skill 大约 100 行。合规机器被一条规则取代:checkbox 只在有引用证据——一个 commit hash、一条命令的输出——人能在门禁前检查时关闭。
这点被直接验证——也是我真正觉得 remarkable 的部分:这个 kit 是在它自己出货的约定下、被一个自主的 Fable session 大量设计、构建、测试的。 在验收测试里,完全自主的 session 跑了整个生命周期,从 skill 文本里单独守住了所有人授权约束——不自动启动工作、不自动通过检查点、不自证自己的关闭。没有强制执行代码。
工作应该被好好结束
大多数追踪处理启动和处理;几乎不处理结束。没关的工作是知识死掉的地方。所以关闭在这个 kit 里是头等阶段:按标准的证据提交给一个决定的人,在归档前必须到达 workstream 外部一个具名目的地的教训,一个由 git tag 加一行索引组成的归档——可恢复、可搜、不再占任何人的 context 窗口。
用起来
这个 kit 故意保持小,并承诺一直小下去:没有同步层、没有规则 tier、不重复平台已做的事。里头每样东西都得过一道关——这是否产出了一个平台原生没法产出的 artifact 或人类决策?
git clone https://github.com/ChristopherA/claude-workstream-kit
./claude-workstream-kit/install.sh /path/to/your/project
BSD-2-Clause-Patent 许可。完整设计原理——包括每个替代方案真正擅长什么——在 repo 的 docs 里。 如果你跑跨 session 的 Claude Code 工作,我想听什么活过了你的 compactions。
翻译
这文章最值得收藏的不是 kit 本身,是它揭示的脚手架经济学的反转:
| 旧模型时代 | Fable 5 时代 |
|---|---|
| 多阶段检查清单 | 原则级指令,~100 行 skill |
| 合规脚本验证步骤 | "checkbox 关闭需要带证据(commit hash/命令输出)" |
| 同步层传播规则更新 | 没了 |
| Rule tiers 分类管理 | 一条引用证据规则 |
| 强制执行代码 | 模型自己读懂并遵守 |
而真正没解决、反而变严重的问题:session 死亡时工作状态跟着死。 Kit 提供的解(两个 git 化的 md + lifecycle skills)轻得像 5 个文件。但它捕捉了一个关键认识——工作状态应该在 repo 里(git 化、可移植),不该在 harness 里(绑定特定工具、特定 session)。
这套逻辑对今天所有做 Agent 的人都成立:当 harness 是临时的、session 是 ephemeral 的,工作状态必须自己活。 一旦工作状态活过 harness,工作就能被检查、被接手、被恢复、被任何下一个 session 接住——无论那个 session 是 Fable 5、GPT-5.5、还是 Sonnet。