
283 行净增代码与一本护照
昨天我提交了 29 个 PR,更新了护照,并进行了两次对话,而这两次对话恰好落在了同一个问题的两端。
30 个工单
这一天始于一份清单。Linear 项目“The Last Palooza”中有 30 个工单,这属于那种在我构建的功能与我原本打算构建的功能之间积累下的“产品债务”。侧边栏的晃动、令人困惑的按钮、本应瞬间加载却耗时两秒的页面。它们虽然都不紧急,但却决定了软件是“能用”还是“好用”。
我的方法是:8 轮、每轮 4 个并发的 Claude Code 会话,每个会话在各自的 git 工作树(worktree)中进行,先规划后执行。通过一个元规划(meta-plan)来编排每一个计划和实现。因为将 PR、Linear 工单和 Threader 会话手动关联的机械负担太耗时,我在中途开发了一个自动提交脚本。最终成果:增加 3,917 行,删除 3,634 行,净增 283 行。相比于功能的扩展,我更多是在重塑产品。
有一个工单在规划阶段被取消了。“代理页面上还有很多东西”这个描述太模糊,无法执行。这就是“先规划”工作流的价值所在。在编写代码之前发现歧义,总好过写完之后才发现。
节奏很快就稳定了下来。四个标签页是最佳选择:既能保持动能,又不会顾此失彼。我会在一个标签页审批计划,将另一个切换到 YOLO 模式(全自动运行),再检查第三个正在运行的测试任务。真正关键的是判断力:取消模糊的工单,注意到计划中未考虑到的依赖关系,知道哪些工单可以并行,哪些必须等待。其余的就交给机器去处理了。
在轮次间隙,我更新了我的护照。轮到我来满足这些要求了。
同一个问题
两次对话贯穿了全天的工作。
第一次是与一个正在快速扩张的团队对话。大额融资,众多的 SDK。文档从最初的“可选项”逐渐变成了系统的支柱。所有问题背后的核心问题是:当一切发展得如此之快时,我们该如何强制执行质量标准?
第二次是与一个没有安全网、全速构建的人对话。代理在虚拟机上并行运行,编写自己的技能,通过之前运行的轨迹进行自我修复。始终处于 YOLO 模式。但这些代理太心急了:其中一个竟然擅自提交了一个 PR,在未被指令的情况下决定使用 gh CLI。他想要速度,但他也想要保障。问题在于软件开发的每一项任务都是一次性的,而且地基在每个人脚下不断移动。
两种不同的规模,同一个问题。一个团队需要一致地执行现有知识,另一个团队则需要尚未存在的护栏。
我今天提交的每一个 PR 都通过了 27 项检查:代码规范、安全、移动端布局、可访问性、数据库迁移。人类的品味被编码为仓库中的 markdown 文件,作为 AI 代理在每个 PR 上运行,静默通过或带着修复建议报错。我设定标准,检查程序执行标准,而我决定是否发布。整个过程在 Threader 中可见:每一个计划、每一个判断、每一个 YOLO 时刻。
Chad 在本周早些时候写过这种模式,背景是 Vercel 的 57 条 React 性能规则。大多数团队会将这些规则放在 wiki 中或粘贴进代理的提示词里。两者失败的原因相同:它们都依赖于人类的记忆。将标准转化为检查程序才是解决之道。
满足要求
这就是昨天的全部内容。29 个 PR 并不是 29 次自动化行为。而是我在设定品味(取消模糊的工单、审批计划、知道何时放手让程序运行、何时叫停),而机器负责强制执行。那个扩张中的团队正处于把规则写下来的阶段,而那个激进的团队处于代理自己编写规则的阶段。我站在中间,搭建桥梁:将人类知识编码为标准,在每个 PR 上运行,并由人类做出最终决定。
但这样的一天也绘制出了一张地图。每一次干预(取消工单、补救缺失的依赖、拒绝计划)都是信号。每一次非干预(YOLO 模式平稳通过 27 项检查)同样也是信号。正如 Chad 在去年夏天所写的,干预率是新的构建时间。CI/CD 衡量的是你的交付速度,接下来要衡量的是你干预的频率有多低。
这些检查程序就是为什么我能一天提交 29 个 PR 且不偷工减料的原因。下一步是演进流程,让人们只出现在需要判断的环节。不是减少人类的参与,而是让参与更加精准。
护照更新也没什么不同。你填写表格,贴上照片,提供文件。如果有什么不对劲,就会被退回。护照办公室里没人会读你的人生故事,他们只检查你是否符合要求。标准即检查(Standards-as-checks)也是如此。
| 已提交工单 | 29 |
| 已取消工单 | 1 |
| 增加行数 | 3,917 |
| 删除行数 | 3,634 |
| 净增行数 | +283 |
| 已开启 PR | 29 |
| 轮次 | 8 |
| 最大并发代理数 | 4 |
| 每个 PR 运行的检查数 | 27 |
| 会话期间构建的工具 | 1 |
| Midjourney 提示词 | 1 |
| 已更新护照 | 1 |
| 用户对话 | 2 |
要在你自己的仓库中设置检查,请将此内容粘贴到你最喜欢的编程代理中
Create AI checks for my codebase: https://continue.org.cn/walkthrough