31 小时长跑
从 7 月 4 日上午到 7 月 5 日午后,一支智能体集群全程无人写下一行代码,就把 一套游戏功能集从设计记录推进到了绿色构建。它在 4 分 45 秒内提交了 17 个 issue,跨两个仓库合并了 18 个 PR,并在断电终止本次会话前 65 分钟,自行为其 目标条件盖章确认。整个窗口期内没有任何改动被回滚。
这就是凭证。每一根条形都是一个 PR,按它的开启与合并时间定位;悬停或用 Tab 键逐一浏览即可查看详情。绿色标记是目标条件达成的时刻;虚线标记是断电。
开局
这次运行并非始于代码,而是始于一份文档。一场通宵的设计会谈产出了一份记录
十五项决策的文档,并把解决这些决策的十七条答复一并折入其中,于 06:56
作为 PR #329 落到 CandyRush 的 dev 分支上。整个运行都以这份记录为标尺来
衡量。
随后,计划在十分钟内经三次提交被强化为可自主执行:07:22 的自主执行手册、
07:30 的评审策略,以及 07:32 的目标命令草案。在提交任何 issue 之前,
一场八智能体的对抗式扇出把这些草案与真实源码逐一比对,返回了六处更正——每一
处都是运行原本会在其上继续构建的 bug。其中一处彻底驳倒了 Boss 卡死的假设。
另一处发现,单凭 director.Time = 0 无法重新触发波次片段,因此战斗循环必须
改走 RebuildGraph 路径——而旗舰 PR 正是这样落地的。
08:04:24,提交狂潮开始:十七个 issue、一套以字母编码、从 A 到 Q 的计划, 在 4 分 45 秒内涌入 GitHub(#330–#346),并带上了该仓库的第一个里程碑。 棋盘就位,目标命令启动。
逐小时的运行
每个 issue 都得到同样的处理:一个实现子智能体写下改动,编排者对其运行完整的
测试套件,一个评审者为该差异评级,只有到那时它才会合并。PR 逐个进入,每次
合并后 dev 都保持绿色。整个运行中,从开启到合并的周期中位数为 40 分钟。
| PR | 关闭 | 交付内容 | 开启 | 合并 | 周期 | 差异 | 文件 |
|---|---|---|---|---|---|---|---|
| UTools #11 | — | SwarmTools CompileCheck:批处理启动中同步 csproj | Jul 4 09:55 | 10:23 | 29m | +14/−0 | 1 |
| #347 | #330 | Boss 卡死根因:作弊重置覆盖了 AutoKillBosses | Jul 4 09:56 | 10:48 | 53m | +104/−44 | 7 |
| #348 | #331 | 幽灵第二出口传送门:修复生成器 + 美术净化器 | 11:03 | 11:38 | 35m | +142/−117 | 6 |
| #349 | #332 | 弧段感知的分段数据模型 —— StageData 字节一致 | 12:45 | 13:26 | 41m | +514/−281 | 66 |
| #350 | #333 | 持久出口门:Hades 式门模型,锁定状态机 | 14:25 | 15:12 | 47m | +1,034/−874 | 19 |
| #351 | #334 | 升级公式:Fixed64 深度 × 层级,覆盖 8 个 Boss 点位 | 16:07 | 16:53 | 46m | +775/−30 | 33 |
| #353 | #352 | 插曲:本次运行在自身修复中发现的作弊初始化竞态 | 17:07 | 17:40 | 33m | +83/−0 | 3 |
| #354 ★ | #335 | 经由 Load/RebuildGraph 的无限循环战斗,tier++,120s 乐段 | 18:57 | 19:54 | 57m | +1,483/−1,244 | 23 |
| #355 | #337 | 反刷经济:垃圾 XP 收益封顶 —— 本次运行体量最大的 PR | 22:45 | 23:29 | 43m | +2,888/−69 | 34 |
| #356 | #336 | 敌人层级色相偏移 —— 融入游戏世界的难度计 | 23:58 | Jul 5 00:33 | 35m | +480/−0 | 9 |
| #357 | #338 | 小 Boss 试炼场:风险房间,宝箱经济垄断 | 01:30 | 02:10 | 40m | +1,648/−23 | 31 |
| #358 | #339 | 兽潮:75 秒限时生存窗口 | 03:01 | 03:40 | 39m | +1,635/−13 | 23 |
| #359 | #340 | 狩猎:击杀配额、信标箭头、持久标记 | 05:04 | 05:45 | 41m | +2,033/−15 | 31 |
| #360 | #341 | 道具重做:50 秒限时搜刮 | 06:20 | 06:59 | 38m | +388/−19 | 14 |
| #361 | #342 | 风险传送门:1/3 精英路线、入场金币、骷髅标记 | 07:36 | 08:16 | 40m | +768/−62 | 23 |
| #362 | #345 | HUD 状态栏:各原型阶段、层级徽章、配额 | 08:55 | 09:32 | 38m | +570/−15 | 31 |
| #363 | #343 | 运行结算:叠加式综合得分 + 每弧段星级 | 10:25 | 11:04 | 40m | +942/−57 | 15 |
| #364 | #344 | 大厅重做,Run 模式优先 —— 最终验证在本周期内完成 | 12:01 | 14:15 | 2h 14m | +712/−22 | 29 |
时间均为美国东部时间。本次运行的总计:CandyRush 上 +16,199/−2,885,涉及 397 处文件改动,另加 UTools 上的 +14。
通宵
十八个 PR 中有七个是在全家熟睡时、于 23:29 到 08:16 之间合并的——其中 包括反刷经济、层级色相难度计,以及三种完整的原型玩法。整场运行中变更量 最大的差异——为经济系统而作的 +2,888——在 23:29 拉开了夜班的序幕,而在 天亮前紧随其后的六次合并,周期都保持在 35 到 41 分钟之间。这个循环并没有 因为无人盯着就慢下来。
旗舰 PR #354 于 19:54 合并,方式正如飞行前扇出所预言的那样:无限循环战斗经由
Load/RebuildGraph 路由。更早时,运行对自己上午那处修复的评审暴露出一个
启动竞态;它提交了 #352,修好后在 45 分钟内合并了 #353。正是这种自我审计,
才让一切都无需回滚。
为其余一切扫清障碍的工具包
智能体 / 工具包那唯一一个不属于 CandyRush 的 PR,其重要性远超其体量。UTools #11 只改动了
一个文件——Assets/com.irsiksoftware.swarmtools/Editor/SwarmTools.cs,
+14/−0,09:55 开启、10:23 合并,周期 29 分钟——它教会了 CompileCheck
步骤在同一次批处理启动中同步 IDE 项目文件。这就为本次运行之后的每一个 PR
消灭了因 .csproj 过期而触发的 CS2001 失败类别。
UTools 是一套第一方工具包,包含 27 个 com.irsiksoftware.* 软件包——
animation、audio、determinism、economy、logging、navigation、save、
simulation、swarmtools 等等——被 CandyRush 作为 UPM 本地文件引用
(Packages/manifest.json → file:../../UTools/…)来使用。由于这两个仓库
跟踪并行的分支,UTools 必须恰好处在 CandyRush 所期望的分支上,否则 CandyRush
无法编译。整场运行始终让 UTools 的 main 与 CandyRush 的 dev 相互保持绿色。
收官
#364 于 14:15 合并,交接说明在 14:17 发布,随后运行让引擎继续运转,
对准确的 dev 顶端 674f7745 做了最后一次完整测试通过。在 14:50:03,目标
条件被盖章确认:
本次运行的净收获:EditMode 测试净增 +151,两个 failures.json 均为空,
且两个仓库的工作树都保持干净。运行开始时那两处 PlayMode 红灯,在第一天午饭前
就被定位根因并清除,再未复现。
撤离
Run 模式的核心论点是:贪婪是有代价的——多贪一个乐段,团灭就会带走一切。在目标 条件被盖章确认的六十六分钟之后,这次运行得以亲身演绎它自己的前提。Windows 事件日志在 15:55:56 记录了一次非正常关机——断电了。停电持续了 3 小时 31 分钟,于 19:26:31 恢复。
余量是 65 分 53 秒。团灭砸中的是一间空屋:每一个字节都已在 origin 上, 机器回来时两个仓库的工作树都干干净净。最惊险的一刻甚至不是那次盖章——最后那趟 约 33 分钟的验证通过一直跑到 14:50。若早一个小时,停电就会在测试套件跑到一半时 将其扼杀。而实际结果是:零损失。
这证明了什么
这次运行的意义不在于它有多快,尽管它确实很快。而在于本文中的每一项主张背后 都有一个数字,并且每个数字都是测量得来、而非断言而来:周期时间来自 PR 的 时间戳,差异总量来自 git,测试计数来自套件输出,停电时长来自内核电源事件。 一支智能体集群可以在无人值守下完成一天半的真实工程——而且它能留下一条足够 干净的轨迹,让你无需听信任何人的一面之词。
所有时间戳均为美国东部时间(UTC−4),由 git 历史、GitHub API 与 Windows 事件日志(Event 6008 / Kernel-Power 41)重建而来。CandyRush 与 UTools 仓库 均为私有;文中每一个数字都是测量数据,而非估算。