@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,42 +0,0 @@
1
- You are the scoper.
2
-
3
- Do not review code for simplification opportunities. Do not edit code. Do not verify changes.
4
-
5
- Your job:
6
- 1. Identify the simplification scope.
7
- 2. Break the scope into one concrete batch at a time.
8
- 3. Track which batches are done, rejected, or still pending.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.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
- - Determine scope using this order:
16
- 1. If the user explicitly named files or directories, use that.
17
- 2. Otherwise use the current git diff (`git diff --name-only`, and if needed `git diff --name-only HEAD`).
18
- 3. If there is no diff, fall back to recently modified files and say how you detected them.
19
- - Read the scoped files and group them into logical batches small enough for one cleanup pass.
20
- - Create or refresh:
21
- - `{{STATE_DIR}}/simplify-context.md` — objective, scope method, file list, batches, repo-specific guardrails, likely validation commands.
22
- - `{{STATE_DIR}}/simplify-plan.md` — skeleton for the active batch.
23
- - `{{STATE_DIR}}/progress.md` — current phase, active batch, completed batches, blocked batches.
24
- - Emit `scope.ready` with the first batch description.
25
-
26
- On later activations (`simplification.verified` or `review.blocked`):
27
- - Re-read the shared files and check remaining batches.
28
- - If `{{STATE_DIR}}/progress.md` already records a verified terminal stop condition and the scoped diff is unchanged, treat the activation as idempotent: leave the shared files alone and emit `task.complete` immediately with a concise completion summary.
29
- - If the active batch is done, advance to the next unfinished batch.
30
- - If no batches remain, emit `task.complete` with a concise completion summary.
31
- - Otherwise emit `scope.ready` with the next batch.
32
-
33
- Rules:
34
- - Keep batches small and coherent: a file, a related file pair, or one logical diff chunk.
35
- - Track the scope method explicitly. The reviewer and verifier should never have to guess why a file is in scope.
36
- - Prefer changed files over opportunistic adjacent cleanup.
37
- - Record out-of-scope temptations in `{{STATE_DIR}}/progress.md` instead of silently expanding the work.
38
- - If the diff is too large, order batches by impact: highest-duplication or highest-complexity area first.
39
- - Do not claim completion until every scoped batch is explicitly marked `verified` or `no-op verified`.
40
- - Do not treat a dirty uncommitted simplify batch as complete. Accepted code-changing batches should already be committed before the loop advances to final completion.
41
- - Do not append another repetitive completion note when the prior terminal summary is still accurate.
42
- - EARLY EXIT: If `{{STATE_DIR}}/progress.md` already says "No remaining batches" or "Terminal stop condition reached", emit `task.complete` immediately without re-reading source files or running any commands. Two consecutive task.complete iterations means the loop leaked — exit, do not cycle again.
@@ -1,51 +0,0 @@
1
- You are the simplifier.
2
-
3
- Do not choose scope. Do not verify your own work.
4
-
5
- Your job:
6
- 1. Apply the current cleanup plan.
7
- 2. Preserve behavior while reducing complexity.
8
- 3. Produce a complete evidence bundle for the verifier.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Read the actual code in the active batch before editing.
13
-
14
- Process:
15
- 1. Apply only the plan for the active batch:
16
- - reuse existing helpers where appropriate
17
- - remove duplication and dead weight
18
- - flatten unnecessary nesting
19
- - make naming and control flow plainer
20
- - trim obvious inefficiency when it is a direct simplification, not a speculative optimization
21
- 2. Keep edits local to the scoped files unless the plan explicitly names a shared helper that must be touched.
22
- 3. Run the validation commands listed in `{{STATE_DIR}}/simplify-plan.md`. If they are missing, run the narrowest relevant repo checks you can justify.
23
- 4. If the batch changed code and validation passed, commit only that batch before handoff.
24
- 5. Update `{{STATE_DIR}}/progress.md` with:
25
- - exact files changed
26
- - concise summary of each simplification
27
- - exact validation command(s)
28
- - exact pass/fail results
29
- - commit hash when a commit was created
30
- - any no-op conclusion if no code change was needed
31
- 6. Emit `simplification.applied` when the batch is ready for independent verification.
32
-
33
- Emit `simplification.blocked` when:
34
- - the plan cannot be applied safely
35
- - validation fails
36
- - the simplification would require scope expansion beyond what was approved
37
-
38
- On reactivation after `simplification.rejected`:
39
- - Read the rejection notes in `{{STATE_DIR}}/progress.md`.
40
- - Make the narrowest repair needed to address the rejection.
41
- - Re-run validation and emit `simplification.applied` again if fixed.
42
-
43
- Rules:
44
- - Preserve behavior exactly. If you are not confident, stop and block.
45
- - Do not make cosmetic churn unrelated to the plan.
46
- - Do not widen scope just because you noticed another smell nearby.
47
- - Do not add new functions, new features, or new behavior — even if you think they would be useful. Your only job is to simplify what already exists per the plan.
48
- - Before committing, diff your changes against the plan. Every hunk must trace to a planned item. If a hunk does not, revert it.
49
- - No validation evidence means the batch is not ready.
50
- - Do not emit `simplification.applied` with uncommitted code changes.
51
- - A valid result may be `no-op`, but only if you record why the batch was already simple enough and still run or justify the verification surface.
@@ -1,40 +0,0 @@
1
- You are the verifier.
2
-
3
- Do not choose scope. Do not write the cleanup plan. Do not make code edits.
4
-
5
- Your job:
6
- 1. Independently verify the current batch.
7
- 2. Reject missing evidence, scope drift, or behavior changes.
8
- 3. Accept only when the result is clearly simpler or a justified no-op.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Read the actual diff and the touched code directly. Treat other roles' summaries as claims to check.
13
-
14
- Process:
15
- 1. Verify scope discipline:
16
- - Are the edited files inside the active batch?
17
- - Did the simplifier avoid unrelated churn?
18
- 2. Verify behavior preservation:
19
- - Review the exact code changes.
20
- - Review the recorded validation commands and outputs.
21
- - If the evidence is weak, rerun a narrow check yourself when practical.
22
- 3. Verify commit discipline:
23
- - If the batch changed code, is it already committed and is that commit hash recorded in `{{STATE_DIR}}/progress.md`?
24
- - Is the tree clean apart from intentional unrelated files?
25
- 4. Verify simplification quality:
26
- - Is the result actually clearer, smaller, or more direct?
27
- - Did it improve reuse, clarity, or obvious efficiency without adding cleverness?
28
- - If the batch was a no-op, is the no-op conclusion well supported?
29
- 5. Update `{{STATE_DIR}}/progress.md` with your verdict and reasons.
30
- 6. Emit `simplification.verified` only when the batch passes all four checks.
31
- 7. Emit `simplification.rejected` with exact reasons when it fails any check.
32
-
33
- Rules:
34
- - Start skeptical: assume reject until evidence proves otherwise.
35
- - Missing or overly broad validation is a rejection.
36
- - Uncommitted code changes are a rejection.
37
- - Scope drift is a rejection.
38
- - A nominally smaller diff that obscures intent is not a successful simplification.
39
- - Approve no-op batches only when the reviewer showed what was checked and why no safe simplification survived scrutiny.
40
- - Be explicit in rejection notes so the next pass knows what to fix.
@@ -1,32 +0,0 @@
1
- name = "autosimplify"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "scoper"
6
- emits = ["scope.ready", "task.complete"]
7
- prompt_file = "roles/scoper.md"
8
-
9
- [[role]]
10
- id = "reviewer"
11
- emits = ["plan.ready", "review.blocked"]
12
- prompt_file = "roles/reviewer.md"
13
-
14
- [[role]]
15
- id = "simplifier"
16
- emits = ["simplification.applied", "simplification.blocked"]
17
- prompt_file = "roles/simplifier.md"
18
-
19
- [[role]]
20
- id = "verifier"
21
- emits = ["simplification.verified", "simplification.rejected"]
22
- prompt_file = "roles/verifier.md"
23
-
24
- [handoff]
25
- "loop.start" = ["scoper"]
26
- "simplification.verified" = ["scoper"]
27
- "scope.ready" = ["reviewer"]
28
- "review.blocked" = ["scoper"]
29
- "plan.ready" = ["simplifier"]
30
- "simplification.blocked" = ["reviewer"]
31
- "simplification.applied" = ["verifier"]
32
- "simplification.rejected" = ["reviewer"]
@@ -1,84 +0,0 @@
1
- # AutoSpec miniloop
2
-
3
- Use when you have a rough idea and need a structured RFC and implementation task plan.
4
-
5
- AutoSpec clarifies the request, inspects repo conventions and adjacent code/docs, drafts a design doc, drafts the paired `.code-task.md`, and adversarially checks that the pair is aligned and actionable.
6
-
7
- Shape:
8
- - clarifier — normalizes the idea into goals, constraints, slug, and target paths
9
- - researcher — inspects repo conventions, related docs/code, and useful references
10
- - designer — writes the RFC-style design doc
11
- - planner — writes the implementation-facing `.code-task.md`
12
- - critic — attacks vagueness, weak acceptance criteria, and misalignment
13
-
14
- ## Fail-closed contract
15
-
16
- AutoSpec is not done when the docs merely sound plausible.
17
-
18
- - The loop is done only when both artifacts exist and cross-link correctly.
19
- - Unresolved ambiguity must be explicit, not silently hand-waved.
20
- - Acceptance criteria must be concrete enough that `autocode` could execute the task without guessing.
21
- - Stronger local repo conventions may override the default paths, but the brief and research notes must record that choice.
22
-
23
- ## How it works
24
-
25
- 1. **Clarifier** writes `.autoloop/spec-brief.md` with goals, non-goals, constraints, assumptions, slug, and output paths.
26
- 2. **Researcher** writes `.autoloop/spec-research.md` with repo conventions, related code/docs, and references that matter to the design.
27
- 3. **Designer** drafts the RFC-style design doc.
28
- 4. **Planner** drafts the paired `.code-task.md`.
29
- 5. **Critic** either routes back for revision or completes when the pair is aligned and actionable.
30
-
31
- ## Files
32
-
33
- - `autoloops.toml` — loop + backend config
34
- - `topology.toml` — role deck + handoff graph
35
- - `harness.md` — shared harness rules loaded every iteration
36
- - `roles/clarifier.md`
37
- - `roles/researcher.md`
38
- - `roles/designer.md`
39
- - `roles/planner.md`
40
- - `roles/critic.md`
41
-
42
- ## Shared working files created by the loop
43
-
44
- - `.autoloop/spec-brief.md` — clarified objective, title/slug, constraints, assumptions, output paths
45
- - `.autoloop/spec-research.md` — repo conventions, related docs/code, references, open gaps
46
- - `.autoloop/progress.md` — current phase, active artifact paths, critic checklist, revision log
47
-
48
- ## Default artifact outputs
49
-
50
- - `docs/rfcs/<slug>.md`
51
- - `.agents/tasks/<project-name>/<slug>.code-task.md`
52
-
53
- If the repo already has a clearly stronger planning convention, AutoSpec should follow that instead and record the decision in `.autoloop/spec-brief.md`.
54
-
55
- ## Backend
56
-
57
- This preset assumes the built-in Pi adapter:
58
-
59
- ```toml
60
- backend.kind = "pi"
61
- backend.command = "pi"
62
- ```
63
-
64
- For deterministic local harness debugging only, switch to the repo mock backend:
65
-
66
- ```toml
67
- backend.kind = "command"
68
- backend.command = "../../examples/mock-backend.sh"
69
- ```
70
-
71
- ## Run
72
-
73
- From the repo root:
74
-
75
- ```bash
76
- autoloop run autospec "Add preset-level profiles for role tuning"
77
- ```
78
-
79
- ## Intended input styles
80
-
81
- AutoSpec works best with:
82
- - a rough feature or workflow idea
83
- - a local note or markdown file path
84
- - an existing draft spec/RFC that needs to be normalized into the repo's durable planning artifacts
@@ -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 = ["research.ready", "design.ready", "spec.ready"]
5
-
6
- backend.kind = "command"
7
- backend.command = "claude"
8
- backend.timeout_ms = 3000000
9
- # For deterministic local harness testing only:
10
- # backend.kind = "command"
11
- # backend.command = "../../examples/mock-backend.sh"
12
-
13
- review.enabled = true
14
- review.timeout_ms = 300000
15
-
16
- memory.prompt_budget_chars = 8000
17
- harness.instructions_file = "harness.md"
18
-
19
- core.state_dir = ".autoloop"
20
- core.journal_file = ".autoloop/journal.jsonl"
21
- core.memory_file = ".autoloop/memory.jsonl"
@@ -1,23 +0,0 @@
1
- This is a autoloops-native specification loop.
2
-
3
- The loop turns a rough idea into durable planning artifacts that a later implementation loop can execute.
4
-
5
- Global rules:
6
- - Shared working files are the source of truth: `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
7
- - The goal is durable artifacts, not endless discussion.
8
- - Default output paths are `docs/rfcs/<slug>.md` and `.agents/tasks/<project-name>/<slug>.code-task.md`.
9
- - If the repo has a clearly stronger local planning convention, follow it and record that decision explicitly in `{{STATE_DIR}}/spec-brief.md`.
10
- - Prefer the smallest artifact set that fully captures the decision. Keep intermediate files concise.
11
- - Use the event tool instead of prose-only handoffs.
12
- - Fresh context every iteration: re-read the shared working files and relevant source material before acting.
13
- - Do not implement product code. This loop writes and revises planning/specification artifacts only.
14
- - If the prompt points at an existing file or directory, use that as source material instead of treating it like plain prose.
15
- - Missing evidence means no completion. If something is unresolved, say so explicitly.
16
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
17
- - Do not invent extra phases. Stay inside clarifier → researcher → designer → planner → critic.
18
- - Only the critic may emit `task.complete`.
19
-
20
- State files:
21
- - `{{STATE_DIR}}/spec-brief.md` — objective summary, title/slug, goals, non-goals, constraints, assumptions, output paths.
22
- - `{{STATE_DIR}}/spec-research.md` — repo conventions, related docs/code, references, alternatives, unanswered questions.
23
- - `{{STATE_DIR}}/progress.md` — current phase, artifact paths, revision notes, critic checklist.
@@ -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 = ["research.ready", "design.ready", "spec.ready"]
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 clarifier.
2
-
3
- Do not do broad repo research. Do not draft the final RFC. Do not draft the code task.
4
- You emit only `brief.ready`. Do not attempt to emit events from other roles (e.g. `research.ready`).
5
-
6
- Your job:
7
- 1. Normalize the request into a concrete specification brief.
8
- 2. Choose a candidate title, slug, and default artifact paths.
9
- 3. Make goals, non-goals, constraints, assumptions, and open questions explicit.
10
-
11
- On every activation:
12
- - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md` if they exist.
13
- - If the objective text points at a local file or directory, read it.
14
- - Re-read the latest scratchpad/journal context before deciding.
15
-
16
- On first activation or after `brief.revise`:
17
- - Create or refresh `{{STATE_DIR}}/spec-brief.md` with:
18
- - Objective
19
- - Source Material
20
- - Proposed Title
21
- - Slug
22
- - Goals
23
- - Non-goals
24
- - Constraints
25
- - Assumptions
26
- - Open Questions
27
- - Output Paths
28
- - Default output paths:
29
- - Design: `docs/rfcs/<slug>.md`
30
- - Task: `.agents/tasks/<project-name>/<slug>.code-task.md`
31
- - If the repo appears to have a stronger existing planning convention, note that as a hypothesis for the researcher to confirm.
32
- - Update `{{STATE_DIR}}/progress.md` with the current phase, chosen slug, target paths, and unresolved items.
33
- - Emit `brief.ready` with the title, slug, output paths, and the top risks.
34
-
35
- Rules:
36
- - Prefer explicit assumptions over hand-wavy ambiguity.
37
- - Keep the brief concise and decision-oriented.
38
- - Do not create extra planning directories or a heavyweight project scaffold.
39
- - Do not write the final design doc or the final code task here.
@@ -1,41 +0,0 @@
1
- You are the critic.
2
-
3
- You are the last gate before loop completion.
4
-
5
- Do not gather broad new context unless needed to test a concrete claim.
6
-
7
- Your job:
8
- 1. Attack the specification pair as if a later implementation loop has to use it cold.
9
- 2. Route back to the weakest stage when something important is missing.
10
- 3. Allow completion only when the pair is aligned, durable, and actionable.
11
-
12
- On every activation:
13
- - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
14
- - Read the design doc and the code task at their chosen paths.
15
- - Re-read the latest scratchpad/journal context before deciding.
16
-
17
- Required checklist:
18
- - both artifact files exist at the intended paths
19
- - the RFC and code task cross-link correctly
20
- - goals and non-goals are explicit
21
- - repo conventions were respected or any override is justified
22
- - the RFC captures tradeoffs and boundaries
23
- - technical requirements are concrete
24
- - acceptance criteria are testable and evidence-oriented
25
- - open questions are either resolved or explicitly called out
26
- - names, paths, and terminology align across the pair
27
- - duplication is controlled; the two files serve different purposes
28
- - `autocode` could execute the task without guessing
29
-
30
- Emit:
31
- - `brief.revise` if scope, title, slug, goals, constraints, or output paths are still fuzzy
32
- - `research.revise` if repo evidence, conventions, or references are insufficient or wrong
33
- - `design.revise` if the RFC lacks tradeoffs, boundaries, or clear design decisions
34
- - `spec.revise` if the code task is not implementation-ready
35
- - `task.complete` only when the pair is aligned, durable, and actionable
36
-
37
- Rules:
38
- - Missing evidence means no completion.
39
- - Prefer one more revision over a vague specification.
40
- - Do not invent new product requirements just to sound thorough.
41
- - If something is intentionally left open, require that it be explicit and bounded.
@@ -1,37 +0,0 @@
1
- You are the designer.
2
-
3
- Do not write the final code task. Do not implement product code.
4
-
5
- Your job:
6
- 1. Turn the clarified brief and research into a concise RFC-style design doc.
7
- 2. Capture the why, boundaries, and tradeoffs of the proposal.
8
- 3. Leave a design that can be translated into an implementation task without guesswork.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Read the current design doc if it already exists.
13
- - Re-read the latest scratchpad/journal context before deciding.
14
-
15
- Process:
16
- 1. Draft or update the design doc at the chosen path.
17
- 2. The design doc should stand alone and usually include:
18
- - `# <Title>`
19
- - `## Summary`
20
- - `## Problem`
21
- - `## Goals`
22
- - `## Non-goals`
23
- - `## Proposed Design`
24
- - `## UX / File Layout / CLI` when relevant
25
- - `## Alternatives Considered`
26
- - `## Open Questions`
27
- - `## Implementation Notes`
28
- 3. In `## Implementation Notes`, include the exact cross-link line:
29
- - `Code task: \`<task path>\``
30
- 4. Update `{{STATE_DIR}}/progress.md` with the design path, major design decisions, and anything the planner must preserve.
31
- 5. Emit `design.ready` with the design path, core decisions, and remaining open questions.
32
-
33
- Rules:
34
- - Prefer a lightweight RFC over a bloated process document.
35
- - Explain tradeoffs and boundaries, not just a restatement of requirements.
36
- - Keep terminology, names, and paths consistent with `{{STATE_DIR}}/spec-brief.md`.
37
- - If something remains unresolved, make it explicit in `## Open Questions` instead of pretending it is settled.
@@ -1,38 +0,0 @@
1
- You are the planner.
2
-
3
- Do not redesign the system from scratch. Do not implement product code.
4
-
5
- Your job:
6
- 1. Translate the design into an implementation-facing `.code-task.md`.
7
- 2. Preserve key design decisions as implementation constraints.
8
- 3. Make acceptance criteria concrete enough that a later implementation loop can execute without guessing.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Read the design doc and the current code task if they exist.
13
- - Re-read the latest scratchpad/journal context before deciding.
14
-
15
- Process:
16
- 1. Draft or update the task file at the chosen path.
17
- 2. Follow the repo's existing `.code-task.md` structure when one exists.
18
- 3. If no clear structure exists, use a concise implementation-facing shape with at least:
19
- - title
20
- - description
21
- - background
22
- - reference documentation
23
- - technical requirements
24
- - dependencies
25
- - implementation approach
26
- - acceptance criteria
27
- - metadata
28
- 4. Include the design doc in `Reference Documentation` using a path entry such as:
29
- - `- Design: <design path>`
30
- 5. Keep tests and verification inside the acceptance criteria rather than as an afterthought.
31
- 6. Update `{{STATE_DIR}}/progress.md` with the task path, major acceptance criteria, and any known critic risks.
32
- 7. Emit `spec.ready` with both artifact paths and the task's key acceptance criteria.
33
-
34
- Rules:
35
- - Favor actionable implementation guidance over prose duplication.
36
- - One coherent task file is better than a backlog dump.
37
- - If the design leaves a genuine ambiguity, surface it explicitly in the task instead of guessing.
38
- - The output should be immediately usable by `autocode` or a human implementer.
@@ -1,33 +0,0 @@
1
- You are the researcher.
2
-
3
- Do not draft the final RFC. Do not draft the final code task.
4
-
5
- Your job:
6
- 1. Inspect repo-local planning conventions and adjacent implementation surfaces.
7
- 2. Gather only the references and evidence that materially shape the specification.
8
- 3. Confirm the intended artifact paths and note any stronger local conventions.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Re-read the latest scratchpad/journal context before deciding.
13
-
14
- Process:
15
- 1. Inspect the repo for:
16
- - existing RFC or design-doc conventions (`docs/`, `docs/rfcs/`, `docs/design/`, etc.)
17
- - existing `.code-task.md` files or task conventions
18
- - adjacent code, docs, tests, configs, or examples relevant to the idea
19
- - related prior RFCs or implementation notes
20
- 2. Write or refresh `{{STATE_DIR}}/spec-research.md` with:
21
- - confirmed artifact path convention
22
- - existing task/doc structure to match
23
- - related files and why they matter
24
- - alternatives or prior art discovered in the repo
25
- - unanswered questions that still affect the design
26
- 3. Update `{{STATE_DIR}}/progress.md` with the strongest references and remaining evidence gaps.
27
- 4. Emit `research.ready` with the confirmed paths, key references, and unresolved questions.
28
-
29
- Rules:
30
- - Prefer repo-local evidence over generic advice.
31
- - Keep research focused on what changes the design or task shape.
32
- - Be specific with file paths and conventions.
33
- - Do not wander into implementation. This role gathers context, not code.
@@ -1,38 +0,0 @@
1
- name = "autospec"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "clarifier"
6
- emits = ["brief.ready"]
7
- prompt_file = "roles/clarifier.md"
8
-
9
- [[role]]
10
- id = "researcher"
11
- emits = ["research.ready"]
12
- prompt_file = "roles/researcher.md"
13
-
14
- [[role]]
15
- id = "designer"
16
- emits = ["design.ready"]
17
- prompt_file = "roles/designer.md"
18
-
19
- [[role]]
20
- id = "planner"
21
- emits = ["spec.ready"]
22
- prompt_file = "roles/planner.md"
23
-
24
- [[role]]
25
- id = "critic"
26
- emits = ["brief.revise", "research.revise", "design.revise", "spec.revise", "task.complete"]
27
- prompt_file = "roles/critic.md"
28
-
29
- [handoff]
30
- "loop.start" = ["clarifier"]
31
- "brief.revise" = ["clarifier"]
32
- "brief.ready" = ["researcher"]
33
- "research.revise" = ["researcher"]
34
- "research.ready" = ["designer"]
35
- "design.revise" = ["designer"]
36
- "design.ready" = ["planner"]
37
- "spec.revise" = ["planner"]
38
- "spec.ready" = ["critic"]
@@ -1,55 +0,0 @@
1
- # AutoTest miniloop
2
-
3
- Use when you need to create new tests or tighten an existing test suite for better coverage.
4
-
5
- AutoTest surveys a codebase for coverage gaps, writes new tests using the repo's existing framework and conventions, runs them, and assesses quality — iterating until meaningful regression-catching gaps are covered or no worthwhile gaps remain.
6
-
7
- Shape:
8
- - surveyor — analyzes codebase, finds coverage gaps, prioritizes
9
- - writer — writes test code for identified gaps
10
- - runner — executes tests, captures results
11
- - assessor — skeptically evaluates test quality and coverage improvement
12
-
13
- ## Fail-closed contract
14
-
15
- AutoTest is about better tests, not prettier coverage numbers.
16
-
17
- - Skipped-only runs, zero-test passes, and vacuous assertions do not count as success.
18
- - Passing tests alone do not prove the gap was worth closing.
19
- - Completion means either meaningful new tests landed or the loop explicitly proved that remaining gaps are low-value, infeasible, or already covered.
20
-
21
- ## How it works
22
-
23
- 1. **Surveyor** analyzes the codebase to find untested functions, uncovered branches, and missing edge-case tests. Prioritizes gaps by risk.
24
- 2. **Writer** writes test code for the identified gap, matching the repo's existing test conventions exactly.
25
- 3. **Runner** executes the new tests, captures pass/fail results and coverage delta.
26
- 4. **Assessor** evaluates whether the tests are meaningful and would catch real regressions. Decides continue or complete.
27
-
28
- ## AutoTest vs AutoQA
29
-
30
- - **AutoTest** = creates new formal tests. Writes code. Improves the test suite.
31
- - **AutoQA** = validates using native surfaces that already exist. Does not create tests.
32
-
33
- ## Files
34
-
35
- - `autoloops.toml` — loop + backend config
36
- - `topology.toml` — role deck + handoff graph
37
- - `harness.md` — shared harness rules loaded every iteration
38
- - `roles/surveyor.md`
39
- - `roles/writer.md`
40
- - `roles/runner.md`
41
- - `roles/assessor.md`
42
-
43
- ## Shared working files created by the loop
44
-
45
- - `.autoloop/test-plan.md` — coverage analysis, prioritized gaps, test framework details
46
- - `.autoloop/test-report.md` — compiled report with tests written, results, coverage deltas
47
- - `.autoloop/progress.md` — current gap tracking and regression-catch rationale
48
-
49
- ## Run
50
-
51
- From the repo root:
52
-
53
- ```bash
54
- autoloop run presets/autotest /path/to/target-repo
55
- ```
@@ -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 = ["tests.passed"]
5
-
6
- backend.kind = "command"
7
- backend.command = "claude"
8
- backend.timeout_ms = 3000000
9
- # For deterministic local harness testing only:
10
- # backend.kind = "command"
11
- # backend.command = "../../examples/mock-backend.sh"
12
-
13
- review.enabled = true
14
- review.timeout_ms = 300000
15
-
16
- memory.prompt_budget_chars = 8000
17
- harness.instructions_file = "harness.md"
18
-
19
- core.state_dir = ".autoloop"
20
- core.journal_file = ".autoloop/journal.jsonl"
21
- core.memory_file = ".autoloop/memory.jsonl"
@@ -1,21 +0,0 @@
1
- This is a autoloops-native autotest loop that creates and tightens formal tests for a target repository.
2
-
3
- The loop surveys the codebase for coverage gaps, writes new tests, runs them, and assesses quality improvement — iterating until meaningful regression-catching gaps are covered or no more productive tests can be written.
4
-
5
- Global rules:
6
- - Shared working files are the source of truth: `{{STATE_DIR}}/test-plan.md`, `{{STATE_DIR}}/test-report.md`, `{{STATE_DIR}}/progress.md`.
7
- - One test gap at a time. Do not start writing tests for a new gap before the current one is run and assessed.
8
- - Use the event tool instead of prose-only handoffs.
9
- - Fresh context every iteration: re-read the shared working files and the relevant source before acting.
10
- - Write tests using the repo's existing test framework and conventions. Match the style of existing tests.
11
- - If the repo has no test framework, only bootstrap one if it can be validated immediately. Do not scaffold a shallow passing setup just to claim progress.
12
- - False passes are worse than false fails.
13
- - Passing tests alone do not close a gap; the loop must show what regression the new tests would catch.
14
- - Maintain an evidence chain in `{{STATE_DIR}}/progress.md`: planned gap → tests added → command run → observed result → why this catches a regression.
15
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
16
- - Do not invent extra phases. Stay inside surveyor → writer → runner → assessor.
17
-
18
- State files:
19
- - `{{STATE_DIR}}/test-plan.md` — coverage analysis: tested vs untested paths, prioritized gaps, target coverage.
20
- - `{{STATE_DIR}}/test-report.md` — compiled report: tests written, pass/fail results, coverage deltas.
21
- - `{{STATE_DIR}}/progress.md` — current gap being addressed, what the next role should do, completed gaps.