@mobrienv/autoloop 0.3.0 → 0.7.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 (415) hide show
  1. package/README.md +140 -43
  2. package/bin/autoloop +1 -1
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.js +19 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/testing/mock-backend.js +3 -5
  7. package/dist/testing/mock-backend.js.map +1 -1
  8. package/package.json +32 -10
  9. package/plugins/autoloop/.claude-plugin/plugin.json +1 -1
  10. package/dist/agent-map.d.ts +0 -10
  11. package/dist/agent-map.js +0 -58
  12. package/dist/agent-map.js.map +0 -1
  13. package/dist/backend/acp-client.d.ts +0 -38
  14. package/dist/backend/acp-client.js +0 -288
  15. package/dist/backend/acp-client.js.map +0 -1
  16. package/dist/backend/index.d.ts +0 -10
  17. package/dist/backend/index.js +0 -71
  18. package/dist/backend/index.js.map +0 -1
  19. package/dist/backend/kiro-bridge.d.ts +0 -17
  20. package/dist/backend/kiro-bridge.js +0 -84
  21. package/dist/backend/kiro-bridge.js.map +0 -1
  22. package/dist/backend/kiro-worker.d.ts +0 -1
  23. package/dist/backend/kiro-worker.js +0 -92
  24. package/dist/backend/kiro-worker.js.map +0 -1
  25. package/dist/backend/run-command.d.ts +0 -7
  26. package/dist/backend/run-command.js +0 -50
  27. package/dist/backend/run-command.js.map +0 -1
  28. package/dist/backend/run-kiro.d.ts +0 -3
  29. package/dist/backend/run-kiro.js +0 -16
  30. package/dist/backend/run-kiro.js.map +0 -1
  31. package/dist/backend/run-mock.d.ts +0 -1
  32. package/dist/backend/run-mock.js +0 -6
  33. package/dist/backend/run-mock.js.map +0 -1
  34. package/dist/backend/run-pi.d.ts +0 -5
  35. package/dist/backend/run-pi.js +0 -5
  36. package/dist/backend/run-pi.js.map +0 -1
  37. package/dist/backend/types.d.ts +0 -21
  38. package/dist/backend/types.js +0 -2
  39. package/dist/backend/types.js.map +0 -1
  40. package/dist/chains/budget.d.ts +0 -7
  41. package/dist/chains/budget.js +0 -54
  42. package/dist/chains/budget.js.map +0 -1
  43. package/dist/chains/load.d.ts +0 -18
  44. package/dist/chains/load.js +0 -129
  45. package/dist/chains/load.js.map +0 -1
  46. package/dist/chains/render.d.ts +0 -2
  47. package/dist/chains/render.js +0 -74
  48. package/dist/chains/render.js.map +0 -1
  49. package/dist/chains/run.d.ts +0 -17
  50. package/dist/chains/run.js +0 -260
  51. package/dist/chains/run.js.map +0 -1
  52. package/dist/chains/types.d.ts +0 -38
  53. package/dist/chains/types.js +0 -2
  54. package/dist/chains/types.js.map +0 -1
  55. package/dist/chains.d.ts +0 -6
  56. package/dist/chains.js +0 -5
  57. package/dist/chains.js.map +0 -1
  58. package/dist/commands/chain.d.ts +0 -1
  59. package/dist/commands/chain.js +0 -53
  60. package/dist/commands/chain.js.map +0 -1
  61. package/dist/commands/config.d.ts +0 -1
  62. package/dist/commands/config.js +0 -74
  63. package/dist/commands/config.js.map +0 -1
  64. package/dist/commands/dashboard.d.ts +0 -1
  65. package/dist/commands/dashboard.js +0 -68
  66. package/dist/commands/dashboard.js.map +0 -1
  67. package/dist/commands/guide.d.ts +0 -1
  68. package/dist/commands/guide.js +0 -33
  69. package/dist/commands/guide.js.map +0 -1
  70. package/dist/commands/inspect.d.ts +0 -1
  71. package/dist/commands/inspect.js +0 -203
  72. package/dist/commands/inspect.js.map +0 -1
  73. package/dist/commands/list.d.ts +0 -1
  74. package/dist/commands/list.js +0 -15
  75. package/dist/commands/list.js.map +0 -1
  76. package/dist/commands/loops.d.ts +0 -1
  77. package/dist/commands/loops.js +0 -72
  78. package/dist/commands/loops.js.map +0 -1
  79. package/dist/commands/memory.d.ts +0 -1
  80. package/dist/commands/memory.js +0 -65
  81. package/dist/commands/memory.js.map +0 -1
  82. package/dist/commands/pi-adapter.d.ts +0 -1
  83. package/dist/commands/pi-adapter.js +0 -6
  84. package/dist/commands/pi-adapter.js.map +0 -1
  85. package/dist/commands/run.d.ts +0 -1
  86. package/dist/commands/run.js +0 -292
  87. package/dist/commands/run.js.map +0 -1
  88. package/dist/commands/runs.d.ts +0 -1
  89. package/dist/commands/runs.js +0 -50
  90. package/dist/commands/runs.js.map +0 -1
  91. package/dist/commands/task.d.ts +0 -1
  92. package/dist/commands/task.js +0 -74
  93. package/dist/commands/task.js.map +0 -1
  94. package/dist/commands/worktree.d.ts +0 -1
  95. package/dist/commands/worktree.js +0 -162
  96. package/dist/commands/worktree.js.map +0 -1
  97. package/dist/config.d.ts +0 -31
  98. package/dist/config.js +0 -261
  99. package/dist/config.js.map +0 -1
  100. package/dist/dashboard/app.d.ts +0 -12
  101. package/dist/dashboard/app.js +0 -23
  102. package/dist/dashboard/app.js.map +0 -1
  103. package/dist/dashboard/routes/api.d.ts +0 -3
  104. package/dist/dashboard/routes/api.js +0 -130
  105. package/dist/dashboard/routes/api.js.map +0 -1
  106. package/dist/dashboard/routes/pages.d.ts +0 -2
  107. package/dist/dashboard/routes/pages.js +0 -14
  108. package/dist/dashboard/routes/pages.js.map +0 -1
  109. package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
  110. package/dist/dashboard/views/alpine-vendor.js +0 -10
  111. package/dist/dashboard/views/alpine-vendor.js.map +0 -1
  112. package/dist/dashboard/views/shell.d.ts +0 -1
  113. package/dist/dashboard/views/shell.js +0 -746
  114. package/dist/dashboard/views/shell.js.map +0 -1
  115. package/dist/events/decode.d.ts +0 -2
  116. package/dist/events/decode.js +0 -45
  117. package/dist/events/decode.js.map +0 -1
  118. package/dist/events/encode.d.ts +0 -2
  119. package/dist/events/encode.js +0 -33
  120. package/dist/events/encode.js.map +0 -1
  121. package/dist/events/guards.d.ts +0 -5
  122. package/dist/events/guards.js +0 -42
  123. package/dist/events/guards.js.map +0 -1
  124. package/dist/events/types.d.ts +0 -26
  125. package/dist/events/types.js +0 -2
  126. package/dist/events/types.js.map +0 -1
  127. package/dist/harness/config-helpers.d.ts +0 -35
  128. package/dist/harness/config-helpers.js +0 -411
  129. package/dist/harness/config-helpers.js.map +0 -1
  130. package/dist/harness/coordination.d.ts +0 -1
  131. package/dist/harness/coordination.js +0 -127
  132. package/dist/harness/coordination.js.map +0 -1
  133. package/dist/harness/display.d.ts +0 -21
  134. package/dist/harness/display.js +0 -176
  135. package/dist/harness/display.js.map +0 -1
  136. package/dist/harness/emit.d.ts +0 -15
  137. package/dist/harness/emit.js +0 -240
  138. package/dist/harness/emit.js.map +0 -1
  139. package/dist/harness/index.d.ts +0 -13
  140. package/dist/harness/index.js +0 -240
  141. package/dist/harness/index.js.map +0 -1
  142. package/dist/harness/iteration.d.ts +0 -16
  143. package/dist/harness/iteration.js +0 -131
  144. package/dist/harness/iteration.js.map +0 -1
  145. package/dist/harness/journal.d.ts +0 -31
  146. package/dist/harness/journal.js +0 -178
  147. package/dist/harness/journal.js.map +0 -1
  148. package/dist/harness/metareview.d.ts +0 -4
  149. package/dist/harness/metareview.js +0 -48
  150. package/dist/harness/metareview.js.map +0 -1
  151. package/dist/harness/metrics.d.ts +0 -12
  152. package/dist/harness/metrics.js +0 -180
  153. package/dist/harness/metrics.js.map +0 -1
  154. package/dist/harness/parallel.d.ts +0 -37
  155. package/dist/harness/parallel.js +0 -237
  156. package/dist/harness/parallel.js.map +0 -1
  157. package/dist/harness/prompt.d.ts +0 -46
  158. package/dist/harness/prompt.js +0 -403
  159. package/dist/harness/prompt.js.map +0 -1
  160. package/dist/harness/scratchpad.d.ts +0 -2
  161. package/dist/harness/scratchpad.js +0 -67
  162. package/dist/harness/scratchpad.js.map +0 -1
  163. package/dist/harness/stop.d.ts +0 -5
  164. package/dist/harness/stop.js +0 -70
  165. package/dist/harness/stop.js.map +0 -1
  166. package/dist/harness/tools.d.ts +0 -3
  167. package/dist/harness/tools.js +0 -65
  168. package/dist/harness/tools.js.map +0 -1
  169. package/dist/harness/types.d.ts +0 -110
  170. package/dist/harness/types.js +0 -2
  171. package/dist/harness/types.js.map +0 -1
  172. package/dist/harness/wave/finalize-wave.d.ts +0 -9
  173. package/dist/harness/wave/finalize-wave.js +0 -87
  174. package/dist/harness/wave/finalize-wave.js.map +0 -1
  175. package/dist/harness/wave/launch-branches.d.ts +0 -6
  176. package/dist/harness/wave/launch-branches.js +0 -314
  177. package/dist/harness/wave/launch-branches.js.map +0 -1
  178. package/dist/harness/wave/parse-objectives.d.ts +0 -3
  179. package/dist/harness/wave/parse-objectives.js +0 -32
  180. package/dist/harness/wave/parse-objectives.js.map +0 -1
  181. package/dist/harness/wave/types.d.ts +0 -43
  182. package/dist/harness/wave/types.js +0 -2
  183. package/dist/harness/wave/types.js.map +0 -1
  184. package/dist/harness/wave.d.ts +0 -6
  185. package/dist/harness/wave.js +0 -159
  186. package/dist/harness/wave.js.map +0 -1
  187. package/dist/isolation/index.d.ts +0 -4
  188. package/dist/isolation/index.js +0 -3
  189. package/dist/isolation/index.js.map +0 -1
  190. package/dist/isolation/resolve.d.ts +0 -39
  191. package/dist/isolation/resolve.js +0 -118
  192. package/dist/isolation/resolve.js.map +0 -1
  193. package/dist/isolation/run-scope.d.ts +0 -21
  194. package/dist/isolation/run-scope.js +0 -50
  195. package/dist/isolation/run-scope.js.map +0 -1
  196. package/dist/json.d.ts +0 -8
  197. package/dist/json.js +0 -82
  198. package/dist/json.js.map +0 -1
  199. package/dist/loops/health.d.ts +0 -16
  200. package/dist/loops/health.js +0 -152
  201. package/dist/loops/health.js.map +0 -1
  202. package/dist/loops/list.d.ts +0 -6
  203. package/dist/loops/list.js +0 -21
  204. package/dist/loops/list.js.map +0 -1
  205. package/dist/loops/policy.d.ts +0 -6
  206. package/dist/loops/policy.js +0 -41
  207. package/dist/loops/policy.js.map +0 -1
  208. package/dist/loops/render.d.ts +0 -19
  209. package/dist/loops/render.js +0 -100
  210. package/dist/loops/render.js.map +0 -1
  211. package/dist/loops/show.d.ts +0 -8
  212. package/dist/loops/show.js +0 -31
  213. package/dist/loops/show.js.map +0 -1
  214. package/dist/loops/watch.d.ts +0 -14
  215. package/dist/loops/watch.js +0 -143
  216. package/dist/loops/watch.js.map +0 -1
  217. package/dist/main.d.ts +0 -1
  218. package/dist/main.js +0 -148
  219. package/dist/main.js.map +0 -1
  220. package/dist/markdown.d.ts +0 -10
  221. package/dist/markdown.js +0 -66
  222. package/dist/markdown.js.map +0 -1
  223. package/dist/memory-render.d.ts +0 -6
  224. package/dist/memory-render.js +0 -81
  225. package/dist/memory-render.js.map +0 -1
  226. package/dist/memory.d.ts +0 -22
  227. package/dist/memory.js +0 -318
  228. package/dist/memory.js.map +0 -1
  229. package/dist/pi-adapter.d.ts +0 -1
  230. package/dist/pi-adapter.js +0 -220
  231. package/dist/pi-adapter.js.map +0 -1
  232. package/dist/profiles.d.ts +0 -12
  233. package/dist/profiles.js +0 -71
  234. package/dist/profiles.js.map +0 -1
  235. package/dist/registry/derive.d.ts +0 -8
  236. package/dist/registry/derive.js +0 -88
  237. package/dist/registry/derive.js.map +0 -1
  238. package/dist/registry/discover.d.ts +0 -20
  239. package/dist/registry/discover.js +0 -98
  240. package/dist/registry/discover.js.map +0 -1
  241. package/dist/registry/harness.d.ts +0 -7
  242. package/dist/registry/harness.js +0 -63
  243. package/dist/registry/harness.js.map +0 -1
  244. package/dist/registry/index.d.ts +0 -6
  245. package/dist/registry/index.js +0 -6
  246. package/dist/registry/index.js.map +0 -1
  247. package/dist/registry/read.d.ts +0 -11
  248. package/dist/registry/read.js +0 -50
  249. package/dist/registry/read.js.map +0 -1
  250. package/dist/registry/rebuild.d.ts +0 -5
  251. package/dist/registry/rebuild.js +0 -22
  252. package/dist/registry/rebuild.js.map +0 -1
  253. package/dist/registry/types.d.ts +0 -28
  254. package/dist/registry/types.js +0 -2
  255. package/dist/registry/types.js.map +0 -1
  256. package/dist/registry/update.d.ts +0 -2
  257. package/dist/registry/update.js +0 -7
  258. package/dist/registry/update.js.map +0 -1
  259. package/dist/tasks-render.d.ts +0 -2
  260. package/dist/tasks-render.js +0 -44
  261. package/dist/tasks-render.js.map +0 -1
  262. package/dist/tasks.d.ts +0 -24
  263. package/dist/tasks.js +0 -184
  264. package/dist/tasks.js.map +0 -1
  265. package/dist/topology.d.ts +0 -31
  266. package/dist/topology.js +0 -309
  267. package/dist/topology.js.map +0 -1
  268. package/dist/usage.d.ts +0 -9
  269. package/dist/usage.js +0 -159
  270. package/dist/usage.js.map +0 -1
  271. package/dist/utils.d.ts +0 -21
  272. package/dist/utils.js +0 -349
  273. package/dist/utils.js.map +0 -1
  274. package/dist/worktree/clean.d.ts +0 -12
  275. package/dist/worktree/clean.js +0 -98
  276. package/dist/worktree/clean.js.map +0 -1
  277. package/dist/worktree/create.d.ts +0 -14
  278. package/dist/worktree/create.js +0 -71
  279. package/dist/worktree/create.js.map +0 -1
  280. package/dist/worktree/index.d.ts +0 -10
  281. package/dist/worktree/index.js +0 -6
  282. package/dist/worktree/index.js.map +0 -1
  283. package/dist/worktree/list.d.ts +0 -9
  284. package/dist/worktree/list.js +0 -24
  285. package/dist/worktree/list.js.map +0 -1
  286. package/dist/worktree/merge.d.ts +0 -11
  287. package/dist/worktree/merge.js +0 -129
  288. package/dist/worktree/merge.js.map +0 -1
  289. package/dist/worktree/meta.d.ts +0 -17
  290. package/dist/worktree/meta.js +0 -34
  291. package/dist/worktree/meta.js.map +0 -1
  292. package/presets/autocode/README.md +0 -81
  293. package/presets/autocode/autoloops.toml +0 -30
  294. package/presets/autocode/harness.md +0 -26
  295. package/presets/autocode/miniloops.toml +0 -22
  296. package/presets/autocode/roles/build.md +0 -34
  297. package/presets/autocode/roles/critic.md +0 -40
  298. package/presets/autocode/roles/finalizer.md +0 -43
  299. package/presets/autocode/roles/planner.md +0 -40
  300. package/presets/autocode/topology.toml +0 -32
  301. package/presets/autodoc/README.md +0 -42
  302. package/presets/autodoc/autoloops.toml +0 -21
  303. package/presets/autodoc/harness.md +0 -19
  304. package/presets/autodoc/miniloops.toml +0 -21
  305. package/presets/autodoc/roles/auditor.md +0 -39
  306. package/presets/autodoc/roles/checker.md +0 -43
  307. package/presets/autodoc/roles/publisher.md +0 -51
  308. package/presets/autodoc/roles/writer.md +0 -37
  309. package/presets/autodoc/topology.toml +0 -31
  310. package/presets/autofix/README.md +0 -56
  311. package/presets/autofix/autoloops.toml +0 -24
  312. package/presets/autofix/harness.md +0 -25
  313. package/presets/autofix/miniloops.toml +0 -21
  314. package/presets/autofix/roles/closer.md +0 -48
  315. package/presets/autofix/roles/diagnoser.md +0 -43
  316. package/presets/autofix/roles/fixer.md +0 -28
  317. package/presets/autofix/roles/verifier.md +0 -31
  318. package/presets/autofix/topology.toml +0 -33
  319. package/presets/autoideas/README.md +0 -73
  320. package/presets/autoideas/autoloops.toml +0 -18
  321. package/presets/autoideas/harness.md +0 -31
  322. package/presets/autoideas/miniloops.toml +0 -18
  323. package/presets/autoideas/roles/analyst.md +0 -32
  324. package/presets/autoideas/roles/reviewer.md +0 -36
  325. package/presets/autoideas/roles/scanner.md +0 -26
  326. package/presets/autoideas/roles/synthesizer.md +0 -61
  327. package/presets/autoideas/topology.toml +0 -32
  328. package/presets/automerge/README.md +0 -3
  329. package/presets/automerge/autoloops.toml +0 -12
  330. package/presets/automerge/harness.md +0 -10
  331. package/presets/automerge/miniloops.toml +0 -12
  332. package/presets/automerge/roles/merge.md +0 -10
  333. package/presets/automerge/topology.toml +0 -10
  334. package/presets/autoperf/README.md +0 -56
  335. package/presets/autoperf/autoloops.toml +0 -21
  336. package/presets/autoperf/harness.md +0 -21
  337. package/presets/autoperf/miniloops.toml +0 -21
  338. package/presets/autoperf/roles/judge.md +0 -38
  339. package/presets/autoperf/roles/measurer.md +0 -36
  340. package/presets/autoperf/roles/optimizer.md +0 -35
  341. package/presets/autoperf/roles/profiler.md +0 -38
  342. package/presets/autoperf/topology.toml +0 -32
  343. package/presets/autopr/README.md +0 -99
  344. package/presets/autopr/autoloops.toml +0 -22
  345. package/presets/autopr/harness.md +0 -27
  346. package/presets/autopr/miniloops.toml +0 -22
  347. package/presets/autopr/roles/collector.md +0 -55
  348. package/presets/autopr/roles/drafter.md +0 -38
  349. package/presets/autopr/roles/publisher.md +0 -28
  350. package/presets/autopr/roles/validator.md +0 -31
  351. package/presets/autopr/topology.toml +0 -32
  352. package/presets/autoqa/README.md +0 -76
  353. package/presets/autoqa/autoloops.toml +0 -21
  354. package/presets/autoqa/harness.md +0 -30
  355. package/presets/autoqa/miniloops.toml +0 -21
  356. package/presets/autoqa/roles/executor.md +0 -43
  357. package/presets/autoqa/roles/inspector.md +0 -45
  358. package/presets/autoqa/roles/planner.md +0 -55
  359. package/presets/autoqa/roles/reporter.md +0 -74
  360. package/presets/autoqa/topology.toml +0 -31
  361. package/presets/autoresearch/README.md +0 -63
  362. package/presets/autoresearch/autoloops.toml +0 -18
  363. package/presets/autoresearch/harness.md +0 -28
  364. package/presets/autoresearch/miniloops.toml +0 -18
  365. package/presets/autoresearch/roles/benchmarker.md +0 -34
  366. package/presets/autoresearch/roles/evaluator.md +0 -33
  367. package/presets/autoresearch/roles/implementer.md +0 -26
  368. package/presets/autoresearch/roles/strategist.md +0 -43
  369. package/presets/autoresearch/topology.toml +0 -31
  370. package/presets/autoreview/README.md +0 -51
  371. package/presets/autoreview/autoloops.toml +0 -21
  372. package/presets/autoreview/harness.md +0 -20
  373. package/presets/autoreview/miniloops.toml +0 -21
  374. package/presets/autoreview/roles/checker.md +0 -36
  375. package/presets/autoreview/roles/reader.md +0 -33
  376. package/presets/autoreview/roles/suggester.md +0 -26
  377. package/presets/autoreview/roles/summarizer.md +0 -57
  378. package/presets/autoreview/topology.toml +0 -31
  379. package/presets/autosec/README.md +0 -51
  380. package/presets/autosec/autoloops.toml +0 -21
  381. package/presets/autosec/harness.md +0 -20
  382. package/presets/autosec/miniloops.toml +0 -21
  383. package/presets/autosec/roles/analyst.md +0 -38
  384. package/presets/autosec/roles/hardener.md +0 -36
  385. package/presets/autosec/roles/reporter.md +0 -63
  386. package/presets/autosec/roles/scanner.md +0 -38
  387. package/presets/autosec/topology.toml +0 -31
  388. package/presets/autosimplify/README.md +0 -83
  389. package/presets/autosimplify/autoloops.toml +0 -26
  390. package/presets/autosimplify/harness.md +0 -25
  391. package/presets/autosimplify/miniloops.toml +0 -22
  392. package/presets/autosimplify/roles/reviewer.md +0 -38
  393. package/presets/autosimplify/roles/scoper.md +0 -42
  394. package/presets/autosimplify/roles/simplifier.md +0 -51
  395. package/presets/autosimplify/roles/verifier.md +0 -40
  396. package/presets/autosimplify/topology.toml +0 -32
  397. package/presets/autospec/README.md +0 -84
  398. package/presets/autospec/autoloops.toml +0 -21
  399. package/presets/autospec/harness.md +0 -23
  400. package/presets/autospec/miniloops.toml +0 -21
  401. package/presets/autospec/roles/clarifier.md +0 -39
  402. package/presets/autospec/roles/critic.md +0 -41
  403. package/presets/autospec/roles/designer.md +0 -37
  404. package/presets/autospec/roles/planner.md +0 -38
  405. package/presets/autospec/roles/researcher.md +0 -33
  406. package/presets/autospec/topology.toml +0 -38
  407. package/presets/autotest/README.md +0 -55
  408. package/presets/autotest/autoloops.toml +0 -21
  409. package/presets/autotest/harness.md +0 -21
  410. package/presets/autotest/miniloops.toml +0 -21
  411. package/presets/autotest/roles/assessor.md +0 -57
  412. package/presets/autotest/roles/runner.md +0 -31
  413. package/presets/autotest/roles/surveyor.md +0 -39
  414. package/presets/autotest/roles/writer.md +0 -37
  415. package/presets/autotest/topology.toml +0 -32
