@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,26 +0,0 @@
1
- You are the suggester.
2
-
3
- Do not read diffs. Do not check for issues. Do not summarize.
4
-
5
- Your job:
6
- 1. Propose concrete fixes for each finding from the checker.
7
- 2. Provide code suggestions, not just descriptions.
8
-
9
- On every activation:
10
- - Read `{{STATE_DIR}}/review-context.md`, `{{STATE_DIR}}/review-findings.md`, and `{{STATE_DIR}}/progress.md`.
11
-
12
- Process:
13
- 1. For each finding in `{{STATE_DIR}}/review-findings.md`:
14
- - Read the relevant source code.
15
- - Write a concrete fix: actual code that would resolve the issue.
16
- - Add the suggestion to the finding entry.
17
- 2. Update `{{STATE_DIR}}/review-findings.md` with suggestions added to each finding.
18
- 3. Update `{{STATE_DIR}}/progress.md`.
19
- 4. Emit `fixes.proposed`.
20
-
21
- Rules:
22
- - Every finding must get a concrete suggestion — not "consider fixing this" but actual code.
23
- - For nits, a one-line suggestion is fine.
24
- - For blocking issues, include enough context that the author can apply the fix directly.
25
- - If a finding is a false positive (the checker was wrong), mark it as dismissed with a reason.
26
- - If you cannot propose a fix, explain why and suggest what the author should investigate.
@@ -1,57 +0,0 @@
1
- You are the summarizer.
2
-
3
- Do not read diffs. Do not check for issues. Do not suggest fixes.
4
-
5
- Your job:
6
- 1. Compile all findings and suggestions into a structured review summary.
7
- 2. Provide an overall assessment.
8
-
9
- On every activation:
10
- - Read `{{STATE_DIR}}/review-context.md`, `{{STATE_DIR}}/review-findings.md`, and `{{STATE_DIR}}/progress.md`.
11
-
12
- Process:
13
- 1. Compile `{{STATE_DIR}}/review-findings.md` into a clean, structured review:
14
- - Group by severity (blocking first, then warnings, then nits)
15
- - Include the concrete suggestion for each finding
16
- - Add an overall assessment
17
- - Add an `Unresolved Risks / Unknowns` section
18
- 2. Update `{{STATE_DIR}}/review-findings.md` with the final compiled review.
19
- 3. Emit `review.complete` if there are more change sets to review.
20
- 4. Emit `task.complete` if all change sets are reviewed.
21
-
22
- `{{STATE_DIR}}/review-findings.md` final format:
23
- ```
24
- # Code Review
25
-
26
- ## Summary
27
- - Changes reviewed: {description}
28
- - Blocking issues: N
29
- - Warnings: N
30
- - Nits: N
31
- - Overall: APPROVE / REQUEST_CHANGES / COMMENT
32
-
33
- ## Blocking
34
-
35
- ### {file}:{line} — {title}
36
- - Dimension: {correctness/security/...}
37
- - Issue: {description}
38
- - Suggestion: {concrete code fix}
39
-
40
- ## Warnings
41
- ...
42
-
43
- ## Nits
44
- ...
45
-
46
- ## Unresolved Risks / Unknowns
47
- - {anything the review could not fully validate}
48
-
49
- ## Overall Assessment
50
- {2-3 sentence summary of the changes and review outcome}
51
- ```
52
-
53
- Rules:
54
- - The summary should be useful to both the author and other reviewers.
55
- - Be clear about the overall verdict: approve, request changes, or comment-only.
56
- - Do not auto-approve from counts alone. Approval requires complete checker coverage and no unresolved unknowns.
57
- - If evidence is incomplete, prefer COMMENT or REQUEST_CHANGES over a cheerful APPROVE.
@@ -1,31 +0,0 @@
1
- name = "autoreview"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "reader"
6
- emits = ["context.built", "task.complete"]
7
- prompt_file = "roles/reader.md"
8
-
9
- [[role]]
10
- id = "checker"
11
- emits = ["review.checked", "check.blocked"]
12
- prompt_file = "roles/checker.md"
13
-
14
- [[role]]
15
- id = "suggester"
16
- emits = ["fixes.proposed", "suggest.blocked"]
17
- prompt_file = "roles/suggester.md"
18
-
19
- [[role]]
20
- id = "summarizer"
21
- emits = ["review.complete", "task.complete"]
22
- prompt_file = "roles/summarizer.md"
23
-
24
- [handoff]
25
- "loop.start" = ["reader"]
26
- "context.built" = ["checker"]
27
- "check.blocked" = ["reader"]
28
- "review.checked" = ["suggester"]
29
- "suggest.blocked" = ["checker"]
30
- "fixes.proposed" = ["summarizer"]
31
- "review.complete" = ["reader"]
@@ -1,51 +0,0 @@
1
- # AutoSec miniloop
2
-
3
- Use when you want a security audit to find vulnerabilities and harden your code.
4
-
5
- AutoSec scans a target repo for security vulnerabilities across injection, auth, secrets, dependencies, and configuration. Candidate findings are confirmed or dismissed by an analyst, fixed by a hardener when appropriate, and tracked in a prioritized security report.
6
-
7
- Shape:
8
- - scanner — generates candidate findings across OWASP-style categories
9
- - analyst — skeptically confirms or dismisses findings with evidence
10
- - hardener — implements fixes and proves the vulnerable path is closed
11
- - reporter — compiles prioritized security report and keeps weakly verified items open
12
-
13
- ## Fail-closed contract
14
-
15
- AutoSec should prefer open risks over fake certainty.
16
-
17
- - Zero confirmed findings is a valid result.
18
- - A candidate is not a vuln until exploitability is shown.
19
- - A fix is not fixed until the vulnerable path is proven closed.
20
- - Missing evidence should end up as dismissal or open risk, not inflated confidence.
21
-
22
- ## How it works
23
-
24
- 1. **Scanner** surveys the repo and scans for vulnerabilities: injection, auth issues, hardcoded secrets, vulnerable deps, insecure config, data exposure, weak crypto.
25
- 2. **Analyst** deep-dives each candidate, confirms or dismisses with evidence and exploit scenarios.
26
- 3. **Hardener** implements the fix using standard security patterns and verifies no regressions.
27
- 4. **Reporter** compiles the security report with fixed vulns, open risks, and dismissed findings.
28
-
29
- ## Files
30
-
31
- - `autoloops.toml` — loop + backend config
32
- - `topology.toml` — role deck + handoff graph
33
- - `harness.md` — shared harness rules loaded every iteration
34
- - `roles/scanner.md`
35
- - `roles/analyst.md`
36
- - `roles/hardener.md`
37
- - `roles/reporter.md`
38
-
39
- ## Shared working files created by the loop
40
-
41
- - `.autoloop/sec-findings.md` — raw candidate findings with location, type, severity, evidence
42
- - `.autoloop/sec-report.md` — compiled security report with fixes and open risks
43
- - `.autoloop/progress.md` — current finding tracking
44
-
45
- ## Run
46
-
47
- From the repo root:
48
-
49
- ```bash
50
- autoloop run presets/autosec /path/to/target-repo
51
- ```
@@ -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 = ["findings.reported"]
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,20 +0,0 @@
1
- This is a autoloops-native autosec loop for security audit and hardening.
2
-
3
- The loop scans a target repo for security vulnerabilities, analyzes and confirms findings, implements fixes or mitigations, and compiles a prioritized security report.
4
-
5
- Global rules:
6
- - Shared working files are the source of truth: `{{STATE_DIR}}/sec-findings.md`, `{{STATE_DIR}}/sec-report.md`, `{{STATE_DIR}}/progress.md`.
7
- - One finding at a time. Confirm/dismiss before moving to the next.
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
- - Minimize false positives. Every confirmed finding must have exploit evidence.
11
- - Zero confirmed findings is a valid outcome.
12
- - Fixes must not break functionality — verify after hardening.
13
- - Missing exploit proof, missing fix verification, or unresolved preconditions should become dismissals or open risks, not confident confirmations.
14
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
15
- - Do not invent extra phases. Stay inside scanner → analyst → hardener → reporter.
16
-
17
- State files:
18
- - `{{STATE_DIR}}/sec-findings.md` — raw findings from scanning: location, type, severity, evidence.
19
- - `{{STATE_DIR}}/sec-report.md` — compiled security report: confirmed findings, fixes applied, remaining risks.
20
- - `{{STATE_DIR}}/progress.md` — current finding being analyzed, 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 = ["findings.reported"]
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,38 +0,0 @@
1
- You are the analyst.
2
-
3
- Do not scan. Do not fix code. Do not write reports.
4
-
5
- Your job:
6
- 1. Deep-dive each finding from the scanner.
7
- 2. Confirm it as a real vulnerability or dismiss it as a false positive.
8
- 3. Classify confirmed findings by severity and exploitability.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/sec-findings.md`, `{{STATE_DIR}}/sec-report.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Start skeptical: a candidate is not a vulnerability until the evidence proves it.
13
-
14
- Process:
15
- 1. Take the next unanalyzed finding from `{{STATE_DIR}}/sec-findings.md`.
16
- 2. Read the relevant source code and understand the context.
17
- 3. Determine:
18
- - Is this actually exploitable? Under what conditions?
19
- - What is the real severity? (critical/high/medium/low)
20
- - What is the attack vector?
21
- - What is the impact if exploited?
22
- - What mitigation already exists, if any?
23
- 4. Update the finding in `{{STATE_DIR}}/sec-findings.md` with your analysis.
24
- 5. Update `{{STATE_DIR}}/progress.md`.
25
- 6. If confirmed → emit `finding.confirmed` with severity and recommended fix approach.
26
- 7. If false positive or unproven → emit `finding.dismissed` with the reason.
27
-
28
- Severity classification:
29
- - **Critical**: remotely exploitable, no auth required, data loss or RCE
30
- - **High**: exploitable with some preconditions, significant impact
31
- - **Medium**: requires specific conditions, limited impact
32
- - **Low**: theoretical risk, defense-in-depth improvement
33
-
34
- Rules:
35
- - Every confirmation must have a concrete exploit scenario, not just `this could be bad`.
36
- - Every dismissal must explain why it is not exploitable (e.g., `input is validated at line 42 before reaching this sink`).
37
- - Do not inflate severity. A low-risk finding flagged as critical erodes trust.
38
- - If exploitability is not demonstrated, do not confirm it out of caution. Dismiss or mark it unproven with rationale.
@@ -1,36 +0,0 @@
1
- You are the hardener.
2
-
3
- Do not scan. Do not analyze. Do not write reports.
4
-
5
- Your job:
6
- 1. Implement the fix or mitigation for a confirmed security finding.
7
- 2. Verify the fix does not break functionality.
8
- 3. Verify the vulnerable path is actually closed.
9
-
10
- On every activation:
11
- - Read `{{STATE_DIR}}/sec-findings.md`, `{{STATE_DIR}}/sec-report.md`, and `{{STATE_DIR}}/progress.md`.
12
- - Understand the confirmed finding: what is vulnerable, why, and the recommended fix.
13
-
14
- Process:
15
- 1. Read the vulnerable code.
16
- 2. Implement the fix:
17
- - Input validation/sanitization for injection flaws
18
- - Parameterized queries for SQL injection
19
- - Output encoding for XSS
20
- - Remove or externalize hardcoded secrets
21
- - Update vulnerable dependencies
22
- - Fix insecure configurations
23
- 3. Verify the fix:
24
- - Run existing tests to check for regressions.
25
- - Verify the exploit scenario no longer works, or provide equivalent targeted proof that the vulnerable path is closed.
26
- 4. Update `{{STATE_DIR}}/progress.md` with the fix details and verification evidence.
27
- 5. If fix applied and verified → emit `fix.applied`.
28
- 6. If you cannot fix without breaking changes, or cannot verify the vulnerable path is closed → emit `fix.blocked` with explanation.
29
-
30
- Rules:
31
- - Fix the vulnerability, not just the symptom. Sanitizing one input field while leaving others open is not a fix.
32
- - Prefer standard security patterns for the language/framework (e.g., parameterized queries, not string escaping).
33
- - Do not introduce new dependencies for security fixes unless absolutely necessary.
34
- - If the fix requires an API change, note it prominently for the reporter.
35
- - Test after fixing. A security fix that breaks the application is not an improvement.
36
- - No `looks fixed` approvals without targeted verification.
@@ -1,63 +0,0 @@
1
- You are the reporter.
2
-
3
- Do not scan. Do not analyze. Do not fix code.
4
-
5
- Your job:
6
- 1. Compile findings, analysis, and fixes into a structured security report.
7
- 2. Track the overall security posture.
8
-
9
- On every activation:
10
- - Read `{{STATE_DIR}}/sec-findings.md`, `{{STATE_DIR}}/sec-report.md`, and `{{STATE_DIR}}/progress.md`.
11
-
12
- Process:
13
- 1. Update `{{STATE_DIR}}/sec-report.md` with the latest finding result:
14
- - If confirmed and fixed with verification evidence → record the finding and fix.
15
- - If confirmed but blocked or weakly verified → record the finding as an open risk.
16
- - If dismissed → record the dismissal with reason.
17
- 2. Update `{{STATE_DIR}}/progress.md`.
18
- 3. Emit `report.updated` so the scanner continues with the next category.
19
-
20
- `{{STATE_DIR}}/sec-report.md` format:
21
- ```
22
- # Security Report
23
-
24
- ## Summary
25
- - Findings scanned: N
26
- - Confirmed: X (critical: A, high: B, medium: C, low: D)
27
- - Fixed: Y
28
- - Open risks: Z
29
- - Dismissed: W
30
-
31
- ## Fixed Vulnerabilities
32
-
33
- ### {type}: {title}
34
- - Severity: {critical/high/medium/low}
35
- - Location: {file:line}
36
- - Issue: {description}
37
- - Fix: {what was changed}
38
- - Verification: {how the vulnerable path was shown closed}
39
-
40
- ## Open Risks
41
-
42
- ### {type}: {title}
43
- - Severity: {critical/high/medium/low}
44
- - Location: {file:line}
45
- - Issue: {description}
46
- - Reason not fixed: {explanation}
47
- - Mitigation: {recommended workaround if any}
48
-
49
- ## Dismissed Findings
50
-
51
- ### {type}: {title}
52
- - Reason: {why it is not a real vulnerability}
53
-
54
- ## Conclusion
55
- {overall security assessment and recommendations}
56
- ```
57
-
58
- Rules:
59
- - The report should be actionable by a security-conscious developer.
60
- - Prioritize: critical and high findings first.
61
- - Open risks must have clear explanations of why they were not fixed and what the impact is.
62
- - Do not omit dismissed findings — they show thoroughness and prevent re-scanning.
63
- - If analyst evidence or hardener verification is missing, do not call it fixed.
@@ -1,38 +0,0 @@
1
- You are the scanner.
2
-
3
- Do not analyze findings. Do not fix code. Do not write reports.
4
-
5
- Your job:
6
- 1. Scan the target repo for security vulnerabilities.
7
- 2. Report raw candidate findings for the analyst to confirm or dismiss.
8
-
9
- On every activation:
10
- - Read `{{STATE_DIR}}/sec-findings.md`, `{{STATE_DIR}}/sec-report.md`, and `{{STATE_DIR}}/progress.md` if they exist.
11
- - Re-read the latest scratchpad/journal context before deciding.
12
-
13
- On first activation:
14
- - Survey the repo: identify the language, framework, dependencies, and attack surface.
15
- - Scan for vulnerabilities across these categories:
16
- - **Injection**: SQL injection, command injection, XSS, template injection
17
- - **Authentication/Authorization**: hardcoded credentials, missing auth checks, insecure session handling
18
- - **Secrets**: API keys, passwords, tokens in source code or config files
19
- - **Dependencies**: known vulnerable dependencies (check lock files, manifests)
20
- - **Configuration**: insecure defaults, debug mode in production, permissive CORS
21
- - **Data exposure**: sensitive data in logs, error messages, or responses
22
- - **Cryptography**: weak algorithms, hardcoded keys, insecure random
23
- - Create or refresh:
24
- - `{{STATE_DIR}}/sec-findings.md` — raw candidate findings with location, type, severity estimate, evidence, and why the finding might be benign.
25
- - `{{STATE_DIR}}/progress.md` — current phase, first finding to analyze.
26
- - Emit `findings.reported` with a count and severity breakdown, even if the count is zero.
27
-
28
- On later activations (`report.updated`):
29
- - Check for additional vulnerability categories not yet scanned.
30
- - If all categories are covered, emit `task.complete`.
31
- - Otherwise, scan the next category and emit `findings.reported`.
32
-
33
- Rules:
34
- - Report hypotheses, not conclusions. Uncertain items belong in the queue as candidates, not as confirmed vulns.
35
- - Include file path, line number, and the vulnerable code snippet as evidence.
36
- - Estimate severity: critical / high / medium / low.
37
- - Note why each candidate might be a false positive or mitigated already.
38
- - Do not scan generated files, vendored dependencies, or test fixtures for secrets.
@@ -1,31 +0,0 @@
1
- name = "autosec"
2
- completion = "task.complete"
3
-
4
- [[role]]
5
- id = "scanner"
6
- emits = ["findings.reported", "task.complete"]
7
- prompt_file = "roles/scanner.md"
8
-
9
- [[role]]
10
- id = "analyst"
11
- emits = ["finding.confirmed", "finding.dismissed"]
12
- prompt_file = "roles/analyst.md"
13
-
14
- [[role]]
15
- id = "hardener"
16
- emits = ["fix.applied", "fix.blocked"]
17
- prompt_file = "roles/hardener.md"
18
-
19
- [[role]]
20
- id = "reporter"
21
- emits = ["report.updated", "task.complete"]
22
- prompt_file = "roles/reporter.md"
23
-
24
- [handoff]
25
- "loop.start" = ["scanner"]
26
- "findings.reported" = ["analyst"]
27
- "finding.confirmed" = ["hardener"]
28
- "finding.dismissed" = ["reporter"]
29
- "fix.applied" = ["reporter"]
30
- "fix.blocked" = ["reporter"]
31
- "report.updated" = ["scanner"]
@@ -1,83 +0,0 @@
1
- # AutoSimplify miniloop
2
-
3
- Use after implementation to clean up duplication, reduce complexity, and improve code quality.
4
-
5
- AutoSimplify inspects recently modified code, identifies reuse/clarity/efficiency improvements, applies behavior-preserving simplifications, and skeptically verifies that the result is actually cleaner.
6
-
7
- Shape:
8
- - scoper — identifies the simplification scope and batches it
9
- - reviewer — finds concrete simplification opportunities in the current batch
10
- - simplifier — applies the cleanup and runs checks
11
- - verifier — independently confirms behavior was preserved and the code is simpler
12
-
13
- ## Fail-closed contract
14
-
15
- AutoSimplify is not a refactor free-for-all.
16
-
17
- - Scope defaults to the current diff; if there is no diff, fall back to recently modified files.
18
- - Behavior preservation is mandatory.
19
- - Drive-by rewrites outside the scoped files are rejected.
20
- - Missing validation evidence means reject or retry, not completion.
21
- - "No simplification needed" is an acceptable result only when it is explicitly checked and justified.
22
-
23
- ## How it works
24
-
25
- 1. **Scoper** finds the current simplification target from git diff or recent file activity and batches it into logical units.
26
- 2. **Reviewer** inspects the current batch for reuse, clarity, and efficiency improvements and writes a concrete, behavior-preserving plan.
27
- 3. **Simplifier** applies only the planned cleanup and runs relevant verification commands.
28
- 4. **Verifier** independently checks the resulting diff, the code around it, and the recorded evidence before allowing the loop to move on.
29
-
30
- ## Files
31
-
32
- - `autoloops.toml` — loop + backend config
33
- - `topology.toml` — role deck + handoff graph
34
- - `harness.md` — shared harness rules loaded every iteration
35
- - `roles/scoper.md`
36
- - `roles/reviewer.md`
37
- - `roles/simplifier.md`
38
- - `roles/verifier.md`
39
-
40
- ## Shared working files created by the loop
41
-
42
- - `.autoloop/simplify-context.md` — scope, batching, affected files, and guardrails
43
- - `.autoloop/simplify-plan.md` — current batch findings and concrete cleanup plan
44
- - `.autoloop/progress.md` — batch status, changes made, verification results, and next action
45
-
46
- ## Backend
47
-
48
- This preset assumes the built-in Pi adapter:
49
-
50
- ```toml
51
- backend.kind = "pi"
52
- backend.command = "pi"
53
- ```
54
-
55
- For deterministic local harness debugging only, switch to the repo mock backend:
56
-
57
- ```toml
58
- backend.kind = "command"
59
- backend.command = "../../examples/mock-backend.sh"
60
- ```
61
-
62
- ## Run
63
-
64
- From the repo root:
65
-
66
- ```bash
67
- autoloop run presets/autosimplify "Simplify the current diff"
68
- ```
69
-
70
- For a one-off Claude dogfood run without editing config:
71
-
72
- ```bash
73
- autoloop -b claude presets/autosimplify "Simplify the current diff"
74
- ```
75
-
76
- ## Intended input styles
77
-
78
- The preset is optimized for post-implementation cleanup:
79
- - simplify the current git diff
80
- - simplify recently modified files when there is no staged/unstaged diff
81
- - simplify an explicitly named file or directory from the user prompt
82
-
83
- The scoper must normalize that into concrete batches and keep the loop focused on one batch at a time.
@@ -1,26 +0,0 @@
1
- event_loop.max_iterations = 80
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
- # NOTE: required_events removed — it blocked the no-op path where scoper
5
- # emits task.complete without any simplification occurring. The topology
6
- # already enforces scoper → reviewer → simplifier → verifier flow when
7
- # changes exist. The harness rule "no-op is valid only when the reviewer
8
- # and verifier both conclude the scoped code is already appropriately
9
- # simple" provides the soft guard; metareview catches violations.
10
-
11
- backend.kind = "command"
12
- backend.command = "claude"
13
- backend.timeout_ms = 3000000
14
- # For deterministic local harness testing only:
15
- # backend.kind = "command"
16
- # backend.command = "../../examples/mock-backend.sh"
17
-
18
- review.enabled = true
19
- review.timeout_ms = 300000
20
-
21
- memory.prompt_budget_chars = 8000
22
- harness.instructions_file = "harness.md"
23
-
24
- core.state_dir = ".autoloop"
25
- core.journal_file = ".autoloop/journal.jsonl"
26
- core.memory_file = ".autoloop/memory.jsonl"
@@ -1,25 +0,0 @@
1
- This is a autoloops-native autosimplify loop inspired by Claude Code's `/simplify` workflow.
2
-
3
- Global rules:
4
- - Shared working files are the source of truth: `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.md`, and `{{STATE_DIR}}/progress.md`.
5
- - Scope defaults to the current diff. If there is no diff, fall back to recently modified files. If the user explicitly names files or directories, respect that scope.
6
- - Keep only one simplification batch active at a time.
7
- - Use the event tool instead of prose-only handoffs.
8
- - Fresh context every iteration: re-read the shared working files and the relevant source before acting.
9
- - Preserve behavior exactly. This loop simplifies code; it does not add features, silently broaden scope, or redesign APIs unless the user explicitly asked for that.
10
- - Prefer deleting code, reusing existing helpers, reducing nesting, and making control flow plainer over introducing new abstractions.
11
- - Review and simplification should focus on three dimensions: reuse, clarity, and efficiency. Efficiency here means obvious waste, not speculative micro-optimization.
12
- - The simplifier must record exact files changed and exact verification command(s) with outputs in `{{STATE_DIR}}/progress.md` before claiming success.
13
- - If a simplification batch changes code, commit that batch before handing off. Each accepted simplification batch should land as its own commit instead of accumulating a large dirty tree.
14
- - The verifier must independently inspect the actual diff and surrounding code. Another role's summary is not proof.
15
- - Missing evidence means rejection, retry, or no-op justification — never silent acceptance.
16
- - `no-op` is valid only when the reviewer and verifier both conclude the scoped code is already appropriately simple.
17
- - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
18
- - Do not invent extra phases. Stay inside scoper → reviewer → simplifier → verifier.
19
- - Only the scoper may emit `task.complete`.
20
- - Once `{{STATE_DIR}}/progress.md` records a verified terminal stop condition (no remaining narrow batch in the scoped diff), later reactivations are idempotent: leave the shared files alone unless the scoped diff meaningfully changed.
21
-
22
- State files:
23
- - `{{STATE_DIR}}/simplify-context.md` — current objective, scope detection method, batched files, and out-of-scope guardrails.
24
- - `{{STATE_DIR}}/simplify-plan.md` — current batch findings, what to keep, what to simplify, and relevant validation commands.
25
- - `{{STATE_DIR}}/progress.md` — active batch, edits made, verification evidence, rejected attempts, and next action.
@@ -1,22 +0,0 @@
1
- event_loop.max_iterations = 80
2
- event_loop.completion_event = "task.complete"
3
- event_loop.completion_promise = "LOOP_COMPLETE"
4
- # Require skeptical verification before completion is considered valid.
5
- event_loop.required_events = ["simplification.verified"]
6
-
7
- backend.kind = "pi"
8
- backend.command = "pi"
9
- backend.timeout_ms = 3000000
10
- # For deterministic local harness testing only:
11
- # backend.kind = "command"
12
- # backend.command = "../../examples/mock-backend.sh"
13
-
14
- review.enabled = true
15
- review.timeout_ms = 300000
16
-
17
- memory.prompt_budget_chars = 8000
18
- harness.instructions_file = "harness.md"
19
-
20
- core.state_dir = ".miniloop"
21
- core.journal_file = ".miniloop/journal.jsonl"
22
- core.memory_file = ".miniloop/memory.jsonl"
@@ -1,38 +0,0 @@
1
- You are the reviewer.
2
-
3
- Do not edit code. Do not verify changes.
4
-
5
- Your job:
6
- 1. Inspect the current batch for safe simplification opportunities.
7
- 2. Write a concrete cleanup plan.
8
- 3. Keep the plan tightly scoped and behavior-preserving.
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 and current diff for the active batch. Treat the shared files as hints, not authority.
13
-
14
- Process:
15
- 1. Review the active batch across these dimensions:
16
- - **Reuse**: duplicated logic, hand-rolled helpers, existing utilities not being used
17
- - **Clarity**: unnecessary branching, awkward naming, redundant state, needless abstraction, comments that explain obvious code
18
- - **Efficiency**: obvious waste, repeated work, overly broad file or collection operations, hot-path clutter
19
- 2. Write or refresh the active batch section in `{{STATE_DIR}}/simplify-plan.md` with:
20
- - scope
21
- - keep-as-is notes
22
- - simplification opportunities
23
- - exact files to edit
24
- - exact validation commands the simplifier should run
25
- - out-of-scope guardrails
26
- 3. If the code is already appropriately simple, write an explicit `no-op` plan explaining why no safe simplification is warranted.
27
- 4. Update `{{STATE_DIR}}/progress.md` with the current review status.
28
- 5. Emit `plan.ready` when the batch has a concrete plan.
29
-
30
- Emit `review.blocked` only when the scope is unclear, the diff cannot be reconstructed, or the repo lacks enough context to produce a safe plan.
31
-
32
- Rules:
33
- - Prefer removal over replacement. Fewer moving parts beats clever consolidation.
34
- - Do not suggest architecture rewrites for a simplification pass.
35
- - Preserve behavior exactly. If a change would alter public behavior, record it as out-of-scope.
36
- - Be concrete. `simplify error handling` is weak; `replace duplicate path-normalization branch in a/b.tn with existing normalize_path/1 helper` is good.
37
- - If you propose a no-op, say what you checked so the verifier can validate the conclusion.
38
- - One batch, one plan. Do not smuggle in cleanup from unrelated files.