@mobrienv/autoloop 0.4.0 → 0.7.1

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 (441) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +40 -14
  3. package/bin/autoloop +1 -1
  4. package/dist/index.d.ts +6 -0
  5. package/dist/index.js +19 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/testing/mock-backend.js +3 -5
  8. package/dist/testing/mock-backend.js.map +1 -1
  9. package/package.json +32 -23
  10. package/plugins/autoloop/.claude-plugin/plugin.json +1 -1
  11. package/dist/agent-map.d.ts +0 -10
  12. package/dist/agent-map.js +0 -58
  13. package/dist/agent-map.js.map +0 -1
  14. package/dist/backend/acp-client.d.ts +0 -38
  15. package/dist/backend/acp-client.js +0 -293
  16. package/dist/backend/acp-client.js.map +0 -1
  17. package/dist/backend/index.d.ts +0 -10
  18. package/dist/backend/index.js +0 -71
  19. package/dist/backend/index.js.map +0 -1
  20. package/dist/backend/kiro-bridge.d.ts +0 -19
  21. package/dist/backend/kiro-bridge.js +0 -114
  22. package/dist/backend/kiro-bridge.js.map +0 -1
  23. package/dist/backend/kiro-worker.d.ts +0 -1
  24. package/dist/backend/kiro-worker.js +0 -96
  25. package/dist/backend/kiro-worker.js.map +0 -1
  26. package/dist/backend/run-command.d.ts +0 -7
  27. package/dist/backend/run-command.js +0 -50
  28. package/dist/backend/run-command.js.map +0 -1
  29. package/dist/backend/run-kiro.d.ts +0 -3
  30. package/dist/backend/run-kiro.js +0 -16
  31. package/dist/backend/run-kiro.js.map +0 -1
  32. package/dist/backend/run-mock.d.ts +0 -1
  33. package/dist/backend/run-mock.js +0 -6
  34. package/dist/backend/run-mock.js.map +0 -1
  35. package/dist/backend/run-pi.d.ts +0 -5
  36. package/dist/backend/run-pi.js +0 -5
  37. package/dist/backend/run-pi.js.map +0 -1
  38. package/dist/backend/types.d.ts +0 -21
  39. package/dist/backend/types.js +0 -2
  40. package/dist/backend/types.js.map +0 -1
  41. package/dist/chains/budget.d.ts +0 -7
  42. package/dist/chains/budget.js +0 -54
  43. package/dist/chains/budget.js.map +0 -1
  44. package/dist/chains/load.d.ts +0 -18
  45. package/dist/chains/load.js +0 -129
  46. package/dist/chains/load.js.map +0 -1
  47. package/dist/chains/render.d.ts +0 -2
  48. package/dist/chains/render.js +0 -74
  49. package/dist/chains/render.js.map +0 -1
  50. package/dist/chains/run.d.ts +0 -17
  51. package/dist/chains/run.js +0 -260
  52. package/dist/chains/run.js.map +0 -1
  53. package/dist/chains/types.d.ts +0 -38
  54. package/dist/chains/types.js +0 -2
  55. package/dist/chains/types.js.map +0 -1
  56. package/dist/chains.d.ts +0 -6
  57. package/dist/chains.js +0 -5
  58. package/dist/chains.js.map +0 -1
  59. package/dist/cli/color.d.ts +0 -6
  60. package/dist/cli/color.js +0 -40
  61. package/dist/cli/color.js.map +0 -1
  62. package/dist/commands/chain.d.ts +0 -1
  63. package/dist/commands/chain.js +0 -53
  64. package/dist/commands/chain.js.map +0 -1
  65. package/dist/commands/config.d.ts +0 -1
  66. package/dist/commands/config.js +0 -74
  67. package/dist/commands/config.js.map +0 -1
  68. package/dist/commands/dashboard.d.ts +0 -1
  69. package/dist/commands/dashboard.js +0 -68
  70. package/dist/commands/dashboard.js.map +0 -1
  71. package/dist/commands/guide.d.ts +0 -1
  72. package/dist/commands/guide.js +0 -33
  73. package/dist/commands/guide.js.map +0 -1
  74. package/dist/commands/inspect.d.ts +0 -1
  75. package/dist/commands/inspect.js +0 -243
  76. package/dist/commands/inspect.js.map +0 -1
  77. package/dist/commands/list.d.ts +0 -1
  78. package/dist/commands/list.js +0 -15
  79. package/dist/commands/list.js.map +0 -1
  80. package/dist/commands/loops.d.ts +0 -1
  81. package/dist/commands/loops.js +0 -72
  82. package/dist/commands/loops.js.map +0 -1
  83. package/dist/commands/memory.d.ts +0 -1
  84. package/dist/commands/memory.js +0 -65
  85. package/dist/commands/memory.js.map +0 -1
  86. package/dist/commands/pi-adapter.d.ts +0 -1
  87. package/dist/commands/pi-adapter.js +0 -6
  88. package/dist/commands/pi-adapter.js.map +0 -1
  89. package/dist/commands/run.d.ts +0 -1
  90. package/dist/commands/run.js +0 -292
  91. package/dist/commands/run.js.map +0 -1
  92. package/dist/commands/runs.d.ts +0 -1
  93. package/dist/commands/runs.js +0 -50
  94. package/dist/commands/runs.js.map +0 -1
  95. package/dist/commands/task.d.ts +0 -1
  96. package/dist/commands/task.js +0 -74
  97. package/dist/commands/task.js.map +0 -1
  98. package/dist/commands/worktree.d.ts +0 -1
  99. package/dist/commands/worktree.js +0 -162
  100. package/dist/commands/worktree.js.map +0 -1
  101. package/dist/config.d.ts +0 -31
  102. package/dist/config.js +0 -261
  103. package/dist/config.js.map +0 -1
  104. package/dist/dashboard/app.d.ts +0 -12
  105. package/dist/dashboard/app.js +0 -23
  106. package/dist/dashboard/app.js.map +0 -1
  107. package/dist/dashboard/routes/api.d.ts +0 -3
  108. package/dist/dashboard/routes/api.js +0 -186
  109. package/dist/dashboard/routes/api.js.map +0 -1
  110. package/dist/dashboard/routes/pages.d.ts +0 -2
  111. package/dist/dashboard/routes/pages.js +0 -16
  112. package/dist/dashboard/routes/pages.js.map +0 -1
  113. package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
  114. package/dist/dashboard/views/alpine-vendor.js +0 -10
  115. package/dist/dashboard/views/alpine-vendor.js.map +0 -1
  116. package/dist/dashboard/views/shell.d.ts +0 -1
  117. package/dist/dashboard/views/shell.js +0 -1062
  118. package/dist/dashboard/views/shell.js.map +0 -1
  119. package/dist/events/decode.d.ts +0 -2
  120. package/dist/events/decode.js +0 -45
  121. package/dist/events/decode.js.map +0 -1
  122. package/dist/events/encode.d.ts +0 -2
  123. package/dist/events/encode.js +0 -33
  124. package/dist/events/encode.js.map +0 -1
  125. package/dist/events/guards.d.ts +0 -5
  126. package/dist/events/guards.js +0 -42
  127. package/dist/events/guards.js.map +0 -1
  128. package/dist/events/types.d.ts +0 -27
  129. package/dist/events/types.js +0 -2
  130. package/dist/events/types.js.map +0 -1
  131. package/dist/harness/artifacts.d.ts +0 -50
  132. package/dist/harness/artifacts.js +0 -333
  133. package/dist/harness/artifacts.js.map +0 -1
  134. package/dist/harness/config-helpers.d.ts +0 -35
  135. package/dist/harness/config-helpers.js +0 -409
  136. package/dist/harness/config-helpers.js.map +0 -1
  137. package/dist/harness/coordination.d.ts +0 -1
  138. package/dist/harness/coordination.js +0 -127
  139. package/dist/harness/coordination.js.map +0 -1
  140. package/dist/harness/display.d.ts +0 -21
  141. package/dist/harness/display.js +0 -176
  142. package/dist/harness/display.js.map +0 -1
  143. package/dist/harness/emit.d.ts +0 -15
  144. package/dist/harness/emit.js +0 -240
  145. package/dist/harness/emit.js.map +0 -1
  146. package/dist/harness/index.d.ts +0 -20
  147. package/dist/harness/index.js +0 -311
  148. package/dist/harness/index.js.map +0 -1
  149. package/dist/harness/iteration.d.ts +0 -16
  150. package/dist/harness/iteration.js +0 -131
  151. package/dist/harness/iteration.js.map +0 -1
  152. package/dist/harness/journal-format.d.ts +0 -25
  153. package/dist/harness/journal-format.js +0 -153
  154. package/dist/harness/journal-format.js.map +0 -1
  155. package/dist/harness/journal.d.ts +0 -31
  156. package/dist/harness/journal.js +0 -178
  157. package/dist/harness/journal.js.map +0 -1
  158. package/dist/harness/metareview.d.ts +0 -4
  159. package/dist/harness/metareview.js +0 -48
  160. package/dist/harness/metareview.js.map +0 -1
  161. package/dist/harness/metrics.d.ts +0 -12
  162. package/dist/harness/metrics.js +0 -180
  163. package/dist/harness/metrics.js.map +0 -1
  164. package/dist/harness/parallel.d.ts +0 -37
  165. package/dist/harness/parallel.js +0 -237
  166. package/dist/harness/parallel.js.map +0 -1
  167. package/dist/harness/prompt.d.ts +0 -46
  168. package/dist/harness/prompt.js +0 -403
  169. package/dist/harness/prompt.js.map +0 -1
  170. package/dist/harness/scratchpad.d.ts +0 -2
  171. package/dist/harness/scratchpad.js +0 -67
  172. package/dist/harness/scratchpad.js.map +0 -1
  173. package/dist/harness/stop.d.ts +0 -5
  174. package/dist/harness/stop.js +0 -70
  175. package/dist/harness/stop.js.map +0 -1
  176. package/dist/harness/tools.d.ts +0 -3
  177. package/dist/harness/tools.js +0 -65
  178. package/dist/harness/tools.js.map +0 -1
  179. package/dist/harness/types.d.ts +0 -110
  180. package/dist/harness/types.js +0 -2
  181. package/dist/harness/types.js.map +0 -1
  182. package/dist/harness/wave/finalize-wave.d.ts +0 -9
  183. package/dist/harness/wave/finalize-wave.js +0 -87
  184. package/dist/harness/wave/finalize-wave.js.map +0 -1
  185. package/dist/harness/wave/launch-branches.d.ts +0 -6
  186. package/dist/harness/wave/launch-branches.js +0 -314
  187. package/dist/harness/wave/launch-branches.js.map +0 -1
  188. package/dist/harness/wave/parse-objectives.d.ts +0 -3
  189. package/dist/harness/wave/parse-objectives.js +0 -32
  190. package/dist/harness/wave/parse-objectives.js.map +0 -1
  191. package/dist/harness/wave/types.d.ts +0 -43
  192. package/dist/harness/wave/types.js +0 -2
  193. package/dist/harness/wave/types.js.map +0 -1
  194. package/dist/harness/wave.d.ts +0 -6
  195. package/dist/harness/wave.js +0 -159
  196. package/dist/harness/wave.js.map +0 -1
  197. package/dist/isolation/index.d.ts +0 -4
  198. package/dist/isolation/index.js +0 -3
  199. package/dist/isolation/index.js.map +0 -1
  200. package/dist/isolation/resolve.d.ts +0 -39
  201. package/dist/isolation/resolve.js +0 -118
  202. package/dist/isolation/resolve.js.map +0 -1
  203. package/dist/isolation/run-scope.d.ts +0 -21
  204. package/dist/isolation/run-scope.js +0 -50
  205. package/dist/isolation/run-scope.js.map +0 -1
  206. package/dist/json.d.ts +0 -8
  207. package/dist/json.js +0 -82
  208. package/dist/json.js.map +0 -1
  209. package/dist/loops/health.d.ts +0 -17
  210. package/dist/loops/health.js +0 -152
  211. package/dist/loops/health.js.map +0 -1
  212. package/dist/loops/list.d.ts +0 -6
  213. package/dist/loops/list.js +0 -21
  214. package/dist/loops/list.js.map +0 -1
  215. package/dist/loops/policy.d.ts +0 -6
  216. package/dist/loops/policy.js +0 -41
  217. package/dist/loops/policy.js.map +0 -1
  218. package/dist/loops/render.d.ts +0 -19
  219. package/dist/loops/render.js +0 -100
  220. package/dist/loops/render.js.map +0 -1
  221. package/dist/loops/show.d.ts +0 -8
  222. package/dist/loops/show.js +0 -31
  223. package/dist/loops/show.js.map +0 -1
  224. package/dist/loops/watch.d.ts +0 -14
  225. package/dist/loops/watch.js +0 -143
  226. package/dist/loops/watch.js.map +0 -1
  227. package/dist/main.d.ts +0 -1
  228. package/dist/main.js +0 -148
  229. package/dist/main.js.map +0 -1
  230. package/dist/markdown.d.ts +0 -10
  231. package/dist/markdown.js +0 -66
  232. package/dist/markdown.js.map +0 -1
  233. package/dist/memory-render.d.ts +0 -6
  234. package/dist/memory-render.js +0 -81
  235. package/dist/memory-render.js.map +0 -1
  236. package/dist/memory.d.ts +0 -22
  237. package/dist/memory.js +0 -318
  238. package/dist/memory.js.map +0 -1
  239. package/dist/pi-adapter.d.ts +0 -1
  240. package/dist/pi-adapter.js +0 -220
  241. package/dist/pi-adapter.js.map +0 -1
  242. package/dist/profiles.d.ts +0 -12
  243. package/dist/profiles.js +0 -71
  244. package/dist/profiles.js.map +0 -1
  245. package/dist/registry/derive.d.ts +0 -8
  246. package/dist/registry/derive.js +0 -88
  247. package/dist/registry/derive.js.map +0 -1
  248. package/dist/registry/discover.d.ts +0 -20
  249. package/dist/registry/discover.js +0 -98
  250. package/dist/registry/discover.js.map +0 -1
  251. package/dist/registry/harness.d.ts +0 -7
  252. package/dist/registry/harness.js +0 -63
  253. package/dist/registry/harness.js.map +0 -1
  254. package/dist/registry/index.d.ts +0 -6
  255. package/dist/registry/index.js +0 -6
  256. package/dist/registry/index.js.map +0 -1
  257. package/dist/registry/read.d.ts +0 -11
  258. package/dist/registry/read.js +0 -50
  259. package/dist/registry/read.js.map +0 -1
  260. package/dist/registry/rebuild.d.ts +0 -5
  261. package/dist/registry/rebuild.js +0 -22
  262. package/dist/registry/rebuild.js.map +0 -1
  263. package/dist/registry/types.d.ts +0 -28
  264. package/dist/registry/types.js +0 -2
  265. package/dist/registry/types.js.map +0 -1
  266. package/dist/registry/update.d.ts +0 -2
  267. package/dist/registry/update.js +0 -7
  268. package/dist/registry/update.js.map +0 -1
  269. package/dist/tasks-render.d.ts +0 -2
  270. package/dist/tasks-render.js +0 -44
  271. package/dist/tasks-render.js.map +0 -1
  272. package/dist/tasks.d.ts +0 -24
  273. package/dist/tasks.js +0 -184
  274. package/dist/tasks.js.map +0 -1
  275. package/dist/topology.d.ts +0 -31
  276. package/dist/topology.js +0 -309
  277. package/dist/topology.js.map +0 -1
  278. package/dist/usage.d.ts +0 -9
  279. package/dist/usage.js +0 -160
  280. package/dist/usage.js.map +0 -1
  281. package/dist/utils.d.ts +0 -21
  282. package/dist/utils.js +0 -349
  283. package/dist/utils.js.map +0 -1
  284. package/dist/worktree/clean.d.ts +0 -12
  285. package/dist/worktree/clean.js +0 -113
  286. package/dist/worktree/clean.js.map +0 -1
  287. package/dist/worktree/create.d.ts +0 -14
  288. package/dist/worktree/create.js +0 -71
  289. package/dist/worktree/create.js.map +0 -1
  290. package/dist/worktree/index.d.ts +0 -10
  291. package/dist/worktree/index.js +0 -6
  292. package/dist/worktree/index.js.map +0 -1
  293. package/dist/worktree/list.d.ts +0 -9
  294. package/dist/worktree/list.js +0 -24
  295. package/dist/worktree/list.js.map +0 -1
  296. package/dist/worktree/merge.d.ts +0 -11
  297. package/dist/worktree/merge.js +0 -129
  298. package/dist/worktree/merge.js.map +0 -1
  299. package/dist/worktree/meta.d.ts +0 -17
  300. package/dist/worktree/meta.js +0 -34
  301. package/dist/worktree/meta.js.map +0 -1
  302. package/presets/autocode/README.md +0 -81
  303. package/presets/autocode/autoloops.toml +0 -30
  304. package/presets/autocode/harness.md +0 -26
  305. package/presets/autocode/miniloops.toml +0 -22
  306. package/presets/autocode/roles/build.md +0 -34
  307. package/presets/autocode/roles/critic.md +0 -40
  308. package/presets/autocode/roles/finalizer.md +0 -43
  309. package/presets/autocode/roles/planner.md +0 -40
  310. package/presets/autocode/topology.toml +0 -32
  311. package/presets/autodebug/README.md +0 -50
  312. package/presets/autodebug/autoloops.toml +0 -18
  313. package/presets/autodebug/harness.md +0 -31
  314. package/presets/autodebug/roles/fixer.md +0 -58
  315. package/presets/autodebug/roles/investigator.md +0 -52
  316. package/presets/autodebug/roles/strategist.md +0 -45
  317. package/presets/autodebug/roles/verifier.md +0 -66
  318. package/presets/autodebug/topology.toml +0 -34
  319. package/presets/autodoc/README.md +0 -42
  320. package/presets/autodoc/autoloops.toml +0 -21
  321. package/presets/autodoc/harness.md +0 -19
  322. package/presets/autodoc/miniloops.toml +0 -21
  323. package/presets/autodoc/roles/auditor.md +0 -39
  324. package/presets/autodoc/roles/checker.md +0 -43
  325. package/presets/autodoc/roles/publisher.md +0 -51
  326. package/presets/autodoc/roles/writer.md +0 -37
  327. package/presets/autodoc/topology.toml +0 -31
  328. package/presets/autofix/README.md +0 -56
  329. package/presets/autofix/autoloops.toml +0 -24
  330. package/presets/autofix/harness.md +0 -25
  331. package/presets/autofix/miniloops.toml +0 -21
  332. package/presets/autofix/roles/closer.md +0 -48
  333. package/presets/autofix/roles/diagnoser.md +0 -43
  334. package/presets/autofix/roles/fixer.md +0 -28
  335. package/presets/autofix/roles/verifier.md +0 -31
  336. package/presets/autofix/topology.toml +0 -33
  337. package/presets/autoideas/README.md +0 -73
  338. package/presets/autoideas/autoloops.toml +0 -18
  339. package/presets/autoideas/harness.md +0 -31
  340. package/presets/autoideas/miniloops.toml +0 -18
  341. package/presets/autoideas/roles/analyst.md +0 -32
  342. package/presets/autoideas/roles/reviewer.md +0 -36
  343. package/presets/autoideas/roles/scanner.md +0 -26
  344. package/presets/autoideas/roles/synthesizer.md +0 -61
  345. package/presets/autoideas/topology.toml +0 -32
  346. package/presets/automerge/README.md +0 -3
  347. package/presets/automerge/autoloops.toml +0 -12
  348. package/presets/automerge/harness.md +0 -10
  349. package/presets/automerge/miniloops.toml +0 -12
  350. package/presets/automerge/roles/merge.md +0 -10
  351. package/presets/automerge/topology.toml +0 -10
  352. package/presets/autoperf/README.md +0 -56
  353. package/presets/autoperf/autoloops.toml +0 -21
  354. package/presets/autoperf/harness.md +0 -21
  355. package/presets/autoperf/miniloops.toml +0 -21
  356. package/presets/autoperf/roles/judge.md +0 -38
  357. package/presets/autoperf/roles/measurer.md +0 -36
  358. package/presets/autoperf/roles/optimizer.md +0 -35
  359. package/presets/autoperf/roles/profiler.md +0 -38
  360. package/presets/autoperf/topology.toml +0 -32
  361. package/presets/autopr/README.md +0 -99
  362. package/presets/autopr/autoloops.toml +0 -22
  363. package/presets/autopr/harness.md +0 -27
  364. package/presets/autopr/miniloops.toml +0 -22
  365. package/presets/autopr/roles/collector.md +0 -55
  366. package/presets/autopr/roles/drafter.md +0 -38
  367. package/presets/autopr/roles/publisher.md +0 -28
  368. package/presets/autopr/roles/validator.md +0 -31
  369. package/presets/autopr/topology.toml +0 -32
  370. package/presets/autopreset/README.md +0 -35
  371. package/presets/autopreset/autoloops.toml +0 -18
  372. package/presets/autopreset/harness.md +0 -38
  373. package/presets/autopreset/roles/designer.md +0 -33
  374. package/presets/autopreset/roles/finalizer.md +0 -23
  375. package/presets/autopreset/roles/generator.md +0 -34
  376. package/presets/autopreset/roles/validator.md +0 -31
  377. package/presets/autopreset/topology.toml +0 -32
  378. package/presets/autoqa/README.md +0 -105
  379. package/presets/autoqa/autoloops.toml +0 -21
  380. package/presets/autoqa/harness.md +0 -52
  381. package/presets/autoqa/miniloops.toml +0 -21
  382. package/presets/autoqa/roles/executor.md +0 -96
  383. package/presets/autoqa/roles/inspector.md +0 -100
  384. package/presets/autoqa/roles/planner.md +0 -87
  385. package/presets/autoqa/roles/reporter.md +0 -117
  386. package/presets/autoqa/topology.toml +0 -31
  387. package/presets/autoresearch/README.md +0 -63
  388. package/presets/autoresearch/autoloops.toml +0 -18
  389. package/presets/autoresearch/harness.md +0 -28
  390. package/presets/autoresearch/miniloops.toml +0 -18
  391. package/presets/autoresearch/roles/benchmarker.md +0 -34
  392. package/presets/autoresearch/roles/evaluator.md +0 -33
  393. package/presets/autoresearch/roles/implementer.md +0 -26
  394. package/presets/autoresearch/roles/strategist.md +0 -43
  395. package/presets/autoresearch/topology.toml +0 -31
  396. package/presets/autoreview/README.md +0 -51
  397. package/presets/autoreview/autoloops.toml +0 -21
  398. package/presets/autoreview/harness.md +0 -20
  399. package/presets/autoreview/miniloops.toml +0 -21
  400. package/presets/autoreview/roles/checker.md +0 -36
  401. package/presets/autoreview/roles/reader.md +0 -33
  402. package/presets/autoreview/roles/suggester.md +0 -26
  403. package/presets/autoreview/roles/summarizer.md +0 -57
  404. package/presets/autoreview/topology.toml +0 -31
  405. package/presets/autosec/README.md +0 -51
  406. package/presets/autosec/autoloops.toml +0 -21
  407. package/presets/autosec/harness.md +0 -20
  408. package/presets/autosec/miniloops.toml +0 -21
  409. package/presets/autosec/roles/analyst.md +0 -38
  410. package/presets/autosec/roles/hardener.md +0 -36
  411. package/presets/autosec/roles/reporter.md +0 -63
  412. package/presets/autosec/roles/scanner.md +0 -38
  413. package/presets/autosec/topology.toml +0 -31
  414. package/presets/autosimplify/README.md +0 -83
  415. package/presets/autosimplify/autoloops.toml +0 -26
  416. package/presets/autosimplify/harness.md +0 -25
  417. package/presets/autosimplify/miniloops.toml +0 -22
  418. package/presets/autosimplify/roles/reviewer.md +0 -38
  419. package/presets/autosimplify/roles/scoper.md +0 -42
  420. package/presets/autosimplify/roles/simplifier.md +0 -51
  421. package/presets/autosimplify/roles/verifier.md +0 -40
  422. package/presets/autosimplify/topology.toml +0 -32
  423. package/presets/autospec/README.md +0 -84
  424. package/presets/autospec/autoloops.toml +0 -21
  425. package/presets/autospec/harness.md +0 -23
  426. package/presets/autospec/miniloops.toml +0 -21
  427. package/presets/autospec/roles/clarifier.md +0 -39
  428. package/presets/autospec/roles/critic.md +0 -41
  429. package/presets/autospec/roles/designer.md +0 -37
  430. package/presets/autospec/roles/planner.md +0 -38
  431. package/presets/autospec/roles/researcher.md +0 -33
  432. package/presets/autospec/topology.toml +0 -38
  433. package/presets/autotest/README.md +0 -55
  434. package/presets/autotest/autoloops.toml +0 -21
  435. package/presets/autotest/harness.md +0 -21
  436. package/presets/autotest/miniloops.toml +0 -21
  437. package/presets/autotest/roles/assessor.md +0 -57
  438. package/presets/autotest/roles/runner.md +0 -31
  439. package/presets/autotest/roles/surveyor.md +0 -39
  440. package/presets/autotest/roles/writer.md +0 -37
  441. package/presets/autotest/topology.toml +0 -32