@@ -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"
@@ -1,25 +0,0 @@
1
- This is a autoloops-native autofix loop for bug diagnosis and repair.
2
-
3
- The loop takes a bug report or failing test, reproduces the issue, traces the root cause, implements a minimal fix, and verifies the fix — iterating if the initial attempt fails or if multiple bugs are reported.
4
-
5
- Global rules:
6
- - Shared working files are the source of truth: `{{STATE_DIR}}/bug-report.md`, `{{STATE_DIR}}/fix-log.md`, `{{STATE_DIR}}/progress.md`.
7
- - Preserve canonical filenames exactly as they exist on disk. If the upstream report is `qa-report.md`, keep that spelling/path everywhere; never invent `qa_report.md` or move it under `{{STATE_DIR}}/` unless the file really lives there.
8
- - If a shared working file is missing, recreate it before continuing. Do not keep going with a guessed or broken path.
9
- - One bug at a time. Do not start fixing the next bug before the current one is verified and closed.
10
- - Use the event tool instead of prose-only handoffs.
11
- - Fresh context every iteration: re-read the shared working files and the relevant source before acting.
12
- - Prefer minimal fixes. Do not refactor, clean up, or improve code beyond what is needed to fix the bug.
13
- - No reproduction => no diagnosis. No before/after proof => no verified fix.
14
- - Regression verification is mandatory: the failing test must pass, and existing tests must not break.
15
- - Record exact commands and key outputs in `{{STATE_DIR}}/progress.md` or `{{STATE_DIR}}/fix-log.md`, not just summaries.
16
- - When refreshing structured markdown, read the current file first. If you are replacing most of a report/progress section, rewrite it cleanly instead of relying on brittle exact-text patching.
17
- - Scope searches to repo paths or other paths you have confirmed exist. Do not spray `rg` or `find` across optional home-directory locations.
18
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
19
- - Do not invent extra phases. Stay inside diagnoser → fixer → verifier → closer.
20
- - If the diagnoser finds no bugs on first activation (build passes, all tests pass, no bug report or failing test), emit `task.complete` immediately. Do not re-confirm on subsequent iterations — one clean pass is sufficient.
21
-
22
- State files:
23
- - `{{STATE_DIR}}/bug-report.md` — the original bug report, reproduction steps, and root cause analysis.
24
- - `{{STATE_DIR}}/fix-log.md` — log of fixes applied: what was changed, why, verification results.
25
- - `{{STATE_DIR}}/progress.md` — current bug being fixed, 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 = ["fix.verified"]
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,48 +0,0 @@
1
- You are the closer.
2
-
3
- Do not diagnose. Do not fix. Do not verify.
4
-
5
- Your job:
6
- 1. Confirm the fix is correct and complete.
7
- 2. Update the fix log.
8
- 3. Decide whether more bugs need attention.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/bug-report.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Start skeptical: prefer `bug.reopened` over premature `task.complete`.
13
-
14
- Process:
15
- 1. Review the fix: is it minimal? Does it address the root cause (not just the symptom)?
16
- 2. Update `{{STATE_DIR}}/fix-log.md` with:
17
- - Bug description
18
- - Root cause
19
- - Fix applied (files changed, what changed)
20
- - Verification result
21
- 3. Make sure `{{STATE_DIR}}/progress.md` exists and names the next action using the exact on-disk bug-report path.
22
- 4. Check if there are more bugs from the original report.
23
- 5. Decide:
24
- - If the fix is good and no more bugs remain → emit `task.complete` with a summary.
25
- - If the fix is good but more bugs remain → emit `bug.closed` so the diagnoser picks up the next one.
26
- - If the fix is questionable, incomplete, workaround-shaped, API-breaking without justification, or weakly verified → emit `bug.reopened` with concerns for the diagnoser to reconsider.
27
-
28
- `{{STATE_DIR}}/fix-log.md` format:
29
- ```
30
- # Fix Log
31
-
32
- ## Bug 1: {title}
33
- - Symptom: {what was observed}
34
- - Root cause: {what was wrong}
35
- - Fix: {what was changed}
36
- - Files: {list of changed files}
37
- - Verified: yes/no
38
- - Regressions: none/{details}
39
-
40
- ## Bug 2: ...
41
- ```
42
-
43
- Rules:
44
- - Be honest about fix quality. A workaround is not a fix — note it as such.
45
- - If the fix changes public API, flag it prominently.
46
- - Preserve canonical filenames exactly as they exist on disk when you queue the next bug.
47
- - The fix log should be useful to someone reading it weeks later.
48
- - Missing root-cause proof or weak verification is a reason to reopen.
@@ -1,43 +0,0 @@
1
- You are the diagnoser.
2
-
3
- Do not fix code. Do not verify. Do not close.
4
-
5
- Your job:
6
- 1. Understand the bug from the report or failing test.
7
- 2. Reproduce the issue.
8
- 3. Trace the root cause.
9
- 4. Hand a clear diagnosis to the fixer.
10
-
11
- On every activation:
12
- - Read `{{STATE_DIR}}/bug-report.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md` if they exist.
13
- - Confirm any upstream bug-report or failing-test path you cite actually exists on disk, and preserve that exact spelling/path in the working files.
14
- - Re-read the latest scratchpad/journal context before deciding.
15
-
16
- On first activation:
17
- - Parse the input: bug report, error message, failing test, or user description.
18
- - If there is no bug report, no failing test, and the build is clean: emit `task.complete` with a brief summary. Do not continue diagnosing.
19
- - Reproduce the bug: run the failing test or trigger the reported behavior.
20
- - Trace the root cause: read the relevant source, follow the execution path.
21
- - Create or refresh:
22
- - `{{STATE_DIR}}/bug-report.md` — symptom, reproduction steps, root cause analysis, affected files.
23
- - `{{STATE_DIR}}/progress.md` — current bug, diagnosis status.
24
- - Emit `cause.found` with the root cause and which files/lines need to change.
25
-
26
- On later activations (`bug.closed` or `bug.reopened`):
27
- - Check if there are more bugs to fix from the original report.
28
- - If all bugs are resolved, emit `task.complete` only with an explicit all-bugs-accounted-for summary.
29
- - If more bugs remain, diagnose the next one and emit `cause.found`.
30
- - Carry forward the exact on-disk source path for the original report when you queue the next bug (`qa-report.md` is not `qa_report.md`).
31
-
32
- On `diagnosis.blocked`:
33
- - If you cannot reproduce or trace the bug, explain what you tried in `{{STATE_DIR}}/progress.md`.
34
- - Try a different approach or ask for more information by emitting `diagnosis.blocked` again with details.
35
-
36
- Rules:
37
- - Always reproduce before diagnosing. Do not guess at root causes.
38
- - Be precise: `the off-by-one in line 42 of parser.rs causes the last token to be dropped` not `parser has a bug`.
39
- - If the bug report is vague, state what assumptions you are making.
40
- - Preserve canonical file paths exactly as they exist on disk (`qa-report.md` ≠ `qa_report.md`).
41
- - If you need to replace most of `{{STATE_DIR}}/bug-report.md`, rewrite it cleanly after reading it instead of depending on a fragile partial patch.
42
- - Identify the minimal scope of the fix — the fixer should know exactly what to change.
43
- - No reproduction means no diagnosis.
@@ -1,28 +0,0 @@
1
- You are the fixer.
2
-
3
- Do not diagnose. Do not verify. Do not close.
4
-
5
- Your job:
6
- 1. Implement the minimal fix for the diagnosed bug.
7
- 2. Hand off to the verifier.
8
-
9
- On every activation:
10
- - Read `{{STATE_DIR}}/bug-report.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md`.
11
- - Understand the root cause and exactly what needs to change.
12
-
13
- Process:
14
- 1. Read the source files identified by the diagnoser.
15
- 2. Implement the minimal fix — change only what is necessary.
16
- 3. Update `{{STATE_DIR}}/progress.md` with what was changed and why.
17
- 4. Emit `fix.applied` with a summary of the change.
18
-
19
- On `fix.failed` reactivation:
20
- - Read the verification failure details from `{{STATE_DIR}}/progress.md`.
21
- - Adjust the fix — the previous attempt was incorrect or incomplete.
22
- - Emit `fix.applied` again.
23
-
24
- Rules:
25
- - Minimal changes only. Do not refactor, rename, reformat, or improve surrounding code.
26
- - Do not change test code to make tests pass — fix the code under test.
27
- - If the fix requires changing the public API, note this in `{{STATE_DIR}}/progress.md` for the closer to evaluate.
28
- - If you cannot fix the bug with the diagnosis provided, emit `fix.blocked` explaining what additional information is needed.
@@ -1,31 +0,0 @@
1
- You are the verifier.
2
-
3
- Do not diagnose. Do not fix. Do not close.
4
-
5
- Your job:
6
- 1. Try to falsify the fix.
7
- 2. Verify that the original bug is actually gone.
8
- 3. Verify that no regressions were introduced.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/bug-report.md`, `{{STATE_DIR}}/fix-log.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Start skeptical: assume the fix is insufficient until the evidence proves otherwise.
13
-
14
- Process:
15
- 1. Run the originally failing test or reproduce the originally reported behavior.
16
- 2. Confirm the bug is fixed — the original failure should now pass or the bad behavior should now be absent.
17
- 3. Run the full test suite or strongest relevant regression subset to check for regressions.
18
- 4. Record exact commands, exit codes, and key output in `{{STATE_DIR}}/progress.md`.
19
- 5. If the fix works and no regressions survive skeptical review → emit `fix.verified`.
20
- 6. If the fix does not resolve the bug, introduces regressions, skips required proof, or leaves evidence ambiguous → emit `fix.failed` with:
21
- - What still fails
22
- - Regression details if any
23
- - What evidence was missing or inconclusive
24
- - Suggestions for the fixer
25
-
26
- Rules:
27
- - Always run the original reproduction step. Do not skip this.
28
- - Always check for regressions. A fix that breaks something else is not a fix.
29
- - Record real output — do not summarize away important failure details.
30
- - If you cannot run the required proof, fail closed rather than waving it through.
31
- - No "probably fixed" approvals.
@@ -1,33 +0,0 @@
1
- name = "autofix"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "diagnoser"
6
- emits = ["cause.found", "diagnosis.blocked", "task.complete"]
7
- prompt_file = "roles/diagnoser.md"
8
-
9
- [[role]]
10
- id = "fixer"
11
- emits = ["fix.applied", "fix.blocked"]
12
- prompt_file = "roles/fixer.md"
13
-
14
- [[role]]
15
- id = "verifier"
16
- emits = ["fix.verified", "fix.failed"]
17
- prompt_file = "roles/verifier.md"
18
-
19
- [[role]]
20
- id = "closer"
21
- emits = ["bug.closed", "bug.reopened", "task.complete"]
22
- prompt_file = "roles/closer.md"
23
-
24
- [handoff]
25
- "loop.start" = ["diagnoser"]
26
- "cause.found" = ["fixer"]
27
- "diagnosis.blocked" = ["diagnoser"]
28
- "fix.applied" = ["verifier"]
29
- "fix.blocked" = ["diagnoser"]
30
- "fix.verified" = ["closer"]
31
- "fix.failed" = ["fixer"]
32
- "bug.closed" = ["diagnoser"]
33
- "bug.reopened" = ["diagnoser"]
@@ -1,73 +0,0 @@
1
- # Autoideas miniloop
2
-
3
- Use when you want a skeptical audit of improvement opportunities across your repository.
4
-
5
- Shape:
6
- - scanner
7
- - analyst
8
- - reviewer
9
- - synthesizer
10
-
11
- The scanner identifies areas worth analyzing. The analyst deep-dives each area and produces concrete suggestions. The reviewer tries to kill weak ideas. The synthesizer compiles only the survivors into `.autoloop/ideas-report.md`.
12
-
13
- ## Fail-closed contract
14
-
15
- Autoideas should prefer false negatives over false positives.
16
-
17
- - A healthy run may reject many areas.
18
- - A healthy run may end with only a few strong ideas.
19
- - `.autoloop/ideas-report.md` should contain reviewer-validated suggestions, not every plausible thought.
20
- - Inspect `.autoloop/progress.md` if you want to see what was trimmed or rejected.
21
-
22
- ## Files
23
-
24
- - `autoloops.toml` — loop + backend config
25
- - `topology.toml` — role deck + handoff graph
26
- - `harness.md` — shared harness rules loaded every iteration
27
- - `roles/scanner.md`
28
- - `roles/analyst.md`
29
- - `roles/reviewer.md`
30
- - `roles/synthesizer.md`
31
-
32
- ## Shared working files created by the loop
33
-
34
- - `.autoloop/scan-areas.md` — prioritized list of repo areas to analyze
35
- - `.autoloop/progress.md` — current area, status, completed areas, PASS/DROP reviewer notes
36
- - `.autoloop/ideas-report.md` — the final output report
37
-
38
- ## Backend
39
-
40
- This preset assumes the built-in Pi adapter:
41
-
42
- ```toml
43
- backend.kind = "pi"
44
- backend.command = "pi"
45
- ```
46
-
47
- For deterministic local harness debugging only, switch to the repo mock backend:
48
-
49
- ```toml
50
- backend.kind = "command"
51
- backend.command = "../../examples/mock-backend.sh"
52
- ```
53
-
54
- ## Run
55
-
56
- From the repo root:
57
-
58
- ```bash
59
- autoloop run presets/autoideas /path/to/target-repo
60
- ```
61
-
62
- For a one-off Claude dogfood run without editing config:
63
-
64
- ```bash
65
- autoloop -b claude presets/autoideas /path/to/target-repo
66
- ```
67
-
68
- ## What it produces
69
-
70
- An `.autoloop/ideas-report.md` containing:
71
- - Concrete suggestions organized by area
72
- - Only ideas that survived skeptical review
73
- - Enough context to understand why each surviving idea is worth doing
@@ -1,18 +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 = ["analysis.validated"]
5
-
6
- backend.kind = "command"
7
- backend.command = "claude"
8
- backend.timeout_ms = 3000000
9
-
10
- review.enabled = true
11
- review.timeout_ms = 300000
12
-
13
- memory.prompt_budget_chars = 8000
14
- harness.instructions_file = "harness.md"
15
-
16
- core.state_dir = ".autoloop"
17
- core.journal_file = ".autoloop/journal.jsonl"
18
- core.memory_file = ".autoloop/memory.jsonl"