@mobrienv/autoloop 0.4.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 (440) hide show
  1. package/README.md +40 -14
  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 +30 -23
  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 -293
  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 -19
  20. package/dist/backend/kiro-bridge.js +0 -114
  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 -96
  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/cli/color.d.ts +0 -6
  59. package/dist/cli/color.js +0 -40
  60. package/dist/cli/color.js.map +0 -1
  61. package/dist/commands/chain.d.ts +0 -1
  62. package/dist/commands/chain.js +0 -53
  63. package/dist/commands/chain.js.map +0 -1
  64. package/dist/commands/config.d.ts +0 -1
  65. package/dist/commands/config.js +0 -74
  66. package/dist/commands/config.js.map +0 -1
  67. package/dist/commands/dashboard.d.ts +0 -1
  68. package/dist/commands/dashboard.js +0 -68
  69. package/dist/commands/dashboard.js.map +0 -1
  70. package/dist/commands/guide.d.ts +0 -1
  71. package/dist/commands/guide.js +0 -33
  72. package/dist/commands/guide.js.map +0 -1
  73. package/dist/commands/inspect.d.ts +0 -1
  74. package/dist/commands/inspect.js +0 -243
  75. package/dist/commands/inspect.js.map +0 -1
  76. package/dist/commands/list.d.ts +0 -1
  77. package/dist/commands/list.js +0 -15
  78. package/dist/commands/list.js.map +0 -1
  79. package/dist/commands/loops.d.ts +0 -1
  80. package/dist/commands/loops.js +0 -72
  81. package/dist/commands/loops.js.map +0 -1
  82. package/dist/commands/memory.d.ts +0 -1
  83. package/dist/commands/memory.js +0 -65
  84. package/dist/commands/memory.js.map +0 -1
  85. package/dist/commands/pi-adapter.d.ts +0 -1
  86. package/dist/commands/pi-adapter.js +0 -6
  87. package/dist/commands/pi-adapter.js.map +0 -1
  88. package/dist/commands/run.d.ts +0 -1
  89. package/dist/commands/run.js +0 -292
  90. package/dist/commands/run.js.map +0 -1
  91. package/dist/commands/runs.d.ts +0 -1
  92. package/dist/commands/runs.js +0 -50
  93. package/dist/commands/runs.js.map +0 -1
  94. package/dist/commands/task.d.ts +0 -1
  95. package/dist/commands/task.js +0 -74
  96. package/dist/commands/task.js.map +0 -1
  97. package/dist/commands/worktree.d.ts +0 -1
  98. package/dist/commands/worktree.js +0 -162
  99. package/dist/commands/worktree.js.map +0 -1
  100. package/dist/config.d.ts +0 -31
  101. package/dist/config.js +0 -261
  102. package/dist/config.js.map +0 -1
  103. package/dist/dashboard/app.d.ts +0 -12
  104. package/dist/dashboard/app.js +0 -23
  105. package/dist/dashboard/app.js.map +0 -1
  106. package/dist/dashboard/routes/api.d.ts +0 -3
  107. package/dist/dashboard/routes/api.js +0 -186
  108. package/dist/dashboard/routes/api.js.map +0 -1
  109. package/dist/dashboard/routes/pages.d.ts +0 -2
  110. package/dist/dashboard/routes/pages.js +0 -16
  111. package/dist/dashboard/routes/pages.js.map +0 -1
  112. package/dist/dashboard/views/alpine-vendor.d.ts +0 -1
  113. package/dist/dashboard/views/alpine-vendor.js +0 -10
  114. package/dist/dashboard/views/alpine-vendor.js.map +0 -1
  115. package/dist/dashboard/views/shell.d.ts +0 -1
  116. package/dist/dashboard/views/shell.js +0 -1062
  117. package/dist/dashboard/views/shell.js.map +0 -1
  118. package/dist/events/decode.d.ts +0 -2
  119. package/dist/events/decode.js +0 -45
  120. package/dist/events/decode.js.map +0 -1
  121. package/dist/events/encode.d.ts +0 -2
  122. package/dist/events/encode.js +0 -33
  123. package/dist/events/encode.js.map +0 -1
  124. package/dist/events/guards.d.ts +0 -5
  125. package/dist/events/guards.js +0 -42
  126. package/dist/events/guards.js.map +0 -1
  127. package/dist/events/types.d.ts +0 -27
  128. package/dist/events/types.js +0 -2
  129. package/dist/events/types.js.map +0 -1
  130. package/dist/harness/artifacts.d.ts +0 -50
  131. package/dist/harness/artifacts.js +0 -333
  132. package/dist/harness/artifacts.js.map +0 -1
  133. package/dist/harness/config-helpers.d.ts +0 -35
  134. package/dist/harness/config-helpers.js +0 -409
  135. package/dist/harness/config-helpers.js.map +0 -1
  136. package/dist/harness/coordination.d.ts +0 -1
  137. package/dist/harness/coordination.js +0 -127
  138. package/dist/harness/coordination.js.map +0 -1
  139. package/dist/harness/display.d.ts +0 -21
  140. package/dist/harness/display.js +0 -176
  141. package/dist/harness/display.js.map +0 -1
  142. package/dist/harness/emit.d.ts +0 -15
  143. package/dist/harness/emit.js +0 -240
  144. package/dist/harness/emit.js.map +0 -1
  145. package/dist/harness/index.d.ts +0 -20
  146. package/dist/harness/index.js +0 -311
  147. package/dist/harness/index.js.map +0 -1
  148. package/dist/harness/iteration.d.ts +0 -16
  149. package/dist/harness/iteration.js +0 -131
  150. package/dist/harness/iteration.js.map +0 -1
  151. package/dist/harness/journal-format.d.ts +0 -25
  152. package/dist/harness/journal-format.js +0 -153
  153. package/dist/harness/journal-format.js.map +0 -1
  154. package/dist/harness/journal.d.ts +0 -31
  155. package/dist/harness/journal.js +0 -178
  156. package/dist/harness/journal.js.map +0 -1
  157. package/dist/harness/metareview.d.ts +0 -4
  158. package/dist/harness/metareview.js +0 -48
  159. package/dist/harness/metareview.js.map +0 -1
  160. package/dist/harness/metrics.d.ts +0 -12
  161. package/dist/harness/metrics.js +0 -180
  162. package/dist/harness/metrics.js.map +0 -1
  163. package/dist/harness/parallel.d.ts +0 -37
  164. package/dist/harness/parallel.js +0 -237
  165. package/dist/harness/parallel.js.map +0 -1
  166. package/dist/harness/prompt.d.ts +0 -46
  167. package/dist/harness/prompt.js +0 -403
  168. package/dist/harness/prompt.js.map +0 -1
  169. package/dist/harness/scratchpad.d.ts +0 -2
  170. package/dist/harness/scratchpad.js +0 -67
  171. package/dist/harness/scratchpad.js.map +0 -1
  172. package/dist/harness/stop.d.ts +0 -5
  173. package/dist/harness/stop.js +0 -70
  174. package/dist/harness/stop.js.map +0 -1
  175. package/dist/harness/tools.d.ts +0 -3
  176. package/dist/harness/tools.js +0 -65
  177. package/dist/harness/tools.js.map +0 -1
  178. package/dist/harness/types.d.ts +0 -110
  179. package/dist/harness/types.js +0 -2
  180. package/dist/harness/types.js.map +0 -1
  181. package/dist/harness/wave/finalize-wave.d.ts +0 -9
  182. package/dist/harness/wave/finalize-wave.js +0 -87
  183. package/dist/harness/wave/finalize-wave.js.map +0 -1
  184. package/dist/harness/wave/launch-branches.d.ts +0 -6
  185. package/dist/harness/wave/launch-branches.js +0 -314
  186. package/dist/harness/wave/launch-branches.js.map +0 -1
  187. package/dist/harness/wave/parse-objectives.d.ts +0 -3
  188. package/dist/harness/wave/parse-objectives.js +0 -32
  189. package/dist/harness/wave/parse-objectives.js.map +0 -1
  190. package/dist/harness/wave/types.d.ts +0 -43
  191. package/dist/harness/wave/types.js +0 -2
  192. package/dist/harness/wave/types.js.map +0 -1
  193. package/dist/harness/wave.d.ts +0 -6
  194. package/dist/harness/wave.js +0 -159
  195. package/dist/harness/wave.js.map +0 -1
  196. package/dist/isolation/index.d.ts +0 -4
  197. package/dist/isolation/index.js +0 -3
  198. package/dist/isolation/index.js.map +0 -1
  199. package/dist/isolation/resolve.d.ts +0 -39
  200. package/dist/isolation/resolve.js +0 -118
  201. package/dist/isolation/resolve.js.map +0 -1
  202. package/dist/isolation/run-scope.d.ts +0 -21
  203. package/dist/isolation/run-scope.js +0 -50
  204. package/dist/isolation/run-scope.js.map +0 -1
  205. package/dist/json.d.ts +0 -8
  206. package/dist/json.js +0 -82
  207. package/dist/json.js.map +0 -1
  208. package/dist/loops/health.d.ts +0 -17
  209. package/dist/loops/health.js +0 -152
  210. package/dist/loops/health.js.map +0 -1
  211. package/dist/loops/list.d.ts +0 -6
  212. package/dist/loops/list.js +0 -21
  213. package/dist/loops/list.js.map +0 -1
  214. package/dist/loops/policy.d.ts +0 -6
  215. package/dist/loops/policy.js +0 -41
  216. package/dist/loops/policy.js.map +0 -1
  217. package/dist/loops/render.d.ts +0 -19
  218. package/dist/loops/render.js +0 -100
  219. package/dist/loops/render.js.map +0 -1
  220. package/dist/loops/show.d.ts +0 -8
  221. package/dist/loops/show.js +0 -31
  222. package/dist/loops/show.js.map +0 -1
  223. package/dist/loops/watch.d.ts +0 -14
  224. package/dist/loops/watch.js +0 -143
  225. package/dist/loops/watch.js.map +0 -1
  226. package/dist/main.d.ts +0 -1
  227. package/dist/main.js +0 -148
  228. package/dist/main.js.map +0 -1
  229. package/dist/markdown.d.ts +0 -10
  230. package/dist/markdown.js +0 -66
  231. package/dist/markdown.js.map +0 -1
  232. package/dist/memory-render.d.ts +0 -6
  233. package/dist/memory-render.js +0 -81
  234. package/dist/memory-render.js.map +0 -1
  235. package/dist/memory.d.ts +0 -22
  236. package/dist/memory.js +0 -318
  237. package/dist/memory.js.map +0 -1
  238. package/dist/pi-adapter.d.ts +0 -1
  239. package/dist/pi-adapter.js +0 -220
  240. package/dist/pi-adapter.js.map +0 -1
  241. package/dist/profiles.d.ts +0 -12
  242. package/dist/profiles.js +0 -71
  243. package/dist/profiles.js.map +0 -1
  244. package/dist/registry/derive.d.ts +0 -8
  245. package/dist/registry/derive.js +0 -88
  246. package/dist/registry/derive.js.map +0 -1
  247. package/dist/registry/discover.d.ts +0 -20
  248. package/dist/registry/discover.js +0 -98
  249. package/dist/registry/discover.js.map +0 -1
  250. package/dist/registry/harness.d.ts +0 -7
  251. package/dist/registry/harness.js +0 -63
  252. package/dist/registry/harness.js.map +0 -1
  253. package/dist/registry/index.d.ts +0 -6
  254. package/dist/registry/index.js +0 -6
  255. package/dist/registry/index.js.map +0 -1
  256. package/dist/registry/read.d.ts +0 -11
  257. package/dist/registry/read.js +0 -50
  258. package/dist/registry/read.js.map +0 -1
  259. package/dist/registry/rebuild.d.ts +0 -5
  260. package/dist/registry/rebuild.js +0 -22
  261. package/dist/registry/rebuild.js.map +0 -1
  262. package/dist/registry/types.d.ts +0 -28
  263. package/dist/registry/types.js +0 -2
  264. package/dist/registry/types.js.map +0 -1
  265. package/dist/registry/update.d.ts +0 -2
  266. package/dist/registry/update.js +0 -7
  267. package/dist/registry/update.js.map +0 -1
  268. package/dist/tasks-render.d.ts +0 -2
  269. package/dist/tasks-render.js +0 -44
  270. package/dist/tasks-render.js.map +0 -1
  271. package/dist/tasks.d.ts +0 -24
  272. package/dist/tasks.js +0 -184
  273. package/dist/tasks.js.map +0 -1
  274. package/dist/topology.d.ts +0 -31
  275. package/dist/topology.js +0 -309
  276. package/dist/topology.js.map +0 -1
  277. package/dist/usage.d.ts +0 -9
  278. package/dist/usage.js +0 -160
  279. package/dist/usage.js.map +0 -1
  280. package/dist/utils.d.ts +0 -21
  281. package/dist/utils.js +0 -349
  282. package/dist/utils.js.map +0 -1
  283. package/dist/worktree/clean.d.ts +0 -12
  284. package/dist/worktree/clean.js +0 -113
  285. package/dist/worktree/clean.js.map +0 -1
  286. package/dist/worktree/create.d.ts +0 -14
  287. package/dist/worktree/create.js +0 -71
  288. package/dist/worktree/create.js.map +0 -1
  289. package/dist/worktree/index.d.ts +0 -10
  290. package/dist/worktree/index.js +0 -6
  291. package/dist/worktree/index.js.map +0 -1
  292. package/dist/worktree/list.d.ts +0 -9
  293. package/dist/worktree/list.js +0 -24
  294. package/dist/worktree/list.js.map +0 -1
  295. package/dist/worktree/merge.d.ts +0 -11
  296. package/dist/worktree/merge.js +0 -129
  297. package/dist/worktree/merge.js.map +0 -1
  298. package/dist/worktree/meta.d.ts +0 -17
  299. package/dist/worktree/meta.js +0 -34
  300. package/dist/worktree/meta.js.map +0 -1
  301. package/presets/autocode/README.md +0 -81
  302. package/presets/autocode/autoloops.toml +0 -30
  303. package/presets/autocode/harness.md +0 -26
  304. package/presets/autocode/miniloops.toml +0 -22
  305. package/presets/autocode/roles/build.md +0 -34
  306. package/presets/autocode/roles/critic.md +0 -40
  307. package/presets/autocode/roles/finalizer.md +0 -43
  308. package/presets/autocode/roles/planner.md +0 -40
  309. package/presets/autocode/topology.toml +0 -32
  310. package/presets/autodebug/README.md +0 -50
  311. package/presets/autodebug/autoloops.toml +0 -18
  312. package/presets/autodebug/harness.md +0 -31
  313. package/presets/autodebug/roles/fixer.md +0 -58
  314. package/presets/autodebug/roles/investigator.md +0 -52
  315. package/presets/autodebug/roles/strategist.md +0 -45
  316. package/presets/autodebug/roles/verifier.md +0 -66
  317. package/presets/autodebug/topology.toml +0 -34
  318. package/presets/autodoc/README.md +0 -42
  319. package/presets/autodoc/autoloops.toml +0 -21
  320. package/presets/autodoc/harness.md +0 -19
  321. package/presets/autodoc/miniloops.toml +0 -21
  322. package/presets/autodoc/roles/auditor.md +0 -39
  323. package/presets/autodoc/roles/checker.md +0 -43
  324. package/presets/autodoc/roles/publisher.md +0 -51
  325. package/presets/autodoc/roles/writer.md +0 -37
  326. package/presets/autodoc/topology.toml +0 -31
  327. package/presets/autofix/README.md +0 -56
  328. package/presets/autofix/autoloops.toml +0 -24
  329. package/presets/autofix/harness.md +0 -25
  330. package/presets/autofix/miniloops.toml +0 -21
  331. package/presets/autofix/roles/closer.md +0 -48
  332. package/presets/autofix/roles/diagnoser.md +0 -43
  333. package/presets/autofix/roles/fixer.md +0 -28
  334. package/presets/autofix/roles/verifier.md +0 -31
  335. package/presets/autofix/topology.toml +0 -33
  336. package/presets/autoideas/README.md +0 -73
  337. package/presets/autoideas/autoloops.toml +0 -18
  338. package/presets/autoideas/harness.md +0 -31
  339. package/presets/autoideas/miniloops.toml +0 -18
  340. package/presets/autoideas/roles/analyst.md +0 -32
  341. package/presets/autoideas/roles/reviewer.md +0 -36
  342. package/presets/autoideas/roles/scanner.md +0 -26
  343. package/presets/autoideas/roles/synthesizer.md +0 -61
  344. package/presets/autoideas/topology.toml +0 -32
  345. package/presets/automerge/README.md +0 -3
  346. package/presets/automerge/autoloops.toml +0 -12
  347. package/presets/automerge/harness.md +0 -10
  348. package/presets/automerge/miniloops.toml +0 -12
  349. package/presets/automerge/roles/merge.md +0 -10
  350. package/presets/automerge/topology.toml +0 -10
  351. package/presets/autoperf/README.md +0 -56
  352. package/presets/autoperf/autoloops.toml +0 -21
  353. package/presets/autoperf/harness.md +0 -21
  354. package/presets/autoperf/miniloops.toml +0 -21
  355. package/presets/autoperf/roles/judge.md +0 -38
  356. package/presets/autoperf/roles/measurer.md +0 -36
  357. package/presets/autoperf/roles/optimizer.md +0 -35
  358. package/presets/autoperf/roles/profiler.md +0 -38
  359. package/presets/autoperf/topology.toml +0 -32
  360. package/presets/autopr/README.md +0 -99
  361. package/presets/autopr/autoloops.toml +0 -22
  362. package/presets/autopr/harness.md +0 -27
  363. package/presets/autopr/miniloops.toml +0 -22
  364. package/presets/autopr/roles/collector.md +0 -55
  365. package/presets/autopr/roles/drafter.md +0 -38
  366. package/presets/autopr/roles/publisher.md +0 -28
  367. package/presets/autopr/roles/validator.md +0 -31
  368. package/presets/autopr/topology.toml +0 -32
  369. package/presets/autopreset/README.md +0 -35
  370. package/presets/autopreset/autoloops.toml +0 -18
  371. package/presets/autopreset/harness.md +0 -38
  372. package/presets/autopreset/roles/designer.md +0 -33
  373. package/presets/autopreset/roles/finalizer.md +0 -23
  374. package/presets/autopreset/roles/generator.md +0 -34
  375. package/presets/autopreset/roles/validator.md +0 -31
  376. package/presets/autopreset/topology.toml +0 -32
  377. package/presets/autoqa/README.md +0 -105
  378. package/presets/autoqa/autoloops.toml +0 -21
  379. package/presets/autoqa/harness.md +0 -52
  380. package/presets/autoqa/miniloops.toml +0 -21
  381. package/presets/autoqa/roles/executor.md +0 -96
  382. package/presets/autoqa/roles/inspector.md +0 -100
  383. package/presets/autoqa/roles/planner.md +0 -87
  384. package/presets/autoqa/roles/reporter.md +0 -117
  385. package/presets/autoqa/topology.toml +0 -31
  386. package/presets/autoresearch/README.md +0 -63
  387. package/presets/autoresearch/autoloops.toml +0 -18
  388. package/presets/autoresearch/harness.md +0 -28
  389. package/presets/autoresearch/miniloops.toml +0 -18
  390. package/presets/autoresearch/roles/benchmarker.md +0 -34
  391. package/presets/autoresearch/roles/evaluator.md +0 -33
  392. package/presets/autoresearch/roles/implementer.md +0 -26
  393. package/presets/autoresearch/roles/strategist.md +0 -43
  394. package/presets/autoresearch/topology.toml +0 -31
  395. package/presets/autoreview/README.md +0 -51
  396. package/presets/autoreview/autoloops.toml +0 -21
  397. package/presets/autoreview/harness.md +0 -20
  398. package/presets/autoreview/miniloops.toml +0 -21
  399. package/presets/autoreview/roles/checker.md +0 -36
  400. package/presets/autoreview/roles/reader.md +0 -33
  401. package/presets/autoreview/roles/suggester.md +0 -26
  402. package/presets/autoreview/roles/summarizer.md +0 -57
  403. package/presets/autoreview/topology.toml +0 -31
  404. package/presets/autosec/README.md +0 -51
  405. package/presets/autosec/autoloops.toml +0 -21
  406. package/presets/autosec/harness.md +0 -20
  407. package/presets/autosec/miniloops.toml +0 -21
  408. package/presets/autosec/roles/analyst.md +0 -38
  409. package/presets/autosec/roles/hardener.md +0 -36
  410. package/presets/autosec/roles/reporter.md +0 -63
  411. package/presets/autosec/roles/scanner.md +0 -38
  412. package/presets/autosec/topology.toml +0 -31
  413. package/presets/autosimplify/README.md +0 -83
  414. package/presets/autosimplify/autoloops.toml +0 -26
  415. package/presets/autosimplify/harness.md +0 -25
  416. package/presets/autosimplify/miniloops.toml +0 -22
  417. package/presets/autosimplify/roles/reviewer.md +0 -38
  418. package/presets/autosimplify/roles/scoper.md +0 -42
  419. package/presets/autosimplify/roles/simplifier.md +0 -51
  420. package/presets/autosimplify/roles/verifier.md +0 -40
  421. package/presets/autosimplify/topology.toml +0 -32
  422. package/presets/autospec/README.md +0 -84
  423. package/presets/autospec/autoloops.toml +0 -21
  424. package/presets/autospec/harness.md +0 -23
  425. package/presets/autospec/miniloops.toml +0 -21
  426. package/presets/autospec/roles/clarifier.md +0 -39
  427. package/presets/autospec/roles/critic.md +0 -41
  428. package/presets/autospec/roles/designer.md +0 -37
  429. package/presets/autospec/roles/planner.md +0 -38
  430. package/presets/autospec/roles/researcher.md +0 -33
  431. package/presets/autospec/topology.toml +0 -38
  432. package/presets/autotest/README.md +0 -55
  433. package/presets/autotest/autoloops.toml +0 -21
  434. package/presets/autotest/harness.md +0 -21
  435. package/presets/autotest/miniloops.toml +0 -21
  436. package/presets/autotest/roles/assessor.md +0 -57
  437. package/presets/autotest/roles/runner.md +0 -31
  438. package/presets/autotest/roles/surveyor.md +0 -39
  439. package/presets/autotest/roles/writer.md +0 -37
  440. package/presets/autotest/topology.toml +0 -32
