你准备给常用工具做一次大更新。新功能已经写完,测试也能通过,但最怕的是某个角落藏着问题:现在修只是小改,正式发布后再修,却可能破坏用户已经依赖的用法。Simon Willison 把这轮“发版前体检”交给了 Claude Fable。结果不是一场演示,而是一次有成本、提交记录和具体缺陷的真实开源项目迭代。
不过先说清楚:目前发布的是 sqlite-utils 4.0rc2,而非 4.0 稳定版。本文所有数据和效果描述也都来自 Willison 本人,尚无独立信源交叉验证。
先别急着把 RC 当成正式版
sqlite-utils 是 Willison 维护的一套 SQLite 命令行和 Python 工具,用来创建、转换和查询小型数据库。它有真实用户,也要处理兼容性,因此比临时写一个小程序更能检验编码智能体的工程能力。
Willison 原本想从 4.0rc1 推进到自己能够放心发布的 4.0 stable。RC 是 Release Candidate,即候选发布版:功能通常已经冻结,接下来主要寻找正式版前遗漏的问题。
这次又是主版本升级。按照语义化版本 SemVer,主版本变化可以包含不兼容改动。Willison 希望这种升级尽量少见,所以尤其在意 API——程序之间约定好的调用方式——和行为边界。一旦 4.0 正式发布,某些设计缺陷可能无法用小修小补解决,甚至会迫使项目再次升级主版本。
37次对话,换来34次提交
Willison 在 iPhone 上通过 Claude Code for web 发出第一个任务:对 4.0 正式发布做最后审查,重点寻找那些以后修复会造成破坏性变化的问题。
Claude Fable 给出的报告把 5 个问题列为“release blockers”,也就是足以阻止当前版本发布的严重缺陷。随后双方进行了 37 次 prompts——即维护者向智能体发出的任务或指令——形成 34 个 commits。Commit 是一次有记录、可检查的代码提交。这轮变更涉及 30 个文件,新增 1,321 行、删除 190 行。
Willison 称这些代码“mostly written by Claude Fable”,并给出约 149.25 美元的成本。这个措辞说明智能体承担了大部分代码编写,但“mostly”没有明确口径;材料也没有拆解费用如何计算。
最严重的问题,会让修改悄悄消失
5 个阻断问题中,Willison 重点展示了 Table.delete_where() 的事务缺陷。事务可以理解为数据库的一次成套操作:只有正式提交,修改才算真正保存。
报告称,delete_where() 执行删除后没有提交事务,数据库连接因此一直停留在事务进行中的状态。更麻烦的是,后续操作也可能无法真正提交。示例中,程序先删除一行,再插入新行和新表,关闭并重新打开数据库后,这些修改全部消失,连最初被删除的数据也恢复了。
Willison 称自己此前没有遇到这些问题,并表示庆幸没有直接发布。不过他也指出,这个具体缺陷本身仍可在 4.0.1 补丁版中修复,不至于迫使项目升级到 5.0。真正需要在主版本发布前谨慎处理的,是会长期锁死接口或行为的设计问题。
真正有价值的是分工样本
编码智能体不只是补全几行代码。它可以读取整个仓库、修改文件、运行测试,再根据结果反复修正。但这个案例也没有显示人类维护者退出了流程。
Willison 决定审查目标,强调兼容性风险,与智能体逐项处理反馈,并最终承担发布责任。Claude Fable 则负责大范围检查、提出问题和生成大量修改。换句话说,149.25 美元买到的不是“无人值守发版”,而是一段被维护者持续引导和验收的工程劳动。
这也是数字本身值得关注的原因。37 次指令、34 次提交和 30 个文件,让编码智能体的投入与产出第一次变得相对具体。它没有证明智能体可以独立维护软件,却提供了一个观察成本、产量和质量把关如何组合的完整样本。
局限与未知
- 4.0rc2 于 2026 年 7 月 5 日发布,但它仍是候选版。材料没有确认 4.0 stable 已经完成,也没有披露后续验证结果。
- 现有数字、缺陷描述和“主要由 Claude 编写”的判断均来自 Willison;没有提交记录、完整发布页或第三方复现可供核对。
- 149.25 美元的核算口径没有说明,另外 4 个 release blockers 及所谓其他设计改进也未在材料中展开,因此无法评价整轮修改的总体质量。