compounding-loop 0.1.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +40 -6
  2. package/dist/cli/checkLanes.js +60 -0
  3. package/dist/cli/checkLanes.js.map +1 -0
  4. package/dist/cli/claim.js +84 -0
  5. package/dist/cli/claim.js.map +1 -0
  6. package/dist/cli/doctor.js +54 -0
  7. package/dist/cli/doctor.js.map +1 -0
  8. package/dist/cli/index.js +253 -4
  9. package/dist/cli/index.js.map +1 -1
  10. package/dist/cli/init.js +2 -1
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/cli/laneRound.js +96 -0
  13. package/dist/cli/laneRound.js.map +1 -0
  14. package/dist/cli/laneStatus.js +54 -0
  15. package/dist/cli/laneStatus.js.map +1 -0
  16. package/dist/cli/lanesInit.js +56 -0
  17. package/dist/cli/lanesInit.js.map +1 -0
  18. package/dist/cli/lock.js +62 -0
  19. package/dist/cli/lock.js.map +1 -0
  20. package/dist/cli/loops.js +30 -3
  21. package/dist/cli/loops.js.map +1 -1
  22. package/dist/cli/new.js +5 -5
  23. package/dist/cli/new.js.map +1 -1
  24. package/dist/cli/next.js +18 -0
  25. package/dist/cli/next.js.map +1 -0
  26. package/dist/cli/pause.js +81 -0
  27. package/dist/cli/pause.js.map +1 -0
  28. package/dist/cli/run.js +119 -19
  29. package/dist/cli/run.js.map +1 -1
  30. package/dist/cli/runs.js +83 -0
  31. package/dist/cli/runs.js.map +1 -0
  32. package/dist/cli/shipCheck.js +59 -0
  33. package/dist/cli/shipCheck.js.map +1 -0
  34. package/dist/core/doctor.js +49 -0
  35. package/dist/core/doctor.js.map +1 -0
  36. package/dist/core/laneRound.js +63 -0
  37. package/dist/core/laneRound.js.map +1 -0
  38. package/dist/core/laneStatus.js +82 -0
  39. package/dist/core/laneStatus.js.map +1 -0
  40. package/dist/core/lanes.js +149 -0
  41. package/dist/core/lanes.js.map +1 -0
  42. package/dist/core/lanesInit.js +143 -0
  43. package/dist/core/lanesInit.js.map +1 -0
  44. package/dist/core/next.js +34 -0
  45. package/dist/core/next.js.map +1 -0
  46. package/dist/core/parse/changelog.js +41 -0
  47. package/dist/core/parse/changelog.js.map +1 -0
  48. package/dist/core/parse/claim.js +24 -0
  49. package/dist/core/parse/claim.js.map +1 -0
  50. package/dist/core/parse/controlRoom.js +38 -0
  51. package/dist/core/parse/controlRoom.js.map +1 -0
  52. package/dist/core/parse/index.js +12 -0
  53. package/dist/core/parse/index.js.map +1 -0
  54. package/dist/core/parse/markers.js +20 -0
  55. package/dist/core/parse/markers.js.map +1 -0
  56. package/dist/core/parse/paused.js +26 -0
  57. package/dist/core/parse/paused.js.map +1 -0
  58. package/dist/core/parse/runs.js +132 -0
  59. package/dist/core/parse/runs.js.map +1 -0
  60. package/dist/core/parse/task.js +96 -0
  61. package/dist/core/parse/task.js.map +1 -0
  62. package/dist/core/repo.js +2 -7
  63. package/dist/core/repo.js.map +1 -1
  64. package/dist/core/runPrompt.js +9 -3
  65. package/dist/core/runPrompt.js.map +1 -1
  66. package/dist/core/shipCheck.js +45 -0
  67. package/dist/core/shipCheck.js.map +1 -0
  68. package/dist/core/table.js +22 -1
  69. package/dist/core/table.js.map +1 -1
  70. package/dist/server/checkLabels.js +27 -0
  71. package/dist/server/checkLabels.js.map +1 -0
  72. package/dist/server/controls.js +72 -0
  73. package/dist/server/controls.js.map +1 -0
  74. package/dist/server/data.js +28 -8
  75. package/dist/server/data.js.map +1 -1
  76. package/dist/server/events.js +1 -0
  77. package/dist/server/events.js.map +1 -1
  78. package/dist/server/health.js +47 -8
  79. package/dist/server/health.js.map +1 -1
  80. package/dist/server/index.js +29 -0
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/laneChecks.js +25 -0
  83. package/dist/server/laneChecks.js.map +1 -0
  84. package/dist/server/live/build.js +163 -0
  85. package/dist/server/live/build.js.map +1 -0
  86. package/dist/server/live/github.js +54 -0
  87. package/dist/server/live/github.js.map +1 -0
  88. package/dist/server/live/index.js +9 -0
  89. package/dist/server/live/index.js.map +1 -0
  90. package/dist/server/live/merge.js +16 -0
  91. package/dist/server/live/merge.js.map +1 -0
  92. package/dist/server/live/urls.js +59 -0
  93. package/dist/server/live/urls.js.map +1 -0
  94. package/dist/server/loops.js +146 -39
  95. package/dist/server/loops.js.map +1 -1
  96. package/dist/server/roundState.js +27 -0
  97. package/dist/server/roundState.js.map +1 -0
  98. package/dist/server/runs.js +81 -0
  99. package/dist/server/runs.js.map +1 -0
  100. package/dist/server/static-export.js +22 -1
  101. package/dist/server/static-export.js.map +1 -1
  102. package/dist/server/taskBullets.js +33 -0
  103. package/dist/server/taskBullets.js.map +1 -0
  104. package/dist/server/this-repo.json +1574 -0
  105. package/dist/web/assets/index-BOPytDNU.js +53 -0
  106. package/dist/web/assets/index-BSHEI7fa.css +2 -0
  107. package/dist/web/index.html +3 -3
  108. package/method/COMPOUNDING_LOOP.md +55 -0
  109. package/method/example/K-0002.md +16 -0
  110. package/method/example/K-0003.md +16 -0
  111. package/method/retro.md +7 -0
  112. package/package.json +6 -1
  113. package/plugin/.claude-plugin/plugin.json +1 -1
  114. package/plugin/commands/loop-lanes.md +11 -0
  115. package/plugin/commands/loop-next.md +11 -0
  116. package/plugin/commands/loop-pause.md +10 -0
  117. package/runners/github-actions/lanes.yml +156 -0
  118. package/runners/local/README.md +4 -1
  119. package/runners/local/compounding-loop.service +20 -0
  120. package/runners/local/compounding-loop.timer +11 -0
  121. package/runners/local/launchd.plist +36 -0
  122. package/runners/routine/README.md +38 -1
  123. package/runners/routine/control-room-prompt.md +16 -0
  124. package/runners/routine/lane-prompt.md +12 -0
  125. package/runners/routine/prompt.md +3 -3
  126. package/templates/chrome-extension/extension/icons/icon128.png +0 -0
  127. package/templates/chrome-extension/extension/icons/icon16.png +0 -0
  128. package/templates/chrome-extension/extension/icons/icon48.png +0 -0
  129. package/templates/chrome-extension/extension/manifest.json +19 -3
  130. package/templates/chrome-extension/gitignore +1 -1
  131. package/templates/lanes/README.md +23 -0
  132. package/templates/lanes/ci-check-lanes.yml +38 -0
  133. package/templates/lanes/claude-section.md +20 -0
  134. package/templates/lanes/control-room.md +3 -0
  135. package/templates/lanes/outbox.md +5 -0
  136. package/templates/lanes/task.md +36 -0
  137. package/templates/static-site/.ai/loop-prompt.md +2 -2
  138. package/templates/static-site/CLAUDE.md +2 -0
  139. package/templates/static-site/gitignore +1 -1
  140. package/dist/web/assets/index-BDdtnG33.js +0 -49
  141. package/dist/web/assets/index-D3-N8DN4.css +0 -2