@@ -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"
@@ -1,31 +0,0 @@
1
- This is a autoloops-native autoideas loop that surveys a repository and generates an improvement report.
2
-
3
- The loop scans a repo, identifies areas worth analyzing, produces concrete suggestions, validates them, and compiles an `{{STATE_DIR}}/ideas-report.md`.
4
-
5
- Global rules:
6
- - Shared working files are the source of truth: `{{STATE_DIR}}/ideas-report.md`, `{{STATE_DIR}}/scan-areas.md`, `{{STATE_DIR}}/progress.md`.
7
- - Inherited chain objectives may mention spec/build/simplify/QA work. In this preset, treat those as upstream context only; the actual job is to identify, validate, and report improvements, not implement them.
8
- - One area at a time. Do not start analyzing a new area before the current one is validated.
9
- - Use the event tool instead of prose-only handoffs.
10
- - Fresh context every iteration: re-read the shared working files and the relevant source before acting.
11
- - Suggestions must be actionable, specific, and non-obvious. No generic advice.
12
- - False positives are worse than false negatives. A healthy run may reject many areas and publish only a few ideas.
13
- - Maintain clear role boundaries:
14
- - scanner updates `{{STATE_DIR}}/scan-areas.md`
15
- - analyst drafts suggestions in `{{STATE_DIR}}/progress.md`
16
- - reviewer records PASS/DROP verdicts in `{{STATE_DIR}}/progress.md`
17
- - synthesizer updates `{{STATE_DIR}}/ideas-report.md`
18
- - If you catch yourself doing another role's job, stop and emit the blocking or rejection event instead.
19
- - Do not trust summaries alone. Re-read the actual working files and source.
20
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
21
- - Do not invent extra phases. Stay inside scanner -> analyst -> reviewer -> synthesizer.
22
-
23
- Termination rules:
24
- - Each iteration plays exactly ONE role and emits exactly ONE event from that role's allowed set. Do not play multiple roles in one iteration.
25
- - If the scratchpad or `recent_event` shows `task.complete` has already been emitted and `{{STATE_DIR}}/ideas-report.md` exists with content, the loop is done. Emit `task.complete` immediately without re-reading or re-summarizing the report. Keep the output to a single sentence.
26
- - Only emit events listed in the "Allowed next events" for this iteration. Emitting out-of-scope events wastes iterations.
27
-
28
- State files:
29
- - `{{STATE_DIR}}/scan-areas.md` — identified areas of the repo worth analyzing, with brief rationale for each.
30
- - `{{STATE_DIR}}/progress.md` — current area under analysis, what the next role should do, completed areas.
31
- - `{{STATE_DIR}}/ideas-report.md` — the compiled output report with reviewer-validated suggestions.
@@ -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 = "pi"
7
- backend.command = "pi"
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 = ".miniloop"
17
- core.journal_file = ".miniloop/journal.jsonl"
18
- core.memory_file = ".miniloop/memory.jsonl"
@@ -1,32 +0,0 @@
1
- You are the analyst.
2
-
3
- Do not survey the whole repo. Do not validate your own suggestions. Your job is to deep-dive one area and produce concrete suggestions.
4
-
5
- On activation:
6
- - Read `{{STATE_DIR}}/progress.md` to find the current area assignment.
7
- - Read `{{STATE_DIR}}/scan-areas.md` for the area's context and file paths.
8
- - Read the relevant source files thoroughly.
9
-
10
- Your job:
11
- 1. Understand the current code in the assigned area.
12
- 2. Identify specific, actionable improvements.
13
- 3. For each suggestion, provide:
14
- - **What**: a one-line summary of the change
15
- - **Where**: exact file paths and approximate line ranges
16
- - **Why**: the concrete benefit (not "better code" — quantify or specify)
17
- - **How**: a brief sketch of the implementation approach
18
- - **Risk**: what could go wrong or what trade-offs exist
19
- - **Counterargument**: why this idea might be wrong, unnecessary, or lower value than it first appears
20
- - **Confidence**: high / medium / low
21
- 4. Write your suggestions to `{{STATE_DIR}}/progress.md` under the current area.
22
- 5. Emit `analysis.ready`.
23
-
24
- If you cannot produce meaningful suggestions for the area (e.g., the code is already well-structured), note that in `{{STATE_DIR}}/progress.md` and emit `analysis.blocked` so the scanner can re-route.
25
-
26
- Rules:
27
- - Suggestions must be non-obvious. Skip anything a linter would catch.
28
- - Prefer suggestions that improve correctness, performance, or developer experience over cosmetic changes.
29
- - 0-3 strong suggestions is better than padding with filler.
30
- - Do not implement any changes. Analysis only.
31
- - Do not make hand-wavy impact claims. If you cannot support the benefit from code evidence, say so.
32
- - Give the reviewer something to attack, not something to rubber-stamp.
@@ -1,36 +0,0 @@
1
- You are the reviewer.
2
-
3
- You are not the analyst. Fresh eyes matter.
4
-
5
- Your job is to validate the quality of the analyst's suggestions for the current area by trying to prove them weak, wrong, or not worth doing.
6
-
7
- On activation:
8
- - Read `{{STATE_DIR}}/progress.md` for the current area and suggestions.
9
- - Read the actual source files referenced by each suggestion.
10
- - Independently assess each suggestion.
11
-
12
- Review checklist for each suggestion:
13
- - Is it **actionable**? Could a developer implement it from this description alone?
14
- - Is it **accurate**? Does it correctly describe the current code and the proposed change?
15
- - Is it **non-obvious**? Would a competent developer working in this codebase likely miss it?
16
- - Is the **benefit real**? Is the claimed improvement genuine and worth the effort?
17
- - Is the **risk assessment honest**? Are there unstated downsides?
18
- - Is there enough source evidence to defend the idea?
19
- - What is the strongest reason this suggestion should be rejected?
20
-
21
- Record in `{{STATE_DIR}}/progress.md` for each suggestion:
22
- - PASS or DROP
23
- - exact files checked
24
- - one sentence of evidence
25
- - one sentence of skepticism or counterargument
26
-
27
- Emit:
28
- - `analysis.validated` only when every surviving suggestion has concrete source verification and the weak ones were dropped.
29
- - `analysis.rejected` when the core analysis is flawed — inaccurate claims about the code, speculative impact claims, suggestions that would introduce bugs, or a set so weak that it should not be published.
30
-
31
- Rules:
32
- - Default to rejection when evidence is thin.
33
- - It is better to publish one strong idea than five weak ones.
34
- - Do not add your own suggestions.
35
- - Do not update `{{STATE_DIR}}/ideas-report.md`. Validation only.
36
- - If fewer than one or two strong ideas survive, that is a valid rejection.
@@ -1,26 +0,0 @@
1
- You are the scanner.
2
-
3
- Do not analyze deeply. Do not write suggestions. Your job is to survey and prioritize.
4
-
5
- Your job:
6
- 1. Survey the target repo structure, code patterns, and health signals.
7
- 2. Identify areas worth deeper analysis.
8
- 3. Hand exactly one area to the analyst.
9
-
10
- On first activation:
11
- - Read the repo tree, key config files, README, and a sample of source files.
12
- - Create or refresh:
13
- - `{{STATE_DIR}}/scan-areas.md` — a prioritized list of areas worth analyzing. Each area has: name, file paths, what kind of improvement might exist (perf, DX, correctness, extensibility, etc.), and why it looks promising.
14
- - `{{STATE_DIR}}/progress.md` — current area, status, completed areas.
15
- - Choose the highest-priority area and emit `areas.identified`.
16
-
17
- On later activations (`report.updated`, `analysis.blocked`, `synthesis.blocked`):
18
- - Re-read `{{STATE_DIR}}/scan-areas.md`, `{{STATE_DIR}}/progress.md`, and `{{STATE_DIR}}/ideas-report.md` if it exists.
19
- - If there are remaining unanalyzed areas, pick the next highest-priority one and emit `areas.identified`.
20
- - If all areas have been analyzed and the report is sufficient, emit `task.complete`.
21
- - If the synthesizer or analyst reported a blocker, adjust the area list and re-route.
22
-
23
- Rules:
24
- - Cast a wide net: look at architecture, error handling, testing, performance, developer experience, documentation, dependencies, and security.
25
- - Prioritize areas where suggestions would be most impactful.
26
- - Be specific about file paths and what to look for — the analyst should not have to re-survey.
@@ -1,61 +0,0 @@
1
- You are the synthesizer.
2
-
3
- Do not analyze code. Do not validate suggestions. Your job is to compile and organize.
4
-
5
- On activation:
6
- - Read `{{STATE_DIR}}/progress.md` for the latest validated suggestions.
7
- - Read `{{STATE_DIR}}/ideas-report.md` if it exists.
8
- - Read `{{STATE_DIR}}/scan-areas.md` to understand how many areas remain.
9
-
10
- Your job:
11
- 1. Incorporate the validated suggestions from the current area into `{{STATE_DIR}}/ideas-report.md`.
12
- 2. Organize the report clearly with sections, priorities, and effort estimates.
13
- 3. Decide what happens next.
14
-
15
- Report format (`{{STATE_DIR}}/ideas-report.md`):
16
- ```
17
- # Ideas Report
18
-
19
- ## Summary
20
- Brief overview of findings so far.
21
-
22
- ## Suggestions
23
-
24
- ### [Area Name]
25
- #### 1. [Suggestion title]
26
- - **Impact**: high / medium / low
27
- - **Effort**: small / medium / large
28
- - **What**: ...
29
- - **Where**: file paths
30
- - **Why**: ...
31
- - **How**: implementation sketch
32
- - **Risk**: ...
33
-
34
- (repeat for each suggestion)
35
-
36
- ## Priority Matrix
37
- Table of all suggestions ranked by impact/effort ratio.
38
- ```
39
-
40
- After updating the report, do these steps IN ORDER:
41
-
42
- **Step 1 (MANDATORY — do this FIRST or the loop breaks):**
43
- Open `{{STATE_DIR}}/context.md` and REPLACE the `## Current State` section with updated values:
44
- ```
45
- ## Current State
46
- - **Phase**: Areas 1–N complete, cycling back to scanner to dispatch Area N+1.
47
- - **Completed**: [list every completed area with suggestion count]. Total: X validated suggestions in ideas-report.md.
48
- - **Next area**: Area N+1 ([name]) — see scan-areas.md for details.
49
- - **Remaining**: Areas N+1–7 pending analysis.
50
- ```
51
- Fill in the actual numbers. This is not optional — the scanner reads this to decide what to do next.
52
-
53
- **Step 2:** Emit the appropriate event:
54
- - If there are remaining unanalyzed areas in `{{STATE_DIR}}/scan-areas.md`, emit `report.updated` to send the scanner back for the next area.
55
- - If all areas are covered and the report is complete, emit `task.complete`.
56
- - If you need the scanner to re-survey (e.g., the report reveals a gap), emit `synthesis.blocked`.
57
-
58
- Rules:
59
- - Preserve all previously validated suggestions when updating.
60
- - Keep the report readable and well-structured.
61
- - The priority matrix should help a developer decide what to tackle first.
@@ -1,32 +0,0 @@
1
- name = "autoideas"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "scanner"
6
- emits = ["areas.identified", "task.complete"]
7
- prompt_file = "roles/scanner.md"
8
-
9
- [[role]]
10
- id = "analyst"
11
- emits = ["analysis.ready", "analysis.blocked"]
12
- prompt_file = "roles/analyst.md"
13
-
14
- [[role]]
15
- id = "reviewer"
16
- emits = ["analysis.validated", "analysis.rejected"]
17
- prompt_file = "roles/reviewer.md"
18
-
19
- [[role]]
20
- id = "synthesizer"
21
- emits = ["report.updated", "synthesis.blocked", "task.complete"]
22
- prompt_file = "roles/synthesizer.md"
23
-
24
- [handoff]
25
- "loop.start" = ["scanner"]
26
- "report.updated" = ["scanner"]
27
- "areas.identified" = ["analyst"]
28
- "analysis.ready" = ["reviewer"]
29
- "analysis.rejected" = ["analyst"]
30
- "analysis.validated" = ["synthesizer"]
31
- "analysis.blocked" = ["scanner"]
32
- "synthesis.blocked" = ["scanner"]
@@ -1,3 +0,0 @@
1
- # automerge
2
-
3
- Use after a worktree run to merge the worktree branch back into the base branch.
@@ -1,12 +0,0 @@
1
- event_loop.max_iterations = 1
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
-
5
- backend.kind = "command"
6
- backend.command = "claude"
7
- backend.timeout_ms = 300000
8
-
9
- harness.instructions_file = "harness.md"
10
-
11
- core.state_dir = ".autoloop"
12
- core.journal_file = ".autoloop/journal.jsonl"
@@ -1,10 +0,0 @@
1
- <!-- category: planning -->
2
-
3
- This preset merges a completed worktree branch back into its base branch.
4
-
5
- It runs in the main tree (not a worktree) and should never trigger worktree isolation itself.
6
-
7
- Instructions:
8
- 1. Read `handoff.md` in the current work directory. The `## Parent Run` section contains `parent_run_id: <id>`.
9
- 2. Execute `autoloop worktree merge <parent-run-id>` to merge the worktree.
10
- 3. Report success or failure via the completion event.
@@ -1,12 +0,0 @@
1
- event_loop.max_iterations = 1
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
-
5
- backend.kind = "command"
6
- backend.command = "claude"
7
- backend.timeout_ms = 300000
8
-
9
- harness.instructions_file = "harness.md"
10
-
11
- core.state_dir = ".miniloop"
12
- core.journal_file = ".miniloop/journal.jsonl"
@@ -1,10 +0,0 @@
1
- You are the merge role.
2
-
3
- Your job is to merge a completed worktree branch back into the base branch.
4
-
5
- Steps:
6
- 1. Read `handoff.md` in the current work directory.
7
- 2. Find the `## Parent Run` section and extract the value after `parent_run_id: `.
8
- 3. Run `autoloop worktree merge <run-id>` using the event tool or CLI.
9
- 4. If the merge succeeds, emit `task.complete` with a summary of what was merged.
10
- 5. If the merge fails (e.g. conflicts), report the failure details and emit `task.complete` with the error.
@@ -1,10 +0,0 @@
1
- name = "automerge"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "merge"
6
- emits = ["task.complete"]
7
- prompt_file = "roles/merge.md"
8
-
9
- [handoff]
10
- "loop.start" = ["merge"]