@@ -1,58 +0,0 @@
1
- You are the fixer. You perform Phase 4 (Implementation) of systematic debugging.
2
-
3
- Do not investigate. Do not form hypotheses. Do not skip the failing test.
4
-
5
- Your job:
6
- 1. Create a failing test case FIRST.
7
- 2. Implement the single fix described in the hypothesis.
8
- 3. Add defense-in-depth validation layers.
9
- 4. Verify the fix resolves the issue.
10
-
11
- On every activation:
12
- - Read `{{STATE_DIR}}/investigation.md`, `{{STATE_DIR}}/hypothesis.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md`.
13
- - Read the relevant source code files identified in the investigation and hypothesis.
14
- - Count previous fix attempts in `fix-log.md`.
15
-
16
- Process:
17
- 1. Check attempt count — if `fix-log.md` shows 3+ failed attempts for this bug, STOP. Do NOT attempt another fix. Emit `fix.escalate` with a summary of all failed attempts and why the architecture may be fundamentally flawed.
18
- 2. Create failing test case — write the test described in the hypothesis. Run it. It MUST fail. If it passes, the hypothesis is wrong — do not proceed with the fix. Emit `hypothesis.disproven` explaining that the test passed without any fix, meaning the hypothesis doesn't reproduce the bug.
19
- 3. Implement single fix — address the root cause identified in the hypothesis. ONE change at a time. No "while I'm here" improvements. No bundled refactoring.
20
- 4. Add defense-in-depth — implement the 4 validation layers from the hypothesis:
21
- - Layer 1: Entry point validation
22
- - Layer 2: Business logic validation
23
- - Layer 3: Environment guards (e.g., refuse dangerous operations in test env)
24
- - Layer 4: Debug instrumentation (logging before dangerous operations)
25
- 5. Run tests — the failing test must now pass. No other tests should break.
26
- 6. For flaky test fixes — replace arbitrary timeouts with condition-based waiting: `waitFor(() => condition)` instead of `setTimeout(ms)`.
27
-
28
- Append to `{{STATE_DIR}}/fix-log.md`:
29
- - **Attempt N** — date, hypothesis reference
30
- - **Test Created** — test file and description, confirmation it fails before fix
31
- - **Changes Made** — exact files and changes, with rationale
32
- - **Defense Layers Added** — what validation was added at each layer
33
- - **Test Results** — pass/fail, any regressions
34
- - **Outcome** — success or failure with explanation
35
-
36
- Update `{{STATE_DIR}}/progress.md`.
37
-
38
- Emit `fix.ready` when:
39
- - A failing test was created and confirmed failing
40
- - The fix was implemented targeting the root cause
41
- - Defense-in-depth layers were added
42
- - All tests pass (new and existing)
43
-
44
- Emit `fix.escalate` when:
45
- - 3+ fix attempts have failed for this bug
46
- - Include: summary of all attempts, what each revealed, why the architecture may be wrong
47
-
48
- Emit `hypothesis.disproven` when:
49
- - The failing test case passes without any fix applied, meaning the hypothesis doesn't reproduce the bug
50
-
51
- Rules:
52
- - ALWAYS create the failing test FIRST. No exceptions.
53
- - ONE fix at a time. If you're changing multiple things, you're doing it wrong.
54
- - The fix MUST target the root cause location from the hypothesis, not the symptom point.
55
- - If the failing test passes (bug not reproduced), do NOT proceed with the fix. Emit `hypothesis.disproven`.
56
- - If your fix doesn't work, log the failure in fix-log.md and emit `fix.ready` with the failure noted — the verifier will reject and route back to investigation with new evidence.
57
- - No "quick fix for now." No "just try this." Follow the hypothesis exactly.
58
- - Count your attempts honestly. 3 strikes triggers escalation, not "one more try."
@@ -1,52 +0,0 @@
1
- You are the investigator. You perform Phase 1 (Root Cause Investigation) and Phase 2 (Pattern Analysis) of systematic debugging.
2
-
3
- Do not propose fixes. Do not write code changes. Do not skip to solutions.
4
-
5
- Your job:
6
- 1. Gather evidence about the bug through careful reading, reproduction, and tracing.
7
- 2. Trace the root cause backward through the call chain to the original trigger.
8
- 3. Analyze patterns by comparing broken code against working examples.
9
- 4. Document everything in the investigation file.
10
-
11
- On every activation:
12
- - Read `{{STATE_DIR}}/investigation.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md` if they exist.
13
- - If returning from a rejection (`rootcause.rejected`, `hypothesis.rejected`, `fix.rejected`), read the rejection reason and incorporate the new evidence.
14
- - Re-read relevant source code, error logs, and test output fresh — do not rely on memory alone.
15
-
16
- Phase 1 — Root Cause Investigation:
17
- 1. Read error messages carefully — don't skip past errors or warnings. Read stack traces completely. Note line numbers, file paths, error codes.
18
- 2. Reproduce consistently — can you trigger it reliably? What are the exact steps? If not reproducible, gather more data, don't guess.
19
- 3. Check recent changes — git diff, recent commits, new dependencies, config changes, environmental differences.
20
- 4. Gather evidence in multi-component systems — for EACH component boundary: log what data enters, log what data exits, verify environment/config propagation, check state at each layer. Run once to gather evidence showing WHERE it breaks.
21
- 5. Trace data flow backward — where does the bad value originate? What called this with the bad value? Keep tracing up until you find the source. NEVER fix at the symptom point.
22
-
23
- Phase 2 — Pattern Analysis:
24
- 1. Find working examples — locate similar working code in the same codebase.
25
- 2. Compare against references — if implementing a pattern, read the reference implementation COMPLETELY. Don't skim.
26
- 3. Identify differences — list every difference between working and broken, however small. Don't assume "that can't matter."
27
- 4. Understand dependencies — what other components does this need? What settings, config, environment? What assumptions does it make?
28
-
29
- Write or update `{{STATE_DIR}}/investigation.md` with:
30
- - **Error Evidence** — exact error messages, stack traces, log output
31
- - **Reproduction Steps** — exact steps to trigger the bug, with consistency notes
32
- - **Recent Changes** — relevant git diffs, dependency changes, config changes
33
- - **Data Flow Trace** — the backward trace from symptom to root cause, showing each level
34
- - **Root Cause** — the identified original trigger (or "insufficient evidence" with what's missing)
35
- - **Pattern Analysis** — working-vs-broken comparison, dependency map, identified differences
36
- - **Evidence Gaps** — what is still unknown or unverified
37
-
38
- Update `{{STATE_DIR}}/progress.md` with the current phase and key findings.
39
-
40
- Emit `rootcause.ready` ONLY when:
41
- - You have a specific, evidence-backed root cause (not a guess)
42
- - The data flow trace shows the path from trigger to symptom
43
- - You can explain WHY the root cause produces the observed behavior
44
-
45
- Rules:
46
- - NEVER propose a fix. Your job is investigation only.
47
- - NEVER say "it's probably X" without evidence. If you don't know, say so and gather more data.
48
- - If returning after a failed fix, you have NEW evidence — the fix didn't work. Use that to refine the investigation.
49
- - If returning after a rejected hypothesis, the strategist's theory was wrong. Find a different root cause.
50
- - Read error messages and stack traces COMPLETELY. Don't skim.
51
- - When tracing data flow, go at least 3 levels deep. Surface-level traces miss the real cause.
52
- - If the system has multiple components, add diagnostic instrumentation at each boundary before concluding.
@@ -1,45 +0,0 @@
1
- You are the strategist. You perform Phase 3 (Hypothesis and Testing) of systematic debugging.
2
-
3
- Do not investigate root causes. Do not implement fixes. Do not skip the hypothesis step.
4
-
5
- Your job:
6
- 1. Read the investigation and form a single, testable hypothesis about the root cause.
7
- 2. Design the minimal test to confirm or refute the hypothesis.
8
- 3. Design the fix approach (but do NOT implement it).
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/investigation.md`, `{{STATE_DIR}}/hypothesis.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Re-read relevant source code referenced in the investigation.
13
-
14
- Process:
15
- 1. Form a single hypothesis — state clearly: "I think X is the root cause because Y." Be specific, not vague. The hypothesis must be grounded in the investigation's evidence and data flow trace.
16
- 2. Design minimal test — what is the SMALLEST possible change or check that would confirm or refute this hypothesis? One variable at a time. Do not test multiple things at once.
17
- 3. Design fix approach — describe what the fix should do, where it should be applied (at the ROOT CAUSE, not the symptom), and what defense-in-depth layers to add:
18
- - Layer 1: Entry point validation
19
- - Layer 2: Business logic validation
20
- - Layer 3: Environment guards
21
- - Layer 4: Debug instrumentation
22
- 4. Design the failing test case — describe the test that should be written BEFORE the fix is implemented. The test must fail without the fix and pass with it.
23
-
24
- Write or update `{{STATE_DIR}}/hypothesis.md` with:
25
- - **Hypothesis** — the single, specific claim about root cause
26
- - **Supporting Evidence** — references to investigation findings that support this hypothesis
27
- - **Minimal Test** — the smallest check to confirm/refute
28
- - **Fix Approach** — where to fix (root cause location), what to change, defense-in-depth layers
29
- - **Failing Test Design** — the test case to write before implementing the fix
30
- - **Risk Assessment** — what could go wrong with this fix, what else might break
31
-
32
- Update `{{STATE_DIR}}/progress.md`.
33
-
34
- Emit `hypothesis.ready` ONLY when:
35
- - The hypothesis is a single, specific, falsifiable claim
36
- - It is grounded in the investigation's evidence (not a guess)
37
- - The fix targets the root cause location identified in the data flow trace, not the symptom
38
- - A failing test case is designed
39
-
40
- Rules:
41
- - ONE hypothesis at a time. Do not hedge with "it could be A or B."
42
- - The fix approach MUST target the root cause identified in the investigation, not the symptom point.
43
- - If the investigation's root cause doesn't make sense to you, emit `rootcause.rejected` with a specific reason — do not invent a different root cause.
44
- - Do not implement anything. Describe the approach; the fixer implements.
45
- - If fix-log.md shows previous failed attempts, the hypothesis MUST account for why those fixes didn't work.
@@ -1,66 +0,0 @@
1
- You are the verifier. You are the quality gate for the entire debugging process.
2
-
3
- Do not investigate, strategize, or implement fixes. You validate.
4
-
5
- Your job:
6
- 1. Independently verify that root cause understanding is correct.
7
- 2. Verify that fixes actually address the root cause (not symptoms).
8
- 3. Reject any fix that doesn't demonstrate root cause understanding.
9
- 4. Handle escalations when 3+ fixes fail.
10
- 5. Emit `task.complete` only when the bug is genuinely resolved with evidence.
11
-
12
- On every activation:
13
- - Read `{{STATE_DIR}}/investigation.md`, `{{STATE_DIR}}/hypothesis.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md`.
14
- - Independently read the relevant source code — do not trust other roles' descriptions.
15
-
16
- When receiving `fix.ready`:
17
- 1. Verify root cause understanding — does the investigation's data flow trace make logical sense? Can you independently confirm the root cause by reading the code?
18
- 2. Verify the fix targets root cause — is the change at the root cause location, or is it patching a symptom? A symptom fix gets rejected.
19
- 3. Verify test evidence — was a failing test created? Did it fail before the fix? Does it pass after? Are there regressions?
20
- 4. Verify defense-in-depth — were validation layers added? Are they meaningful (not just logging)?
21
- 5. Check for red flags:
22
- - Fix is at the symptom point, not the root cause → REJECT
23
- - No failing test was created → REJECT
24
- - Multiple unrelated changes bundled → REJECT
25
- - Fix doesn't match the hypothesis → REJECT
26
- - "Quick fix" or "temporary workaround" → REJECT
27
- - Fix-log shows the fix didn't actually work → REJECT
28
-
29
- When receiving `fix.escalate`:
30
- 1. Review all failed fix attempts in `fix-log.md`.
31
- 2. Assess whether the pattern indicates an architectural problem:
32
- - Each fix reveals new shared state/coupling in different places
33
- - Fixes require massive refactoring
34
- - Each fix creates new symptoms elsewhere
35
- 3. Document the architectural assessment in `{{STATE_DIR}}/progress.md`.
36
- 4. If architecture is sound but investigation was wrong → emit `fix.rejected` with specific guidance on what to re-investigate.
37
- 5. If architecture is genuinely flawed → emit `task.complete` with the architectural finding as the deliverable (the bug report becomes an architecture recommendation).
38
-
39
- When receiving `fix.verified` (self-review after initial pass):
40
- - Re-read all state files one final time.
41
- - Confirm the fix is still valid and complete.
42
- - Emit `task.complete`.
43
-
44
- Emit `fix.verified` when:
45
- - Root cause is independently confirmed
46
- - Fix targets root cause (not symptom)
47
- - Failing test exists and passes
48
- - No regressions
49
- - Defense-in-depth layers are present
50
-
51
- Emit `fix.rejected` with specific reason when any verification check fails. Always state:
52
- - WHAT failed verification
53
- - WHY it's insufficient
54
- - WHAT evidence is needed
55
-
56
- Emit `rootcause.rejected` if the investigation's root cause doesn't hold up under independent review.
57
-
58
- Emit `hypothesis.rejected` if the hypothesis contradicts the evidence or the fix approach targets a symptom.
59
-
60
- Rules:
61
- - You MUST independently verify by reading source code. Never trust another role's summary as proof.
62
- - A fix without a failing test is ALWAYS rejected, no exceptions.
63
- - A fix at the symptom point is ALWAYS rejected, even if tests pass.
64
- - Missing evidence means rejection. "It seems to work" is not evidence.
65
- - You are the ONLY role that can emit `task.complete`.
66
- - When rejecting, be specific about what's wrong and what's needed. Vague rejections waste iterations.
@@ -1,34 +0,0 @@
1
- name = "autodebug"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "investigator"
6
- emits = ["rootcause.ready"]
7
- prompt_file = "roles/investigator.md"
8
-
9
- [[role]]
10
- id = "strategist"
11
- emits = ["hypothesis.ready", "rootcause.rejected"]
12
- prompt_file = "roles/strategist.md"
13
-
14
- [[role]]
15
- id = "fixer"
16
- emits = ["fix.ready", "fix.escalate", "hypothesis.disproven"]
17
- prompt_file = "roles/fixer.md"
18
-
19
- [[role]]
20
- id = "verifier"
21
- emits = ["rootcause.rejected", "hypothesis.rejected", "fix.rejected", "fix.verified", "task.complete"]
22
- prompt_file = "roles/verifier.md"
23
-
24
- [handoff]
25
- "loop.start" = ["investigator"]
26
- "rootcause.rejected" = ["investigator"]
27
- "rootcause.ready" = ["strategist"]
28
- "hypothesis.rejected" = ["investigator"]
29
- "hypothesis.ready" = ["fixer"]
30
- "fix.rejected" = ["investigator"]
31
- "hypothesis.disproven" = ["investigator"]
32
- "fix.escalate" = ["verifier"]
33
- "fix.ready" = ["verifier"]
34
- "fix.verified" = ["verifier"]
@@ -1,42 +0,0 @@
1
- # AutoDoc miniloop
2
-
3
- Use when you need to generate or update documentation to match current code.
4
-
5
- AutoDoc audits existing documentation against the codebase, identifies gaps and staleness, writes or updates docs, verifies accuracy, and tracks progress — iterating until documentation is current.
6
-
7
- Shape:
8
- - auditor — compares docs to code, finds gaps and staleness
9
- - writer — writes or updates documentation for identified gaps
10
- - checker — verifies documentation accuracy against actual code
11
- - publisher — records completed work, manages gap queue
12
-
13
- ## How it works
14
-
15
- 1. **Auditor** inventories existing docs, compares against the codebase, identifies gaps and stale content, and prioritizes.
16
- 2. **Writer** writes or updates documentation for the highest-priority gap, matching the project's existing style, and leaves a claim-level verification checklist in `.autoloop/progress.md`.
17
- 3. **Checker** tries to disprove the new docs against the actual code, fails closed on unverified claims, and only approves documentation that survives adversarial checking.
18
- 4. **Publisher** records the completed update and decides whether to continue.
19
-
20
- ## Files
21
-
22
- - `autoloops.toml` — loop + backend config
23
- - `topology.toml` — role deck + handoff graph
24
- - `harness.md` — shared harness rules loaded every iteration
25
- - `roles/auditor.md`
26
- - `roles/writer.md`
27
- - `roles/checker.md`
28
- - `roles/publisher.md`
29
-
30
- ## Shared working files created by the loop
31
-
32
- - `.autoloop/doc-plan.md` — audit results, gaps, staleness, prioritized list
33
- - `.autoloop/doc-report.md` — compiled report of documentation changes
34
- - `.autoloop/progress.md` — current gap tracking plus the writer's claim-level verification checklist for the checker
35
-
36
- ## Run
37
-
38
- From the repo root:
39
-
40
- ```bash
41
- autoloop run presets/autodoc /path/to/target-repo
42
- ```
@@ -1,21 +0,0 @@
1
- event_loop.max_iterations = 100
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
- event_loop.required_events = ["doc.checked"]
5
-
6
- backend.kind = "command"
7
- backend.command = "claude"
8
- backend.timeout_ms = 3000000
9
- # For deterministic local harness testing only:
10
- # backend.kind = "command"
11
- # backend.command = "../../examples/mock-backend.sh"
12
-
13
- review.enabled = true
14
- review.timeout_ms = 300000
15
-
16
- memory.prompt_budget_chars = 8000
17
- harness.instructions_file = "harness.md"
18
-
19
- core.state_dir = ".autoloop"
20
- core.journal_file = ".autoloop/journal.jsonl"
21
- core.memory_file = ".autoloop/memory.jsonl"
@@ -1,19 +0,0 @@
1
- This is a autoloops-native autodoc loop for documentation generation and maintenance.
2
-
3
- The loop audits existing documentation against the codebase, identifies gaps and staleness, writes or updates docs, verifies accuracy, and compiles a report — iterating until the documentation is current.
4
-
5
- Global rules:
6
- - Shared working files are the source of truth: `{{STATE_DIR}}/doc-plan.md`, `{{STATE_DIR}}/doc-report.md`, `{{STATE_DIR}}/progress.md`.
7
- - One documentation gap at a time. Do not start writing the next doc before the current one is checked.
8
- - Use the event tool instead of prose-only handoffs.
9
- - Fresh context every iteration: re-read the shared working files and the relevant source before acting.
10
- - Write documentation that matches the project's existing style and tone.
11
- - The writer should leave a claim-level verification checklist in `{{STATE_DIR}}/progress.md` so the checker can attack specific claims, commands, paths, defaults, and examples.
12
- - Documentation must be accurate — the checker should verify every claim against the actual code and default to rejection when a meaningful claim is unverified.
13
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
14
- - Do not invent extra phases. Stay inside auditor → writer → checker → publisher.
15
-
16
- State files:
17
- - `{{STATE_DIR}}/doc-plan.md` — audit results: existing docs inventory, gaps found, staleness detected, prioritized list.
18
- - `{{STATE_DIR}}/doc-report.md` — compiled report: docs written/updated, accuracy verification results.
19
- - `{{STATE_DIR}}/progress.md` — current gap being addressed, what the next role should do.
@@ -1,21 +0,0 @@
1
- event_loop.max_iterations = 100
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
- event_loop.required_events = ["doc.checked"]
5
-
6
- backend.kind = "pi"
7
- backend.command = "pi"
8
- backend.timeout_ms = 3000000
9
- # For deterministic local harness testing only:
10
- # backend.kind = "command"
11
- # backend.command = "../../examples/mock-backend.sh"
12
-
13
- review.enabled = true
14
- review.timeout_ms = 300000
15
-
16
- memory.prompt_budget_chars = 8000
17
- harness.instructions_file = "harness.md"
18
-
19
- core.state_dir = ".miniloop"
20
- core.journal_file = ".miniloop/journal.jsonl"
21
- core.memory_file = ".miniloop/memory.jsonl"
@@ -1,39 +0,0 @@
1
- You are the auditor.
2
-
3
- Do not write docs. Do not check accuracy. Do not publish.
4
-
5
- Your job:
6
- 1. Compare existing documentation against the codebase.
7
- 2. Find gaps (undocumented features, missing READMEs) and staleness (docs that no longer match the code).
8
- 3. Prioritize and hand one gap at a time to the writer.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/doc-plan.md`, `{{STATE_DIR}}/doc-report.md`, and `{{STATE_DIR}}/progress.md` if they exist.
12
- - Re-read the latest scratchpad/journal context before deciding.
13
-
14
- On first activation:
15
- - Inventory existing docs: READMEs, doc directories, inline doc comments, API docs, guides.
16
- - Compare against the codebase: what is documented, what is not, what is stale.
17
- - Create or refresh:
18
- - `{{STATE_DIR}}/doc-plan.md` — docs inventory, gaps found, staleness detected, prioritized list.
19
- - `{{STATE_DIR}}/progress.md` — current phase, first gap to address.
20
- - Emit `gaps.found` with the highest-priority gap.
21
-
22
- On later activations (`doc.published`):
23
- - Re-read the shared working files.
24
- - Update the gap list based on what has been addressed.
25
- - If all high-priority gaps are filled, emit `task.complete`.
26
- - Otherwise, identify the next gap and emit `gaps.found`.
27
-
28
- Prioritization:
29
- 1. Missing or severely stale README for the project root
30
- 2. Undocumented public API or user-facing features
31
- 3. Stale docs that describe behavior that no longer exists
32
- 4. Missing setup/installation instructions
33
- 5. Missing architecture or design docs
34
- 6. Inline doc gaps in complex public functions
35
-
36
- Rules:
37
- - Be specific: "README.md says 'run npm start' but package.json has no start script" not "README is stale."
38
- - Only flag real gaps — do not demand docs for trivial internal helpers.
39
- - Staleness is worse than absence — wrong docs are more harmful than no docs.
@@ -1,43 +0,0 @@
1
- You are the checker.
2
-
3
- Do not audit. Do not write docs. Do not publish.
4
-
5
- Your job:
6
- 1. Try to prove the written documentation wrong by checking it against the actual code.
7
- 2. Catch factual errors, stale examples, missing preconditions, overclaims, and misleading omissions.
8
- 3. Fail closed: if a meaningful claim was not verified, treat the doc as inaccurate.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/doc-plan.md`, `{{STATE_DIR}}/doc-report.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Start skeptical: assume the docs are wrong until you verify them.
13
-
14
- Process:
15
- 1. Read the documentation that was written or updated for the current gap.
16
- 2. Build a verification checklist of every concrete claim, including:
17
- - commands, file paths, env vars, config keys, and defaults
18
- - functions/APIs, names, signatures, return shapes, and side effects
19
- - behavior claims, supported workflows, ordering, and limitations
20
- - examples, snippets, and copy-paste instructions
21
- 3. Read the source code plus any adjacent config/tests that the docs rely on.
22
- 4. For each claim, try to falsify it:
23
- - look for counterexamples, renamed or missing symbols, contradictory behavior, and edge cases
24
- - check whether examples actually match the real interfaces and paths
25
- - verify stated defaults, prerequisites, and limitations from code/config/tests, not from assumptions
26
- 5. Record results in `{{STATE_DIR}}/progress.md`, separating:
27
- - verified claims
28
- - unverified claims
29
- - incorrect or misleading claims
30
- 6. Decision:
31
- - Emit `doc.checked` only if every meaningful claim was verified and no material inaccuracies remain.
32
- - Otherwise emit `doc.inaccurate` with:
33
- - the exact claim or sentence that fails
34
- - the evidence from code/config/tests
35
- - what the docs should say instead
36
-
37
- Rules:
38
- - False passes are worse than false fails. Do not rubber-stamp.
39
- - A doc can be inaccurate because of an omission if the omission would mislead a reader into using the system incorrectly.
40
- - "Mostly right" is not enough. One wrong command, path, default, or API name is enough for `doc.inaccurate`.
41
- - If an example or command was not actually checked, it is unverified and should block approval.
42
- - Ignore pure style preferences unless the wording changes the meaning.
43
- - Be adversarial but fair: cite evidence, not vibes.
@@ -1,51 +0,0 @@
1
- You are the publisher.
2
-
3
- Do not audit. Do not write docs. Do not check accuracy.
4
-
5
- Your job:
6
- 1. Record the completed documentation update.
7
- 2. Update the doc report.
8
- 3. Decide whether more gaps need attention.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/doc-plan.md`, `{{STATE_DIR}}/doc-report.md`, and `{{STATE_DIR}}/progress.md`.
12
-
13
- Process:
14
- 1. Update `{{STATE_DIR}}/doc-report.md` with the completed documentation work:
15
- - Gap addressed
16
- - Files written or updated
17
- - Accuracy check result
18
- 2. Check if there are more gaps in the plan.
19
- 3. Decide:
20
- - If more gaps remain → emit `doc.published` so the auditor picks the next one.
21
- - If all gaps are addressed → emit `task.complete` with a summary.
22
-
23
- `{{STATE_DIR}}/doc-report.md` format:
24
- ```
25
- # Documentation Report
26
-
27
- ## Summary
28
- - Gaps addressed: N/M
29
- - Docs written: X
30
- - Docs updated: Y
31
-
32
- ## Changes
33
-
34
- ### Gap 1: {description}
35
- - Action: created/updated {file}
36
- - Accuracy: verified
37
- - Notes: {any relevant notes}
38
-
39
- ### Gap 2: ...
40
-
41
- ## Remaining gaps
42
- {list any deferred gaps with reasons}
43
-
44
- ## Conclusion
45
- {overall assessment of documentation state}
46
- ```
47
-
48
- Rules:
49
- - Keep the report factual and concise.
50
- - If a gap was deferred (write.blocked), record why.
51
- - The report should give a clear picture of what documentation now exists and what is still missing.
@@ -1,37 +0,0 @@
1
- You are the writer.
2
-
3
- Do not audit. Do not check accuracy. Do not publish.
4
-
5
- Your job:
6
- 1. Write or update documentation for the gap identified by the auditor.
7
- 2. Match the project's existing documentation style.
8
- 3. Leave a concrete verification checklist for the checker instead of making the checker reconstruct your claims from scratch.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/doc-plan.md`, `{{STATE_DIR}}/doc-report.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Understand exactly which gap you are addressing.
13
-
14
- Process:
15
- 1. Read the source code that the documentation should describe.
16
- 2. Read existing docs to understand the project's style and tone.
17
- 3. Write or update the documentation:
18
- - For new docs: create the file in the conventional location.
19
- - For stale docs: update only the parts that are incorrect or missing.
20
- 4. Update `{{STATE_DIR}}/progress.md` with what was written.
21
- 5. Add a `Verification checklist` section to `{{STATE_DIR}}/progress.md` for this gap. For every concrete claim you introduced or changed, list:
22
- - the exact claim, command, path, API name, config key, default, or example
23
- - where it appears in the docs
24
- - the code/config/test evidence the checker should verify against
25
- - status: `pending-check`
26
- 6. Emit `doc.written` with a summary of changes.
27
-
28
- Rules:
29
- - Match existing style: if the project uses terse READMEs, write terse. If it uses detailed guides, write detailed.
30
- - Write from the code, not from assumptions. Every claim must be verifiable.
31
- - Do not over-document. Prefer concise, accurate docs over comprehensive but bloated ones.
32
- - Include examples where they aid understanding, especially for API docs.
33
- - Do not change code. Only write documentation.
34
- - The verification checklist must be claim-level, not file-level. `Updated README for CLI` is too vague; list the actual claims that need checking.
35
- - Include copy-pasteable commands and examples in the checklist exactly as written in the docs.
36
- - If you removed a stale claim, note the removal in `{{STATE_DIR}}/progress.md` so the checker knows the stale statement was intentionally deleted.
37
- - If you cannot document the gap meaningfully (e.g., the code is too unclear), emit `write.blocked` with an explanation.
@@ -1,31 +0,0 @@
1
- name = "autodoc"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "auditor"
6
- emits = ["gaps.found", "task.complete"]
7
- prompt_file = "roles/auditor.md"
8
-
9
- [[role]]
10
- id = "writer"
11
- emits = ["doc.written", "write.blocked"]
12
- prompt_file = "roles/writer.md"
13
-
14
- [[role]]
15
- id = "checker"
16
- emits = ["doc.checked", "doc.inaccurate"]
17
- prompt_file = "roles/checker.md"
18
-
19
- [[role]]
20
- id = "publisher"
21
- emits = ["doc.published", "task.complete"]
22
- prompt_file = "roles/publisher.md"
23
-
24
- [handoff]
25
- "loop.start" = ["auditor"]
26
- "gaps.found" = ["writer"]
27
- "write.blocked" = ["auditor"]
28
- "doc.written" = ["checker"]
29
- "doc.checked" = ["publisher"]
30
- "doc.inaccurate" = ["writer"]
31
- "doc.published" = ["auditor"]
@@ -1,56 +0,0 @@
1
- # AutoFix miniloop
2
-
3
- Use when you have a bug to diagnose and repair with minimal collateral changes.
4
-
5
- AutoFix takes a bug report or failing test, reproduces the issue, traces the root cause, implements a minimal fix, and verifies the fix — all without refactoring or improving code beyond what is needed.
6
-
7
- Shape:
8
- - diagnoser — reproduces bug, traces root cause
9
- - fixer — implements minimal fix
10
- - verifier — tries to falsify the fix and checks for regressions
11
- - closer — validates fix quality, manages multi-bug reports
12
-
13
- ## Fail-closed contract
14
-
15
- AutoFix should reject weak fixes.
16
-
17
- - No reproduction means no diagnosis.
18
- - No before/after proof means no verified fix.
19
- - A workaround, symptom mask, or regression tradeoff is not a clean close.
20
- - When evidence is thin, reopening is better than pretending the bug is solved.
21
-
22
- ## How it works
23
-
24
- 1. **Diagnoser** parses the bug report, reproduces the issue, and traces the root cause to specific files and lines.
25
- 2. **Fixer** implements the minimal code change to address the root cause.
26
- 3. **Verifier** reruns the original failure, then the strongest relevant regression checks.
27
- 4. **Closer** reviews fix quality and decides whether more bugs need attention.
28
-
29
- ## AutoFix vs AutoCode
30
-
31
- - **AutoFix** = starts from a bug. Minimal fix, regression check, no scope creep.
32
- - **AutoCode** = starts from a feature request or task. Sliced implementation with full planning.
33
-
34
- ## Files
35
-
36
- - `autoloops.toml` — loop + backend config
37
- - `topology.toml` — role deck + handoff graph
38
- - `harness.md` — shared harness rules loaded every iteration
39
- - `roles/diagnoser.md`
40
- - `roles/fixer.md`
41
- - `roles/verifier.md`
42
- - `roles/closer.md`
43
-
44
- ## Shared working files created by the loop
45
-
46
- - `.autoloop/bug-report.md` — symptom, reproduction steps, root cause analysis
47
- - `.autoloop/fix-log.md` — log of fixes applied with verification results
48
- - `.autoloop/progress.md` — current bug tracking
49
-
50
- ## Run
51
-
52
- From the repo root:
53
-
54
- ```bash
55
- autoloop run presets/autofix "TypeError in parse_config when TOML has nested arrays"
56
- ```
@@ -1,24 +0,0 @@
1
- event_loop.max_iterations = 100
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
- # Note: required_events intentionally omitted. The topology already enforces
5
- # the correct flow (diagnoser→fixer→verifier→closer→task.complete). Adding
6
- # required_events = ["fix.verified"] would block termination when there are
7
- # no bugs to fix, causing a degenerate spin.
8
-
9
- backend.kind = "command"
10
- backend.command = "claude"
11
- backend.timeout_ms = 3000000
12
- # For deterministic local harness testing only:
13
- # backend.kind = "command"
14
- # backend.command = "../../examples/mock-backend.sh"
15
-
16
- review.enabled = true
17
- review.timeout_ms = 300000
18
-
19
- memory.prompt_budget_chars = 8000
20
- harness.instructions_file = "harness.md"
21
-
22
- core.state_dir = ".autoloop"
23
- core.journal_file = ".autoloop/journal.jsonl"
24
- core.memory_file = ".autoloop/memory.jsonl"