@@ -0,0 +1,1574 @@
1
+ {
2
+ "loop": {
3
+ "id": "compounding-loop",
4
+ "name": "compounding-loop (this repo)",
5
+ "url": "https://minntooos.github.io/Compounding-Loop/",
6
+ "demoUrl": "https://minntooos.github.io/Compounding-Loop/",
7
+ "repoUrl": "https://github.com/Minntooos/Compounding-Loop",
8
+ "state": "done",
9
+ "reason": "rounds 1 to 3 built unattended by five parallel lanes, all done; round 4 is running now",
10
+ "round": 3,
11
+ "roundsTotal": 4,
12
+ "roundLabel": "Round 3 done · 0.3.0",
13
+ "run": 63,
14
+ "runLimit": 350,
15
+ "lastCommit": {
16
+ "sha": "b3b51a5",
17
+ "at": "2026-10-11T14:51:27.000Z",
18
+ "message": "Release 0.3.0: version bump and CHANGELOG",
19
+ "author": "Minntooos",
20
+ "lane": "control"
21
+ },
22
+ "snapshotAt": "2026-10-11T14:51:27.000Z",
23
+ "lanes": [
24
+ {
25
+ "name": "core",
26
+ "state": "done",
27
+ "run": 14,
28
+ "limit": 70,
29
+ "lastCommit": {
30
+ "sha": "1256361",
31
+ "subject": "core: round 3 lane DONE",
32
+ "at": "2026-10-11T07:10:24.000Z"
33
+ },
34
+ "locked": false,
35
+ "unanswered": []
36
+ },
37
+ {
38
+ "name": "kit",
39
+ "state": "done",
40
+ "run": 9,
41
+ "limit": 70,
42
+ "lastCommit": {
43
+ "sha": "5dd559c",
44
+ "subject": "kit: lane DONE for round 3",
45
+ "at": "2026-10-11T10:22:58.000Z"
46
+ },
47
+ "locked": false,
48
+ "unanswered": []
49
+ },
50
+ {
51
+ "name": "server",
52
+ "state": "done",
53
+ "run": 6,
54
+ "limit": 70,
55
+ "lastCommit": {
56
+ "sha": "d03b48a",
57
+ "subject": "server: round 3 lane DONE",
58
+ "at": "2026-10-11T07:33:57.000Z"
59
+ },
60
+ "locked": false,
61
+ "unanswered": []
62
+ },
63
+ {
64
+ "name": "web",
65
+ "state": "done",
66
+ "run": 21,
67
+ "limit": 70,
68
+ "lastCommit": {
69
+ "sha": "4a797ed",
70
+ "subject": "web: run 8, lane DONE for round 3",
71
+ "at": "2026-10-11T12:46:04.000Z"
72
+ },
73
+ "locked": false,
74
+ "unanswered": []
75
+ },
76
+ {
77
+ "name": "docs",
78
+ "state": "done",
79
+ "run": 13,
80
+ "limit": 70,
81
+ "lastCommit": {
82
+ "sha": "4574135",
83
+ "subject": "docs: retro, dashboard page covers lanes and live demo, drop stale screenshot script, lane DONE",
84
+ "at": "2026-10-11T11:58:52.000Z"
85
+ },
86
+ "locked": false,
87
+ "unanswered": []
88
+ }
89
+ ],
90
+ "timeline": [
91
+ {
92
+ "sha": "b3b51a5",
93
+ "at": "2026-10-11T14:51:27.000Z",
94
+ "message": "Release 0.3.0: version bump and CHANGELOG",
95
+ "author": "Minntooos",
96
+ "lane": "control"
97
+ },
98
+ {
99
+ "sha": "69cedb3",
100
+ "at": "2026-10-11T14:11:45.000Z",
101
+ "message": "control room: product DONE for round 3",
102
+ "author": "Claude",
103
+ "lane": "control"
104
+ },
105
+ {
106
+ "sha": "4a797ed",
107
+ "at": "2026-10-11T12:46:04.000Z",
108
+ "message": "web: run 8, lane DONE for round 3",
109
+ "author": "Claude",
110
+ "lane": "web"
111
+ },
112
+ {
113
+ "sha": "4574135",
114
+ "at": "2026-10-11T11:58:52.000Z",
115
+ "message": "docs: retro, dashboard page covers lanes and live demo, drop stale screenshot script, lane DONE",
116
+ "author": "Claude",
117
+ "lane": "docs"
118
+ },
119
+ {
120
+ "sha": "778f216",
121
+ "at": "2026-10-11T11:48:41.000Z",
122
+ "message": "web: loop header shows the run budget as a bar",
123
+ "author": "Claude",
124
+ "lane": "web"
125
+ },
126
+ {
127
+ "sha": "e3bb7b4",
128
+ "at": "2026-10-11T10:58:04.000Z",
129
+ "message": "docs: dashboard page uses the refreshed fleet screenshot, run 7 handoff",
130
+ "author": "Claude",
131
+ "lane": "docs"
132
+ },
133
+ {
134
+ "sha": "e1e36c2",
135
+ "at": "2026-10-11T10:51:46.000Z",
136
+ "message": "web: loop tabs scroll in one row, run 6 handoff, outbox for docs",
137
+ "author": "Claude",
138
+ "lane": "web"
139
+ },
140
+ {
141
+ "sha": "97233f6",
142
+ "at": "2026-10-11T10:48:41.000Z",
143
+ "message": "web: after screenshots in demo mode (strip, chip, self-build loop), design review recorded",
144
+ "author": "Claude",
145
+ "lane": "web"
146
+ },
147
+ {
148
+ "sha": "5dd559c",
149
+ "at": "2026-10-11T10:22:58.000Z",
150
+ "message": "kit: lane DONE for round 3",
151
+ "author": "Claude",
152
+ "lane": "kit"
153
+ },
154
+ {
155
+ "sha": "cd1e191",
156
+ "at": "2026-10-11T09:56:29.000Z",
157
+ "message": "docs: run 6 handoff, still waiting on web screenshots",
158
+ "author": "Claude",
159
+ "lane": "docs"
160
+ },
161
+ {
162
+ "sha": "6be797c",
163
+ "at": "2026-10-11T09:54:52.000Z",
164
+ "message": "web: lane progress on building cards, hide empty run bars, CI and live-site rows for the self card",
165
+ "author": "Claude",
166
+ "lane": "web"
167
+ },
168
+ {
169
+ "sha": "8745e76",
170
+ "at": "2026-10-11T09:23:51.000Z",
171
+ "message": "kit: lane-aware retro and handoff wording, tested",
172
+ "author": "Claude",
173
+ "lane": "kit"
174
+ },
175
+ {
176
+ "sha": "9878884",
177
+ "at": "2026-10-11T08:56:11.000Z",
178
+ "message": "docs: run 5 handoff, still waiting on web screenshots",
179
+ "author": "Claude",
180
+ "lane": "docs"
181
+ },
182
+ {
183
+ "sha": "e42b59f",
184
+ "at": "2026-10-11T08:25:10.000Z",
185
+ "message": "kit: systemd units get PATH, linger and verify notes from review; handoff",
186
+ "author": "Claude",
187
+ "lane": "kit"
188
+ },
189
+ {
190
+ "sha": "041ea27",
191
+ "at": "2026-10-11T08:24:35.000Z",
192
+ "message": "kit: systemd user service and timer for the local runner, tested",
193
+ "author": "Claude",
194
+ "lane": "kit"
195
+ },
196
+ {
197
+ "sha": "52fb0b9",
198
+ "at": "2026-10-11T07:56:15.000Z",
199
+ "message": "docs: run 4 handoff, waiting on web screenshots",
200
+ "author": "Claude",
201
+ "lane": "docs"
202
+ },
203
+ {
204
+ "sha": "1c6e51a",
205
+ "at": "2026-10-11T07:51:16.000Z",
206
+ "message": "web: review fixes (note role, safe reset time, notice under h1), handoff",
207
+ "author": "Claude",
208
+ "lane": "web"
209
+ },
210
+ {
211
+ "sha": "03be106",
212
+ "at": "2026-10-11T07:51:16.000Z",
213
+ "message": "web: shared Notice, paused-live note when rate limited, sticky day headings",
214
+ "author": "Claude",
215
+ "lane": "web"
216
+ },
217
+ {
218
+ "sha": "2c4db3a",
219
+ "at": "2026-10-11T07:51:06.000Z",
220
+ "message": "control: owner review notes for web (self card progress, run bars, CI row)",
221
+ "author": "Minntooos",
222
+ "lane": "control"
223
+ },
224
+ {
225
+ "sha": "d03b48a",
226
+ "at": "2026-10-11T07:33:57.000Z",
227
+ "message": "server: round 3 lane DONE",
228
+ "author": "Claude",
229
+ "lane": "server"
230
+ },
231
+ {
232
+ "sha": "21dab1c",
233
+ "at": "2026-10-11T07:24:44.000Z",
234
+ "message": "kit: optional control-room job in the lanes workflow",
235
+ "author": "Claude",
236
+ "lane": "kit"
237
+ },
238
+ {
239
+ "sha": "1256361",
240
+ "at": "2026-10-11T07:10:24.000Z",
241
+ "message": "core: round 3 lane DONE",
242
+ "author": "Claude",
243
+ "lane": "core"
244
+ },
245
+ {
246
+ "sha": "40e499c",
247
+ "at": "2026-10-11T06:59:17.000Z",
248
+ "message": "docs: handoff and outbox",
249
+ "author": "Claude",
250
+ "lane": "docs"
251
+ },
252
+ {
253
+ "sha": "d5ae9ea",
254
+ "at": "2026-10-11T06:59:08.000Z",
255
+ "message": "docs: record the fresh-install test in the Round 3 audit",
256
+ "author": "Claude",
257
+ "lane": "docs"
258
+ },
259
+ {
260
+ "sha": "8aa4fa6",
261
+ "at": "2026-10-11T06:58:26.000Z",
262
+ "message": "docs: launch drafts lead with the live self-build; honest check-lanes FAQ; CHANGELOG",
263
+ "author": "Claude",
264
+ "lane": "docs"
265
+ },
266
+ {
267
+ "sha": "bb8ee3f",
268
+ "at": "2026-10-11T06:58:01.000Z",
269
+ "message": "docs: README live-demo link, snapshot FAQ, /loop-lanes in getting-started",
270
+ "author": "Claude",
271
+ "lane": "docs"
272
+ },
273
+ {
274
+ "sha": "8a34f9b",
275
+ "at": "2026-10-11T06:52:45.000Z",
276
+ "message": "web: live GitHub mode with snapshot fallback, live/snapshot chip, mocked-GitHub e2e",
277
+ "author": "Claude",
278
+ "lane": "web"
279
+ },
280
+ {
281
+ "sha": "919a9ad",
282
+ "at": "2026-10-11T06:45:46.000Z",
283
+ "message": "server: self snapshot covers rounds 1 and 2; handoff",
284
+ "author": "Claude",
285
+ "lane": "server"
286
+ },
287
+ {
288
+ "sha": "fe8bb16",
289
+ "at": "2026-10-11T06:42:09.000Z",
290
+ "message": "server: live commits fall back to the author date",
291
+ "author": "Claude",
292
+ "lane": "server"
293
+ },
294
+ {
295
+ "sha": "60f87eb",
296
+ "at": "2026-10-11T06:39:56.000Z",
297
+ "message": "server: live GitHub mappers, static CSP meta and live.json, round 3 audit",
298
+ "author": "Claude",
299
+ "lane": "server"
300
+ },
301
+ {
302
+ "sha": "72cacc3",
303
+ "at": "2026-10-11T06:30:42.000Z",
304
+ "message": "control: nudge server lane (Run 0/20 in round 3)",
305
+ "author": "Claude",
306
+ "lane": "control"
307
+ },
308
+ {
309
+ "sha": "3174cd5",
310
+ "at": "2026-10-11T06:25:38.000Z",
311
+ "message": "kit: plugin /loop-lanes command",
312
+ "author": "Claude",
313
+ "lane": "kit"
314
+ },
315
+ {
316
+ "sha": "cfbd75a",
317
+ "at": "2026-10-11T06:15:21.000Z",
318
+ "message": "core: trust a dead lock pid only on the host that wrote it; handoff",
319
+ "author": "Claude",
320
+ "lane": "core"
321
+ },
322
+ {
323
+ "sha": "b32b85d",
324
+ "at": "2026-10-11T06:13:42.000Z",
325
+ "message": "core: a session lock records its pid; a dead holder is stale at once",
326
+ "author": "Claude",
327
+ "lane": "core"
328
+ },
329
+ {
330
+ "sha": "963491e",
331
+ "at": "2026-10-11T06:11:59.000Z",
332
+ "message": "core: loop run --as lets a claimant's own run proceed",
333
+ "author": "Claude",
334
+ "lane": "core"
335
+ },
336
+ {
337
+ "sha": "eca435d",
338
+ "at": "2026-10-11T06:00:59.000Z",
339
+ "message": "web: skeleton loading state, handoff and outbox",
340
+ "author": "Claude",
341
+ "lane": "web"
342
+ },
343
+ {
344
+ "sha": "1fff83d",
345
+ "at": "2026-10-11T05:59:26.000Z",
346
+ "message": "web: lane claims and run bars in the Lanes tab, commits-per-day chart with table alternative",
347
+ "author": "Claude",
348
+ "lane": "web"
349
+ },
350
+ {
351
+ "sha": "fd3b16c",
352
+ "at": "2026-10-11T05:59:06.000Z",
353
+ "message": "docs: handoff and outbox for run 2",
354
+ "author": "Claude",
355
+ "lane": "docs"
356
+ },
357
+ {
358
+ "sha": "a4e66b9",
359
+ "at": "2026-10-11T05:58:57.000Z",
360
+ "message": "docs: changelog Unreleased for 0.3.0 so far",
361
+ "author": "Claude",
362
+ "lane": "docs"
363
+ },
364
+ {
365
+ "sha": "345a243",
366
+ "at": "2026-10-11T05:58:40.000Z",
367
+ "message": "docs: add team workflow page (claim, next, release), link it from README, lanes and getting started",
368
+ "author": "Claude",
369
+ "lane": "docs"
370
+ },
371
+ {
372
+ "sha": "be07c68",
373
+ "at": "2026-10-11T05:53:03.000Z",
374
+ "message": "web: timeline grouped by day with lane colours, lane filter and UTC times",
375
+ "author": "Claude",
376
+ "lane": "web"
377
+ },
378
+ {
379
+ "sha": "2fe5ee8",
380
+ "at": "2026-10-11T05:49:27.000Z",
381
+ "message": "web: card edge cases (no total hides the bar, raw numbers in text), surface-2 token, handoff",
382
+ "author": "Claude",
383
+ "lane": "web"
384
+ },
385
+ {
386
+ "sha": "759cd35",
387
+ "at": "2026-10-11T05:47:38.000Z",
388
+ "message": "web: fleet cards with round and run-budget bars, self-build card first, empty rows omitted",
389
+ "author": "Claude",
390
+ "lane": "web"
391
+ },
392
+ {
393
+ "sha": "66b4d56",
394
+ "at": "2026-10-11T05:25:24.000Z",
395
+ "message": "core: note the last-test.json writer question",
396
+ "author": "Claude",
397
+ "lane": "core"
398
+ },
399
+ {
400
+ "sha": "ddd2bcd",
401
+ "at": "2026-10-11T05:25:14.000Z",
402
+ "message": "core: claim rule in the lane prompt that loop run prepends",
403
+ "author": "Claude",
404
+ "lane": "core"
405
+ },
406
+ {
407
+ "sha": "18efe52",
408
+ "at": "2026-10-11T05:24:05.000Z",
409
+ "message": "kit: /loop-next plugin command; handoff",
410
+ "author": "Claude",
411
+ "lane": "kit"
412
+ },
413
+ {
414
+ "sha": "c435234",
415
+ "at": "2026-10-11T05:23:41.000Z",
416
+ "message": "kit: method chapter on working with teammates",
417
+ "author": "Claude",
418
+ "lane": "kit"
419
+ },
420
+ {
421
+ "sha": "59af400",
422
+ "at": "2026-10-11T05:23:35.000Z",
423
+ "message": "core: loop next, claims in loop status and LaneStatus",
424
+ "author": "Claude",
425
+ "lane": "core"
426
+ },
427
+ {
428
+ "sha": "1a368ef",
429
+ "at": "2026-10-11T05:23:13.000Z",
430
+ "message": "kit: lane prompts and template honour lane claims",
431
+ "author": "Claude",
432
+ "lane": "kit"
433
+ },
434
+ {
435
+ "sha": "ee95e1a",
436
+ "at": "2026-10-11T05:19:08.000Z",
437
+ "message": "core: loop claim and loop release, claim parser",
438
+ "author": "Claude",
439
+ "lane": "core"
440
+ },
441
+ {
442
+ "sha": "52ae3a9",
443
+ "at": "2026-10-11T05:15:11.000Z",
444
+ "message": "core: browser-safe parsers (src/core/parse), Round 3 audit, handoff",
445
+ "author": "Claude",
446
+ "lane": "core"
447
+ },
448
+ {
449
+ "sha": "cceb048",
450
+ "at": "2026-10-11T05:02:57.000Z",
451
+ "message": "web: live cache and indicator wording (tested); fix typecheck of format.ts under tests; handoff",
452
+ "author": "Claude",
453
+ "lane": "web"
454
+ },
455
+ {
456
+ "sha": "37928d9",
457
+ "at": "2026-10-11T05:01:07.000Z",
458
+ "message": "web: welcome strip and snapshot indicator replace the grey banner",
459
+ "author": "Claude",
460
+ "lane": "web"
461
+ },
462
+ {
463
+ "sha": "9b89537",
464
+ "at": "2026-10-11T04:58:11.000Z",
465
+ "message": "docs: round 3 re-audit; Pages deploy also triggers on src/core changes",
466
+ "author": "Claude",
467
+ "lane": "docs"
468
+ },
469
+ {
470
+ "sha": "354c11e",
471
+ "at": "2026-10-11T04:54:33.000Z",
472
+ "message": "web: phone nav on one row, no 404 probe on static hosting",
473
+ "author": "Claude",
474
+ "lane": "web"
475
+ },
476
+ {
477
+ "sha": "8756452",
478
+ "at": "2026-10-11T04:48:52.000Z",
479
+ "message": "web: DESIGN.md spec for the 0.3.0 dashboard",
480
+ "author": "Claude",
481
+ "lane": "web"
482
+ },
483
+ {
484
+ "sha": "cffbe9e",
485
+ "at": "2026-10-11T04:47:06.000Z",
486
+ "message": "web: round 3 re-audit and before screenshots",
487
+ "author": "Claude",
488
+ "lane": "web"
489
+ },
490
+ {
491
+ "sha": "1fa8b73",
492
+ "at": "2026-10-11T04:34:40.000Z",
493
+ "message": "Round 3 start time in UTC (was local time)",
494
+ "author": "Minntooos",
495
+ "lane": "control"
496
+ },
497
+ {
498
+ "sha": "693243e",
499
+ "at": "2026-10-11T04:31:35.000Z",
500
+ "message": "Start round 3: 0.3.0 \"Showcase\" brief, lane contracts, claims rule",
501
+ "author": "Minntooos",
502
+ "lane": "control"
503
+ },
504
+ {
505
+ "sha": "084bb9f",
506
+ "at": "2026-10-11T04:01:08.000Z",
507
+ "message": "Release 0.2.0: version bump and CHANGELOG",
508
+ "author": "Minntooos",
509
+ "lane": "control"
510
+ },
511
+ {
512
+ "sha": "c959167",
513
+ "at": "2026-10-11T03:30:56.000Z",
514
+ "message": "control: Round 2 done, root DONE.md",
515
+ "author": "Claude",
516
+ "lane": "control"
517
+ },
518
+ {
519
+ "sha": "e1f69d2",
520
+ "at": "2026-10-11T03:11:33.000Z",
521
+ "message": "core: lane DONE",
522
+ "author": "Claude",
523
+ "lane": "core"
524
+ },
525
+ {
526
+ "sha": "82eceb9",
527
+ "at": "2026-10-11T03:11:21.000Z",
528
+ "message": "core: start Claude Code from pnpm-style .cmd shims via the script they name",
529
+ "author": "Claude",
530
+ "lane": "core"
531
+ },
532
+ {
533
+ "sha": "0da6d7e",
534
+ "at": "2026-10-11T02:10:45.000Z",
535
+ "message": "core: init --lanes and lanes add also merge the lane section into an existing AGENTS.md",
536
+ "author": "Claude",
537
+ "lane": "core"
538
+ },
539
+ {
540
+ "sha": "dc20ba4",
541
+ "at": "2026-10-11T01:56:34.000Z",
542
+ "message": "control: round 2 status, only core left, local runner may stop",
543
+ "author": "Minntooos",
544
+ "lane": "control"
545
+ },
546
+ {
547
+ "sha": "5e900de",
548
+ "at": "2026-10-11T01:48:00.000Z",
549
+ "message": "web: wrap long text on Fleet and Lanes (375 px e2e), audit closed, lane DONE",
550
+ "author": "Claude",
551
+ "lane": "web"
552
+ },
553
+ {
554
+ "sha": "8b03b7a",
555
+ "at": "2026-10-11T01:10:58.000Z",
556
+ "message": "core: check-lanes says 'no commits yet' in an empty repo",
557
+ "author": "Claude",
558
+ "lane": "core"
559
+ },
560
+ {
561
+ "sha": "eebdcc7",
562
+ "at": "2026-10-11T00:59:08.000Z",
563
+ "message": "docs: fresh-install test 2, init --lanes needs a brief, blocking lane check in CI, lane DONE",
564
+ "author": "Claude",
565
+ "lane": "docs"
566
+ },
567
+ {
568
+ "sha": "0026ad7",
569
+ "at": "2026-10-11T00:50:41.000Z",
570
+ "message": "web: 375 px overflow e2e, audit rows refreshed, run 4 handoff",
571
+ "author": "Claude",
572
+ "lane": "web"
573
+ },
574
+ {
575
+ "sha": "c0e6ca4",
576
+ "at": "2026-10-11T00:33:50.000Z",
577
+ "message": "server: audit closed, lane DONE with next improvements",
578
+ "author": "Claude",
579
+ "lane": "server"
580
+ },
581
+ {
582
+ "sha": "fb21555",
583
+ "at": "2026-10-11T00:32:42.000Z",
584
+ "message": "control: lane crossings and kit stalled notes",
585
+ "author": "Claude",
586
+ "lane": "control"
587
+ },
588
+ {
589
+ "sha": "29c43e8",
590
+ "at": "2026-10-11T00:13:33.000Z",
591
+ "message": "core: a second Ctrl-C releases the lock and exits at once",
592
+ "author": "Claude",
593
+ "lane": "core"
594
+ },
595
+ {
596
+ "sha": "3ba1731",
597
+ "at": "2026-10-11T00:11:59.000Z",
598
+ "message": "core: keep the session lock until the claude child settles after Ctrl-C",
599
+ "author": "Claude",
600
+ "lane": "core"
601
+ },
602
+ {
603
+ "sha": "13ebeff",
604
+ "at": "2026-10-10T23:59:05.000Z",
605
+ "message": "docs: README screenshots, launch drafts for 0.2.0 with objections, CHANGELOG, handoff",
606
+ "author": "Claude",
607
+ "lane": "docs"
608
+ },
609
+ {
610
+ "sha": "7f77381",
611
+ "at": "2026-10-10T23:49:02.000Z",
612
+ "message": "web: toasts for server-sent events",
613
+ "author": "Claude",
614
+ "lane": "web"
615
+ },
616
+ {
617
+ "sha": "6f94a5c",
618
+ "at": "2026-10-10T23:47:36.000Z",
619
+ "message": "web: demo-based Lanes e2e, refreshed docs screenshots",
620
+ "author": "Claude",
621
+ "lane": "web"
622
+ },
623
+ {
624
+ "sha": "f10f088",
625
+ "at": "2026-10-10T23:35:37.000Z",
626
+ "message": "server: serve the sixth demo loop (this repo); demo-self rebuild test skips on shallow clones",
627
+ "author": "Claude",
628
+ "lane": "server"
629
+ },
630
+ {
631
+ "sha": "a85c3a0",
632
+ "at": "2026-10-10T23:10:25.000Z",
633
+ "message": "core: run 4 handoff",
634
+ "author": "Claude",
635
+ "lane": "core"
636
+ },
637
+ {
638
+ "sha": "5a35d94",
639
+ "at": "2026-10-10T23:10:16.000Z",
640
+ "message": "core: prefer the matching bin key when reading an npm shim's package",
641
+ "author": "Claude",
642
+ "lane": "core"
643
+ },
644
+ {
645
+ "sha": "17881dc",
646
+ "at": "2026-10-10T23:09:17.000Z",
647
+ "message": "core: run claude via its npm package entry when only claude.cmd exists on Windows",
648
+ "author": "Claude",
649
+ "lane": "core"
650
+ },
651
+ {
652
+ "sha": "82b38ae",
653
+ "at": "2026-10-10T22:28:38.000Z",
654
+ "message": "control: vitest hookTimeout 20s and half the cores on Windows",
655
+ "lane": "control"
656
+ },
657
+ {
658
+ "sha": "4a3535d",
659
+ "at": "2026-10-10T22:15:36.000Z",
660
+ "message": "control: note for core about npm-installed claude.cmd on Windows",
661
+ "lane": "control"
662
+ },
663
+ {
664
+ "sha": "fa3952f",
665
+ "at": "2026-10-10T21:53:11.000Z",
666
+ "message": "core: shared paths pass check-lanes even inside another lane's glob",
667
+ "lane": "core"
668
+ },
669
+ {
670
+ "sha": "7d57b7a",
671
+ "at": "2026-10-10T21:53:11.000Z",
672
+ "message": "control: make npm test pass on Windows; web owns tests/unit/web",
673
+ "lane": "control"
674
+ },
675
+ {
676
+ "sha": "dff830c",
677
+ "at": "2026-10-08T21:10:06.000Z",
678
+ "message": "core: handoff and outbox order",
679
+ "author": "Claude",
680
+ "lane": "core"
681
+ },
682
+ {
683
+ "sha": "5ad8373",
684
+ "at": "2026-10-08T21:09:57.000Z",
685
+ "message": "core: lane stall threshold from cron, hide lanes from loop new templates",
686
+ "author": "Claude",
687
+ "lane": "core"
688
+ },
689
+ {
690
+ "sha": "a4fbb78",
691
+ "at": "2026-10-08T20:59:16.000Z",
692
+ "message": "docs: outbox note and handoff",
693
+ "author": "Claude",
694
+ "lane": "docs"
695
+ },
696
+ {
697
+ "sha": "64594d2",
698
+ "at": "2026-10-08T20:59:03.000Z",
699
+ "message": "docs: check 7 covers subcommands, advisory check-lanes CI step, softer lanes claim, outbox and handoff",
700
+ "author": "Claude",
701
+ "lane": "docs"
702
+ },
703
+ {
704
+ "sha": "e5258c5",
705
+ "at": "2026-10-08T20:57:12.000Z",
706
+ "message": "docs: README lanes story, comparison table, FAQ; docs/lanes.md; check-lanes in CI",
707
+ "author": "Claude",
708
+ "lane": "docs"
709
+ },
710
+ {
711
+ "sha": "4d52e0f",
712
+ "at": "2026-10-08T20:53:50.000Z",
713
+ "message": "web: Fleet filter by status",
714
+ "author": "Claude",
715
+ "lane": "web"
716
+ },
717
+ {
718
+ "sha": "a5706b8",
719
+ "at": "2026-10-08T20:51:30.000Z",
720
+ "message": "web: count blocked lanes in Needs you, handoff and outbox",
721
+ "author": "Claude",
722
+ "lane": "web"
723
+ },
724
+ {
725
+ "sha": "b497604",
726
+ "at": "2026-10-08T20:50:02.000Z",
727
+ "message": "web: Lanes tab, Fleet lane strip and lane-aware Needs-you count, with fixture e2e and unit tests",
728
+ "author": "Claude",
729
+ "lane": "web"
730
+ },
731
+ {
732
+ "sha": "27eb065",
733
+ "at": "2026-10-08T20:46:44.000Z",
734
+ "message": "web: fleet e2e tolerates a sixth demo loop; regenerate stale demo/this-repo.json (built from a shallow clone)",
735
+ "author": "Claude",
736
+ "lane": "web"
737
+ },
738
+ {
739
+ "sha": "f969e31",
740
+ "at": "2026-10-08T20:44:19.000Z",
741
+ "message": "kit: lane DONE, handoff and outbox",
742
+ "author": "Claude",
743
+ "lane": "kit"
744
+ },
745
+ {
746
+ "sha": "b458e98",
747
+ "at": "2026-10-08T20:44:19.000Z",
748
+ "message": "demo: regenerate this-repo.json so the up-to-date test passes again (main-stays-green fix, server owns it)",
749
+ "author": "Claude",
750
+ "lane": "control"
751
+ },
752
+ {
753
+ "sha": "cba3a50",
754
+ "at": "2026-10-08T20:42:30.000Z",
755
+ "message": "kit: launchd plist notes on permissions and PATH",
756
+ "author": "Claude",
757
+ "lane": "kit"
758
+ },
759
+ {
760
+ "sha": "4a25201",
761
+ "at": "2026-10-08T20:42:30.000Z",
762
+ "message": "kit: two more example knowledge entries",
763
+ "author": "Claude",
764
+ "lane": "kit"
765
+ },
766
+ {
767
+ "sha": "012d930",
768
+ "at": "2026-10-08T20:42:30.000Z",
769
+ "message": "kit: chrome-extension icons and a macOS launchd plist",
770
+ "author": "Claude",
771
+ "lane": "kit"
772
+ },
773
+ {
774
+ "sha": "511ac42",
775
+ "at": "2026-10-08T20:41:00.000Z",
776
+ "message": "server: leak check covers Vercel, Cloudflare Pages and GitHub Pages configs",
777
+ "author": "Claude",
778
+ "lane": "server"
779
+ },
780
+ {
781
+ "sha": "f9d4768",
782
+ "at": "2026-10-08T20:39:34.000Z",
783
+ "message": "server: sixth demo loop data (this repo) with scrub test",
784
+ "author": "Claude",
785
+ "lane": "server"
786
+ },
787
+ {
788
+ "sha": "889dadc",
789
+ "at": "2026-10-08T20:38:49.000Z",
790
+ "message": "kit: say how a lane fixes a red main without failing check-lanes; note 0.2.0 requirement",
791
+ "author": "Claude",
792
+ "lane": "kit"
793
+ },
794
+ {
795
+ "sha": "1c361da",
796
+ "at": "2026-10-08T20:38:49.000Z",
797
+ "message": "kit: Lanes chapter in the method (Part B, section 16)",
798
+ "author": "Claude",
799
+ "lane": "kit"
800
+ },
801
+ {
802
+ "sha": "8a1bfc2",
803
+ "at": "2026-10-08T20:37:48.000Z",
804
+ "message": "server: handoff notes, cron finding for core",
805
+ "author": "Claude",
806
+ "lane": "server"
807
+ },
808
+ {
809
+ "sha": "396c50b",
810
+ "at": "2026-10-08T20:37:48.000Z",
811
+ "message": "server: lanes in the API, lane health checks, contracts",
812
+ "author": "Claude",
813
+ "lane": "server"
814
+ },
815
+ {
816
+ "sha": "00ff6ca",
817
+ "at": "2026-10-08T20:37:48.000Z",
818
+ "message": "server: round 2 audit",
819
+ "author": "Claude",
820
+ "lane": "server"
821
+ },
822
+ {
823
+ "sha": "36b2f53",
824
+ "at": "2026-10-08T20:35:11.000Z",
825
+ "message": "kit: lanes.yml matrix workflow with test; prompt and README fixes from review",
826
+ "author": "Claude",
827
+ "lane": "kit"
828
+ },
829
+ {
830
+ "sha": "7877df6",
831
+ "at": "2026-10-08T20:32:39.000Z",
832
+ "message": "kit: align lane templates with loop init --lanes; lane and control-room prompts with README",
833
+ "author": "Claude",
834
+ "lane": "kit"
835
+ },
836
+ {
837
+ "sha": "05859b0",
838
+ "at": "2026-10-08T20:30:36.000Z",
839
+ "message": "core: clearer answer --push failures; handoff",
840
+ "author": "Claude",
841
+ "lane": "core"
842
+ },
843
+ {
844
+ "sha": "090b145",
845
+ "at": "2026-10-08T20:30:36.000Z",
846
+ "message": "core: answer --push, loop new keeps the folder when gh fails, idle icon is - ; audit updated",
847
+ "author": "Claude",
848
+ "lane": "core"
849
+ },
850
+ {
851
+ "sha": "6345418",
852
+ "at": "2026-10-08T20:28:52.000Z",
853
+ "message": "kit: lane templates survive first push, are idempotent, carry the unattended rules",
854
+ "author": "Claude",
855
+ "lane": "kit"
856
+ },
857
+ {
858
+ "sha": "8c33b8e",
859
+ "at": "2026-10-08T20:28:51.000Z",
860
+ "message": "kit: templates/lanes with documented placeholders and tests",
861
+ "author": "Claude",
862
+ "lane": "kit"
863
+ },
864
+ {
865
+ "sha": "e2095e3",
866
+ "at": "2026-10-08T20:27:08.000Z",
867
+ "message": "core: lanes add normalizes and validates globs; outbox for kit, server, web",
868
+ "author": "Claude",
869
+ "lane": "core"
870
+ },
871
+ {
872
+ "sha": "5d78151",
873
+ "at": "2026-10-08T20:27:08.000Z",
874
+ "message": "core: loop init --lanes and loop lanes add",
875
+ "author": "Claude",
876
+ "lane": "core"
877
+ },
878
+ {
879
+ "sha": "89b9431",
880
+ "at": "2026-10-08T20:24:47.000Z",
881
+ "message": "kit: keep shipped prompt, default prompt and gitignore test in sync",
882
+ "author": "Claude",
883
+ "lane": "kit"
884
+ },
885
+ {
886
+ "sha": "2cda5e2",
887
+ "at": "2026-10-08T20:24:47.000Z",
888
+ "message": "kit: audit; runner's own session lock no longer stops the prompt",
889
+ "author": "Claude",
890
+ "lane": "kit"
891
+ },
892
+ {
893
+ "sha": "0c7c8b6",
894
+ "at": "2026-10-08T20:22:58.000Z",
895
+ "message": "core: lane status counts a later commit as a reply and falls back to subject prefix",
896
+ "author": "Claude",
897
+ "lane": "core"
898
+ },
899
+ {
900
+ "sha": "6e713c4",
901
+ "at": "2026-10-08T20:21:23.000Z",
902
+ "message": "core: per-lane state and loop status lane rows; LaneStatus type",
903
+ "author": "Claude",
904
+ "lane": "core"
905
+ },
906
+ {
907
+ "sha": "17605b8",
908
+ "at": "2026-10-08T20:19:26.000Z",
909
+ "message": "core: lock handles SIGHUP, failed rounds are recorded, doctor explains claude.cmd; outbox",
910
+ "author": "Claude",
911
+ "lane": "core"
912
+ },
913
+ {
914
+ "sha": "592bd6d",
915
+ "at": "2026-10-08T20:17:39.000Z",
916
+ "message": "core: loop run --lane with session lock written and cleared (also on failure and Ctrl-C)",
917
+ "author": "Claude",
918
+ "lane": "core"
919
+ },
920
+ {
921
+ "sha": "8606f29",
922
+ "at": "2026-10-08T20:15:38.000Z",
923
+ "message": "core: loop doctor with injectable probes",
924
+ "author": "Claude",
925
+ "lane": "core"
926
+ },
927
+ {
928
+ "sha": "1e80b43",
929
+ "at": "2026-10-08T20:14:04.000Z",
930
+ "message": "core: loop check-lanes (merges, shallow clones, non-ASCII paths handled)",
931
+ "author": "Claude",
932
+ "lane": "core"
933
+ },
934
+ {
935
+ "sha": "c1e8faf",
936
+ "at": "2026-10-08T20:10:57.000Z",
937
+ "message": "core: lanes config parser, validator and ownership check (pure); core audit",
938
+ "author": "Claude",
939
+ "lane": "core"
940
+ },
941
+ {
942
+ "sha": "a373e23",
943
+ "at": "2026-10-08T20:09:49.000Z",
944
+ "message": "check: run docs-vs-help check from source so npm test works on a fresh checkout",
945
+ "author": "Claude",
946
+ "lane": "core"
947
+ },
948
+ {
949
+ "sha": "53bb653",
950
+ "at": "2026-10-08T19:58:55.000Z",
951
+ "message": "docs: audit, fresh-install test, docs-vs-help check",
952
+ "author": "Claude",
953
+ "lane": "docs"
954
+ },
955
+ {
956
+ "sha": "8a322c5",
957
+ "at": "2026-10-08T19:47:57.000Z",
958
+ "message": "web: screenshot generator and docs screenshots; request lane data shape",
959
+ "author": "Claude",
960
+ "lane": "web"
961
+ },
962
+ {
963
+ "sha": "48ce16a",
964
+ "at": "2026-10-08T19:46:36.000Z",
965
+ "message": "web: audit, axe accessibility e2e on all screens and themes",
966
+ "author": "Claude",
967
+ "lane": "web"
968
+ },
969
+ {
970
+ "sha": "e979881",
971
+ "at": "2026-10-08T19:38:28.000Z",
972
+ "message": "Start round 2: 0.2.0 \"Lanes\" brief, lane contracts and audits",
973
+ "author": "Minntooos",
974
+ "lane": "control"
975
+ },
976
+ {
977
+ "sha": "c9bff21",
978
+ "at": "2026-10-08T19:09:20.000Z",
979
+ "message": "CI on Windows and Node 20/24; Pages demo deploys on change; link the live demo",
980
+ "author": "Minntooos",
981
+ "lane": "other"
982
+ },
983
+ {
984
+ "sha": "a10709e",
985
+ "at": "2026-10-08T19:05:55.000Z",
986
+ "message": "Make the Pages demo work under a subpath; add Dependabot and package links",
987
+ "author": "Minntooos",
988
+ "lane": "other"
989
+ },
990
+ {
991
+ "sha": "3385cdf",
992
+ "at": "2026-10-08T17:58:34.000Z",
993
+ "message": "Release 0.1.0",
994
+ "lane": "release"
995
+ },
996
+ {
997
+ "sha": "36953a0",
998
+ "at": "2026-10-08T15:29:55.000Z",
999
+ "message": "control room: product DONE",
1000
+ "author": "Claude",
1001
+ "lane": "control"
1002
+ },
1003
+ {
1004
+ "sha": "b85e7d3",
1005
+ "at": "2026-10-08T14:30:53.000Z",
1006
+ "message": "Close three launch gaps: settings route, recorded test results, full Code of Conduct",
1007
+ "lane": "other"
1008
+ },
1009
+ {
1010
+ "sha": "6bfd42b",
1011
+ "at": "2026-10-08T14:20:51.000Z",
1012
+ "message": "Fix tests on Windows: run tsx through node, use an absolute missing-file URL",
1013
+ "lane": "other"
1014
+ },
1015
+ {
1016
+ "sha": "7555d39",
1017
+ "at": "2026-10-08T12:45:28.000Z",
1018
+ "message": "web: run 8, lane DONE",
1019
+ "author": "Claude",
1020
+ "lane": "web"
1021
+ },
1022
+ {
1023
+ "sha": "346d25d",
1024
+ "at": "2026-10-08T12:31:01.000Z",
1025
+ "message": "control room: tell web to finish with DONE",
1026
+ "author": "Claude",
1027
+ "lane": "control"
1028
+ },
1029
+ {
1030
+ "sha": "e874baa",
1031
+ "at": "2026-10-08T11:45:26.000Z",
1032
+ "message": "web: record run 7, request GET /api/settings",
1033
+ "author": "Claude",
1034
+ "lane": "web"
1035
+ },
1036
+ {
1037
+ "sha": "3e123ef",
1038
+ "at": "2026-10-08T10:46:01.000Z",
1039
+ "message": "web: unit tests for Loading and LoadError (busy state), jsx in root tsconfig",
1040
+ "author": "Claude",
1041
+ "lane": "web"
1042
+ },
1043
+ {
1044
+ "sha": "11c7e75",
1045
+ "at": "2026-10-08T09:47:21.000Z",
1046
+ "message": "web: record run 5 attempt and handoff",
1047
+ "author": "Claude",
1048
+ "lane": "web"
1049
+ },
1050
+ {
1051
+ "sha": "04a32c2",
1052
+ "at": "2026-10-08T08:48:05.000Z",
1053
+ "message": "web: record run 4 attempt and handoff",
1054
+ "author": "Claude",
1055
+ "lane": "web"
1056
+ },
1057
+ {
1058
+ "sha": "1fa8db2",
1059
+ "at": "2026-10-08T07:46:38.000Z",
1060
+ "message": "web: disable retry while refetching, error tests for health, inbox, loop detail",
1061
+ "author": "Claude",
1062
+ "lane": "web"
1063
+ },
1064
+ {
1065
+ "sha": "01d2526",
1066
+ "at": "2026-10-08T07:10:35.000Z",
1067
+ "message": "core: DONE, handoff, outbox",
1068
+ "author": "Claude",
1069
+ "lane": "core"
1070
+ },
1071
+ {
1072
+ "sha": "0f037ac",
1073
+ "at": "2026-10-08T06:46:26.000Z",
1074
+ "message": "web: shared loading and error states with retry",
1075
+ "author": "Claude",
1076
+ "lane": "web"
1077
+ },
1078
+ {
1079
+ "sha": "cbf9e96",
1080
+ "at": "2026-10-08T06:22:28.000Z",
1081
+ "message": "kit: outbox",
1082
+ "author": "Claude",
1083
+ "lane": "kit"
1084
+ },
1085
+ {
1086
+ "sha": "f3d3f4b",
1087
+ "at": "2026-10-08T06:22:20.000Z",
1088
+ "message": "kit: ship template gitignore as gitignore, ignore loop runtime files, DONE",
1089
+ "author": "Claude",
1090
+ "lane": "kit"
1091
+ },
1092
+ {
1093
+ "sha": "9ee6e75",
1094
+ "at": "2026-10-08T06:11:23.000Z",
1095
+ "message": "core: handoff, outbox",
1096
+ "author": "Claude",
1097
+ "lane": "core"
1098
+ },
1099
+ {
1100
+ "sha": "6ac5aff",
1101
+ "at": "2026-10-08T06:11:14.000Z",
1102
+ "message": "core: loop new writes gitignore as .gitignore and {{host}}; loop run honours session.lock and records runs.jsonl; DEFAULT_PROMPT mirrors routine prompt",
1103
+ "author": "Claude",
1104
+ "lane": "core"
1105
+ },
1106
+ {
1107
+ "sha": "a3b6e4c",
1108
+ "at": "2026-10-08T06:02:45.000Z",
1109
+ "message": "docs: demo pages workflow, DONE",
1110
+ "author": "Claude",
1111
+ "lane": "docs"
1112
+ },
1113
+ {
1114
+ "sha": "8ff8c26",
1115
+ "at": "2026-10-08T06:02:04.000Z",
1116
+ "message": "docs: dashboard screenshot, command options",
1117
+ "author": "Claude",
1118
+ "lane": "docs"
1119
+ },
1120
+ {
1121
+ "sha": "72dab42",
1122
+ "at": "2026-10-08T06:01:11.000Z",
1123
+ "message": "docs: social preview image",
1124
+ "author": "Claude",
1125
+ "lane": "docs"
1126
+ },
1127
+ {
1128
+ "sha": "6f4d759",
1129
+ "at": "2026-10-08T06:00:18.000Z",
1130
+ "message": "docs: handoff",
1131
+ "author": "Claude",
1132
+ "lane": "docs"
1133
+ },
1134
+ {
1135
+ "sha": "a7d2cdd",
1136
+ "at": "2026-10-08T06:00:18.000Z",
1137
+ "message": "docs: launch drafts",
1138
+ "author": "Claude",
1139
+ "lane": "docs"
1140
+ },
1141
+ {
1142
+ "sha": "5456d6d",
1143
+ "at": "2026-10-08T05:59:32.000Z",
1144
+ "message": "docs: README with proof table, docs pages, README/link checks",
1145
+ "author": "Claude",
1146
+ "lane": "docs"
1147
+ },
1148
+ {
1149
+ "sha": "926133b",
1150
+ "at": "2026-10-08T05:57:27.000Z",
1151
+ "message": "docs: CI workflow, contributing, conduct, security, changelog, templates, marketplace",
1152
+ "author": "Claude",
1153
+ "lane": "docs"
1154
+ },
1155
+ {
1156
+ "sha": "73bafcb",
1157
+ "at": "2026-10-08T05:53:24.000Z",
1158
+ "message": "web: tab arrow keys, contrast test, read-only inbox without a server, AA-safe accent buttons",
1159
+ "author": "Claude",
1160
+ "lane": "web"
1161
+ },
1162
+ {
1163
+ "sha": "c4520a5",
1164
+ "at": "2026-10-08T05:52:21.000Z",
1165
+ "message": "web: new-loop wizard with live brief score and first-run state",
1166
+ "author": "Claude",
1167
+ "lane": "web"
1168
+ },
1169
+ {
1170
+ "sha": "185bff3",
1171
+ "at": "2026-10-08T05:51:29.000Z",
1172
+ "message": "web: loop detail, inbox, health, settings, live updates; e2e on the demo server",
1173
+ "author": "Claude",
1174
+ "lane": "web"
1175
+ },
1176
+ {
1177
+ "sha": "360ae18",
1178
+ "at": "2026-10-08T05:48:00.000Z",
1179
+ "message": "web: app shell, command palette, theme, hash router and Fleet with e2e",
1180
+ "author": "Claude",
1181
+ "lane": "web"
1182
+ },
1183
+ {
1184
+ "sha": "bcc83ca",
1185
+ "at": "2026-10-08T05:46:45.000Z",
1186
+ "message": "server: lane DONE, retro, knowledge entry",
1187
+ "author": "Claude",
1188
+ "lane": "server"
1189
+ },
1190
+ {
1191
+ "sha": "bee870d",
1192
+ "at": "2026-10-08T05:45:20.000Z",
1193
+ "message": "server: serve the built dashboard with a strict CSP; static demo API export",
1194
+ "author": "Claude",
1195
+ "lane": "server"
1196
+ },
1197
+ {
1198
+ "sha": "c6faf17",
1199
+ "at": "2026-10-08T05:43:30.000Z",
1200
+ "message": "server: health checks (leak, stale lock, short runs, failing tests, runner silent) feed status and /api/checks",
1201
+ "author": "Claude",
1202
+ "lane": "server"
1203
+ },
1204
+ {
1205
+ "sha": "55749c0",
1206
+ "at": "2026-10-08T05:41:10.000Z",
1207
+ "message": "server: SSE /api/events with a polling clone watcher and periodic git fetch",
1208
+ "author": "Claude",
1209
+ "lane": "server"
1210
+ },
1211
+ {
1212
+ "sha": "a75365c",
1213
+ "at": "2026-10-08T05:39:19.000Z",
1214
+ "message": "server: answer endpoint with host/origin/content-type guard",
1215
+ "author": "Claude",
1216
+ "lane": "server"
1217
+ },
1218
+ {
1219
+ "sha": "8955f5c",
1220
+ "at": "2026-10-08T05:37:30.000Z",
1221
+ "message": "server: read real loops, inbox and detail from a projects folder",
1222
+ "author": "Claude",
1223
+ "lane": "server"
1224
+ },
1225
+ {
1226
+ "sha": "803d0db",
1227
+ "at": "2026-10-08T05:35:49.000Z",
1228
+ "message": "server: createApp, startServer and read routes from the demo snapshot",
1229
+ "author": "Claude",
1230
+ "lane": "server"
1231
+ },
1232
+ {
1233
+ "sha": "88eeea0",
1234
+ "at": "2026-10-08T05:34:46.000Z",
1235
+ "message": "server: demo snapshot builder, scrubbed five-sites.json, shared API types",
1236
+ "author": "Claude",
1237
+ "lane": "server"
1238
+ },
1239
+ {
1240
+ "sha": "1abf8d9",
1241
+ "at": "2026-10-08T05:31:46.000Z",
1242
+ "message": "kit: method protocol files, lock rule in static-site loop prompt, stricter consistency tests",
1243
+ "author": "Claude",
1244
+ "lane": "kit"
1245
+ },
1246
+ {
1247
+ "sha": "d48aab3",
1248
+ "at": "2026-10-08T05:29:55.000Z",
1249
+ "message": "kit: outbox requests for core (gitignore in tarball) and docs (marketplace.json)",
1250
+ "author": "Claude",
1251
+ "lane": "kit"
1252
+ },
1253
+ {
1254
+ "sha": "aaf8ab9",
1255
+ "at": "2026-10-08T05:29:09.000Z",
1256
+ "message": "kit: Chrome extension template with check script and Playwright extension test",
1257
+ "author": "Claude",
1258
+ "lane": "kit"
1259
+ },
1260
+ {
1261
+ "sha": "c8ddbae",
1262
+ "at": "2026-10-08T05:28:05.000Z",
1263
+ "message": "kit: Claude Code plugin with loop-init, handoff, retro and stuck commands",
1264
+ "author": "Claude",
1265
+ "lane": "kit"
1266
+ },
1267
+ {
1268
+ "sha": "3c0b4c8",
1269
+ "at": "2026-10-08T05:27:20.000Z",
1270
+ "message": "kit: fix runner review findings (github_token, allowedTools, XML encoding, lock wording)",
1271
+ "author": "Claude",
1272
+ "lane": "kit"
1273
+ },
1274
+ {
1275
+ "sha": "8201e6e",
1276
+ "at": "2026-10-08T05:26:35.000Z",
1277
+ "message": "kit: GitHub Actions workflow and local scheduler configs with tests",
1278
+ "author": "Claude",
1279
+ "lane": "kit"
1280
+ },
1281
+ {
1282
+ "sha": "d8cc97d",
1283
+ "at": "2026-10-08T05:25:56.000Z",
1284
+ "message": "kit: routine runner prompt and README; loop run test accepts the shipped prompt",
1285
+ "author": "Claude",
1286
+ "lane": "kit"
1287
+ },
1288
+ {
1289
+ "sha": "2b919a7",
1290
+ "at": "2026-10-08T05:25:03.000Z",
1291
+ "message": "kit: static-site check rejects invalid hostnames; flag underscore-name bug to core",
1292
+ "author": "Claude",
1293
+ "lane": "kit"
1294
+ },
1295
+ {
1296
+ "sha": "61467c3",
1297
+ "at": "2026-10-08T05:25:03.000Z",
1298
+ "message": "kit: static-site template passes its own checks when freshly generated",
1299
+ "author": "Claude",
1300
+ "lane": "kit"
1301
+ },
1302
+ {
1303
+ "sha": "ea9869d",
1304
+ "at": "2026-10-08T05:23:30.000Z",
1305
+ "message": "core: dashboard shutdown, busy-port hint, handoff",
1306
+ "author": "Claude",
1307
+ "lane": "core"
1308
+ },
1309
+ {
1310
+ "sha": "d6c7a02",
1311
+ "at": "2026-10-08T05:23:30.000Z",
1312
+ "message": "core: loop dashboard command with lazy server import",
1313
+ "author": "Claude",
1314
+ "lane": "core"
1315
+ },
1316
+ {
1317
+ "sha": "0e0d08f",
1318
+ "at": "2026-10-08T05:22:11.000Z",
1319
+ "message": "kit: fix review findings (empty shipped index, prefilled goal, lock file named)",
1320
+ "author": "Claude",
1321
+ "lane": "kit"
1322
+ },
1323
+ {
1324
+ "sha": "d4f7299",
1325
+ "at": "2026-10-08T05:22:10.000Z",
1326
+ "message": "kit: operating card, task template, knowledge index and unattended rules with tests",
1327
+ "author": "Claude",
1328
+ "lane": "kit"
1329
+ },
1330
+ {
1331
+ "sha": "0596cfe",
1332
+ "at": "2026-10-08T05:21:44.000Z",
1333
+ "message": "core: loop run allows the tools a round needs, handles Windows claude lookup",
1334
+ "author": "Claude",
1335
+ "lane": "core"
1336
+ },
1337
+ {
1338
+ "sha": "039455a",
1339
+ "at": "2026-10-08T05:20:45.000Z",
1340
+ "message": "core: loop run builds the scheduler prompt and starts claude with an argument array",
1341
+ "author": "Claude",
1342
+ "lane": "core"
1343
+ },
1344
+ {
1345
+ "sha": "936fee6",
1346
+ "at": "2026-10-08T05:19:46.000Z",
1347
+ "message": "core: answer commits only its files and extends a spent run budget; wider next-list headings",
1348
+ "author": "Claude",
1349
+ "lane": "core"
1350
+ },
1351
+ {
1352
+ "sha": "b8aaa33",
1353
+ "at": "2026-10-08T05:18:27.000Z",
1354
+ "message": "core: loop status, next-round and answer",
1355
+ "author": "Claude",
1356
+ "lane": "core"
1357
+ },
1358
+ {
1359
+ "sha": "7a1ecb0",
1360
+ "at": "2026-10-08T05:16:47.000Z",
1361
+ "message": "core: loop new cleans up when gh fails, git identity fallback",
1362
+ "author": "Claude",
1363
+ "lane": "core"
1364
+ },
1365
+ {
1366
+ "sha": "4e9b6ce",
1367
+ "at": "2026-10-08T05:15:52.000Z",
1368
+ "message": "core: loop new with template copier and Gh interface",
1369
+ "author": "Claude",
1370
+ "lane": "core"
1371
+ },
1372
+ {
1373
+ "sha": "f8eaff3",
1374
+ "at": "2026-10-08T05:14:38.000Z",
1375
+ "message": "core: init never overwrites loop state, rejects broken card markers",
1376
+ "author": "Claude",
1377
+ "lane": "core"
1378
+ },
1379
+ {
1380
+ "sha": "2aeee01",
1381
+ "at": "2026-10-08T05:13:40.000Z",
1382
+ "message": "core: loop init with brief gate, idempotent card merge",
1383
+ "author": "Claude",
1384
+ "lane": "core"
1385
+ },
1386
+ {
1387
+ "sha": "a12a3ea",
1388
+ "at": "2026-10-08T05:12:29.000Z",
1389
+ "message": "core: anchor brief heading matching, nest sub-headings, accept bold labels",
1390
+ "author": "Claude",
1391
+ "lane": "core"
1392
+ },
1393
+ {
1394
+ "sha": "947d666",
1395
+ "at": "2026-10-08T05:11:25.000Z",
1396
+ "message": "core: brief linter with named gaps",
1397
+ "author": "Claude",
1398
+ "lane": "core"
1399
+ },
1400
+ {
1401
+ "sha": "abed9af",
1402
+ "at": "2026-10-08T05:10:44.000Z",
1403
+ "message": "core: harden repo readers, update task file",
1404
+ "author": "Claude",
1405
+ "lane": "core"
1406
+ },
1407
+ {
1408
+ "sha": "0db189d",
1409
+ "at": "2026-10-08T05:09:58.000Z",
1410
+ "message": "core: read a loop's facts from a folder (repo.ts)",
1411
+ "author": "Claude",
1412
+ "lane": "core"
1413
+ },
1414
+ {
1415
+ "sha": "6706123",
1416
+ "at": "2026-10-08T05:09:20.000Z",
1417
+ "message": "Fix green: stop favicon 404 failing the dashboard smoke test",
1418
+ "author": "Claude",
1419
+ "lane": "other"
1420
+ },
1421
+ {
1422
+ "sha": "74b8626",
1423
+ "at": "2026-10-08T04:58:48.000Z",
1424
+ "message": "Add control room notes file that every lane reads",
1425
+ "lane": "other"
1426
+ },
1427
+ {
1428
+ "sha": "0c397a2",
1429
+ "at": "2026-10-08T04:55:53.000Z",
1430
+ "message": "Set up Compounding Loop for five parallel build lanes",
1431
+ "lane": "other"
1432
+ },
1433
+ {
1434
+ "sha": "2539ddd",
1435
+ "at": "2026-10-05T22:14:08.000Z",
1436
+ "message": "Add the Compounding Loop method",
1437
+ "lane": "other"
1438
+ }
1439
+ ],
1440
+ "contract": [
1441
+ {
1442
+ "text": "core lane: every done-when passes",
1443
+ "pass": true
1444
+ },
1445
+ {
1446
+ "text": "kit lane: every done-when passes",
1447
+ "pass": true
1448
+ },
1449
+ {
1450
+ "text": "server lane: every done-when passes",
1451
+ "pass": true
1452
+ },
1453
+ {
1454
+ "text": "web lane: every done-when passes",
1455
+ "pass": true
1456
+ },
1457
+ {
1458
+ "text": "docs lane: every done-when passes",
1459
+ "pass": true
1460
+ }
1461
+ ],
1462
+ "laneNotes": [
1463
+ {
1464
+ "lane": "core",
1465
+ "contract": [
1466
+ {
1467
+ "text": "`npm test` passes",
1468
+ "pass": true
1469
+ },
1470
+ {
1471
+ "text": "Round 3 audit section with no open blocker",
1472
+ "pass": true
1473
+ },
1474
+ {
1475
+ "text": "every item below has unit tests",
1476
+ "pass": true
1477
+ }
1478
+ ],
1479
+ "decisions": [],
1480
+ "knowledge": []
1481
+ },
1482
+ {
1483
+ "lane": "kit",
1484
+ "contract": [
1485
+ {
1486
+ "text": "`npm test` passes",
1487
+ "pass": true
1488
+ },
1489
+ {
1490
+ "text": "Round 3 audit section with no open blocker",
1491
+ "pass": true
1492
+ },
1493
+ {
1494
+ "text": "tests assert the claim rule is in every lane prompt and template",
1495
+ "pass": true
1496
+ }
1497
+ ],
1498
+ "decisions": [],
1499
+ "knowledge": []
1500
+ },
1501
+ {
1502
+ "lane": "server",
1503
+ "contract": [
1504
+ {
1505
+ "text": "`npm test` passes",
1506
+ "pass": true
1507
+ },
1508
+ {
1509
+ "text": "Round 3 audit section with no open blocker",
1510
+ "pass": true
1511
+ },
1512
+ {
1513
+ "text": "`src/server/live/**` is pure, browser-safe and unit-tested against recorded GitHub response fixtures (scrubbed: no emails, no author names)",
1514
+ "pass": true
1515
+ }
1516
+ ],
1517
+ "decisions": [
1518
+ "Fixtures in tests/unit/server/fixtures/live are hand-written to the documented GitHub API shape (no network in cloud runs), with no names or emails.",
1519
+ "Moved `laneChecks` to src/server/laneChecks.ts and `bulletsUnder`/`contractFromTask` to src/server/taskBullets.ts so live/ stays browser-safe; old modules re-export them.",
1520
+ "CSP for the hosted demo is a meta tag written by demo/export-static.mjs into demo/static/index.html (workflow already copies demo/static over dist/web)."
1521
+ ],
1522
+ "knowledge": []
1523
+ },
1524
+ {
1525
+ "lane": "web",
1526
+ "contract": [
1527
+ {
1528
+ "text": "every web line of \"Round 3 done when\" in IDEA.md passes: mocked-GitHub e2e (live, rate-limit fallback, copy command), axe at 1440 and 375 px in both themes, no console errors, no horizontal scroll at 375 px, bundle under 300 kB gzip, `web/DESIGN.md` plus before/after screenshots, and an independent design review recorded in `.ai/audit/web.md`",
1529
+ "pass": true
1530
+ }
1531
+ ],
1532
+ "decisions": [
1533
+ "2026-10-11: lane colours are Okabe-Ito tuned to AA on both themes (web/DESIGN.md §3); status palette from IDEA.md unchanged. Charts hand-written SVG, no dependency. Timeline times are absolute UTC (relative in title). DESIGN.md research: only Vercel Geist was re-verified online, others from working knowledge, stated in the doc."
1534
+ ],
1535
+ "knowledge": []
1536
+ },
1537
+ {
1538
+ "lane": "docs",
1539
+ "contract": [
1540
+ {
1541
+ "text": "`npm test` passes",
1542
+ "pass": true
1543
+ },
1544
+ {
1545
+ "text": "Round 3 audit section with no open blocker",
1546
+ "pass": true
1547
+ },
1548
+ {
1549
+ "text": "README/docs checks pass",
1550
+ "pass": true
1551
+ },
1552
+ {
1553
+ "text": "the fresh-install test (README quick start + `docs/team.md`, word for word, from a packed tarball in an empty temp dir) is recorded in `.ai/audit/docs.md`",
1554
+ "pass": true
1555
+ }
1556
+ ],
1557
+ "decisions": [],
1558
+ "knowledge": []
1559
+ }
1560
+ ],
1561
+ "knowledge": [],
1562
+ "decisions": [],
1563
+ "history": []
1564
+ },
1565
+ "checks": [
1566
+ {
1567
+ "loopId": "compounding-loop",
1568
+ "kind": "failing-tests",
1569
+ "ok": true,
1570
+ "reason": "all tests pass",
1571
+ "proof": "npm test was green at b3b51a5"
1572
+ }
1573
+ ]
1574
+ }