@mobrienv/autoloop 0.1.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/README.md +103 -42
  2. package/bin/autoloop +0 -0
  3. package/dist/agent-map.d.ts +10 -0
  4. package/dist/agent-map.js +58 -0
  5. package/dist/agent-map.js.map +1 -0
  6. package/dist/backend/acp-client.d.ts +38 -0
  7. package/dist/backend/acp-client.js +288 -0
  8. package/dist/backend/acp-client.js.map +1 -0
  9. package/dist/backend/index.d.ts +1 -1
  10. package/dist/backend/index.js +17 -5
  11. package/dist/backend/index.js.map +1 -1
  12. package/dist/backend/kiro-bridge.d.ts +17 -0
  13. package/dist/backend/kiro-bridge.js +80 -0
  14. package/dist/backend/kiro-bridge.js.map +1 -0
  15. package/dist/backend/kiro-worker.d.ts +1 -0
  16. package/dist/backend/kiro-worker.js +83 -0
  17. package/dist/backend/kiro-worker.js.map +1 -0
  18. package/dist/backend/run-command.js +2 -2
  19. package/dist/backend/run-command.js.map +1 -1
  20. package/dist/backend/run-kiro.d.ts +3 -0
  21. package/dist/backend/run-kiro.js +12 -0
  22. package/dist/backend/run-kiro.js.map +1 -0
  23. package/dist/backend/run-pi.js.map +1 -1
  24. package/dist/chains/budget.js +16 -4
  25. package/dist/chains/budget.js.map +1 -1
  26. package/dist/chains/load.d.ts +7 -1
  27. package/dist/chains/load.js +58 -9
  28. package/dist/chains/load.js.map +1 -1
  29. package/dist/chains/render.js +36 -8
  30. package/dist/chains/render.js.map +1 -1
  31. package/dist/chains/run.js +129 -44
  32. package/dist/chains/run.js.map +1 -1
  33. package/dist/chains/types.d.ts +1 -0
  34. package/dist/chains.d.ts +5 -4
  35. package/dist/chains.js +3 -3
  36. package/dist/chains.js.map +1 -1
  37. package/dist/commands/chain.js +6 -4
  38. package/dist/commands/chain.js.map +1 -1
  39. package/dist/commands/config.d.ts +1 -0
  40. package/dist/commands/config.js +74 -0
  41. package/dist/commands/config.js.map +1 -0
  42. package/dist/commands/dashboard.d.ts +1 -0
  43. package/dist/commands/dashboard.js +68 -0
  44. package/dist/commands/dashboard.js.map +1 -0
  45. package/dist/commands/inspect.js +125 -17
  46. package/dist/commands/inspect.js.map +1 -1
  47. package/dist/commands/list.d.ts +1 -1
  48. package/dist/commands/list.js +6 -3
  49. package/dist/commands/list.js.map +1 -1
  50. package/dist/commands/loops.js +11 -11
  51. package/dist/commands/loops.js.map +1 -1
  52. package/dist/commands/memory.js +2 -2
  53. package/dist/commands/memory.js.map +1 -1
  54. package/dist/commands/run.d.ts +1 -1
  55. package/dist/commands/run.js +102 -15
  56. package/dist/commands/run.js.map +1 -1
  57. package/dist/commands/runs.d.ts +1 -0
  58. package/dist/commands/runs.js +50 -0
  59. package/dist/commands/runs.js.map +1 -0
  60. package/dist/commands/task.d.ts +1 -0
  61. package/dist/commands/task.js +74 -0
  62. package/dist/commands/task.js.map +1 -0
  63. package/dist/commands/worktree.d.ts +1 -0
  64. package/dist/commands/worktree.js +162 -0
  65. package/dist/commands/worktree.js.map +1 -0
  66. package/dist/config.d.ts +15 -1
  67. package/dist/config.js +90 -21
  68. package/dist/config.js.map +1 -1
  69. package/dist/dashboard/app.d.ts +12 -0
  70. package/dist/dashboard/app.js +23 -0
  71. package/dist/dashboard/app.js.map +1 -0
  72. package/dist/dashboard/routes/api.d.ts +3 -0
  73. package/dist/dashboard/routes/api.js +103 -0
  74. package/dist/dashboard/routes/api.js.map +1 -0
  75. package/dist/dashboard/routes/pages.d.ts +2 -0
  76. package/dist/dashboard/routes/pages.js +14 -0
  77. package/dist/dashboard/routes/pages.js.map +1 -0
  78. package/dist/dashboard/views/alpine-vendor.d.ts +1 -0
  79. package/dist/dashboard/views/alpine-vendor.js +10 -0
  80. package/dist/dashboard/views/alpine-vendor.js.map +1 -0
  81. package/dist/dashboard/views/shell.d.ts +1 -0
  82. package/dist/dashboard/views/shell.js +714 -0
  83. package/dist/dashboard/views/shell.js.map +1 -0
  84. package/dist/events/decode.js.map +1 -1
  85. package/dist/events/encode.js +2 -2
  86. package/dist/events/encode.js.map +1 -1
  87. package/dist/harness/config-helpers.d.ts +11 -0
  88. package/dist/harness/config-helpers.js +242 -64
  89. package/dist/harness/config-helpers.js.map +1 -1
  90. package/dist/harness/coordination.js +12 -12
  91. package/dist/harness/coordination.js.map +1 -1
  92. package/dist/harness/display.d.ts +4 -3
  93. package/dist/harness/display.js +57 -11
  94. package/dist/harness/display.js.map +1 -1
  95. package/dist/harness/emit.js +31 -13
  96. package/dist/harness/emit.js.map +1 -1
  97. package/dist/harness/index.d.ts +7 -7
  98. package/dist/harness/index.js +151 -35
  99. package/dist/harness/index.js.map +1 -1
  100. package/dist/harness/iteration.d.ts +12 -0
  101. package/dist/harness/iteration.js +66 -64
  102. package/dist/harness/iteration.js.map +1 -1
  103. package/dist/harness/journal.d.ts +17 -0
  104. package/dist/harness/journal.js +74 -5
  105. package/dist/harness/journal.js.map +1 -1
  106. package/dist/harness/metareview.js +30 -15
  107. package/dist/harness/metareview.js.map +1 -1
  108. package/dist/harness/metrics.js +12 -12
  109. package/dist/harness/metrics.js.map +1 -1
  110. package/dist/harness/parallel.d.ts +1 -1
  111. package/dist/harness/parallel.js +141 -62
  112. package/dist/harness/parallel.js.map +1 -1
  113. package/dist/harness/prompt.d.ts +18 -9
  114. package/dist/harness/prompt.js +80 -44
  115. package/dist/harness/prompt.js.map +1 -1
  116. package/dist/harness/scratchpad.js +8 -6
  117. package/dist/harness/scratchpad.js.map +1 -1
  118. package/dist/harness/stop.js +16 -9
  119. package/dist/harness/stop.js.map +1 -1
  120. package/dist/harness/tools.js +39 -13
  121. package/dist/harness/tools.js.map +1 -1
  122. package/dist/harness/types.d.ts +29 -0
  123. package/dist/harness/wave/finalize-wave.d.ts +1 -1
  124. package/dist/harness/wave/finalize-wave.js +36 -9
  125. package/dist/harness/wave/finalize-wave.js.map +1 -1
  126. package/dist/harness/wave/launch-branches.d.ts +2 -2
  127. package/dist/harness/wave/launch-branches.js +147 -51
  128. package/dist/harness/wave/launch-branches.js.map +1 -1
  129. package/dist/harness/wave/parse-objectives.js +4 -1
  130. package/dist/harness/wave/parse-objectives.js.map +1 -1
  131. package/dist/harness/wave.d.ts +2 -2
  132. package/dist/harness/wave.js +89 -28
  133. package/dist/harness/wave.js.map +1 -1
  134. package/dist/isolation/index.d.ts +4 -0
  135. package/dist/isolation/index.js +3 -0
  136. package/dist/isolation/index.js.map +1 -0
  137. package/dist/isolation/resolve.d.ts +39 -0
  138. package/dist/isolation/resolve.js +118 -0
  139. package/dist/isolation/resolve.js.map +1 -0
  140. package/dist/isolation/run-scope.d.ts +21 -0
  141. package/dist/isolation/run-scope.js +50 -0
  142. package/dist/isolation/run-scope.js.map +1 -0
  143. package/dist/json.js +10 -8
  144. package/dist/json.js.map +1 -1
  145. package/dist/loops/health.d.ts +4 -2
  146. package/dist/loops/health.js +73 -25
  147. package/dist/loops/health.js.map +1 -1
  148. package/dist/loops/list.d.ts +2 -2
  149. package/dist/loops/list.js +6 -6
  150. package/dist/loops/list.js.map +1 -1
  151. package/dist/loops/policy.d.ts +6 -0
  152. package/dist/loops/policy.js +41 -0
  153. package/dist/loops/policy.js.map +1 -0
  154. package/dist/loops/render.d.ts +2 -1
  155. package/dist/loops/render.js +24 -11
  156. package/dist/loops/render.js.map +1 -1
  157. package/dist/loops/show.d.ts +2 -2
  158. package/dist/loops/show.js +13 -13
  159. package/dist/loops/show.js.map +1 -1
  160. package/dist/loops/watch.d.ts +7 -1
  161. package/dist/loops/watch.js +82 -16
  162. package/dist/loops/watch.js.map +1 -1
  163. package/dist/main.js +58 -16
  164. package/dist/main.js.map +1 -1
  165. package/dist/markdown.js +11 -11
  166. package/dist/markdown.js.map +1 -1
  167. package/dist/memory-render.js +5 -5
  168. package/dist/memory-render.js.map +1 -1
  169. package/dist/memory.d.ts +1 -2
  170. package/dist/memory.js +44 -40
  171. package/dist/memory.js.map +1 -1
  172. package/dist/pi-adapter.js +11 -11
  173. package/dist/pi-adapter.js.map +1 -1
  174. package/dist/profiles.d.ts +12 -0
  175. package/dist/profiles.js +71 -0
  176. package/dist/profiles.js.map +1 -0
  177. package/dist/registry/derive.js +10 -3
  178. package/dist/registry/derive.js.map +1 -1
  179. package/dist/registry/discover.d.ts +20 -0
  180. package/dist/registry/discover.js +98 -0
  181. package/dist/registry/discover.js.map +1 -0
  182. package/dist/registry/harness.js +8 -2
  183. package/dist/registry/harness.js.map +1 -1
  184. package/dist/registry/index.d.ts +4 -3
  185. package/dist/registry/index.js +3 -2
  186. package/dist/registry/index.js.map +1 -1
  187. package/dist/registry/read.js.map +1 -1
  188. package/dist/registry/rebuild.js +7 -4
  189. package/dist/registry/rebuild.js.map +1 -1
  190. package/dist/registry/types.d.ts +9 -0
  191. package/dist/registry/update.js +1 -1
  192. package/dist/registry/update.js.map +1 -1
  193. package/dist/tasks-render.d.ts +2 -0
  194. package/dist/tasks-render.js +44 -0
  195. package/dist/tasks-render.js.map +1 -0
  196. package/dist/tasks.d.ts +24 -0
  197. package/dist/tasks.js +184 -0
  198. package/dist/tasks.js.map +1 -0
  199. package/dist/testing/mock-backend.js +2 -2
  200. package/dist/testing/mock-backend.js.map +1 -1
  201. package/dist/topology.d.ts +6 -0
  202. package/dist/topology.js +129 -8
  203. package/dist/topology.js.map +1 -1
  204. package/dist/usage.d.ts +1 -0
  205. package/dist/usage.js +56 -11
  206. package/dist/usage.js.map +1 -1
  207. package/dist/utils.d.ts +6 -0
  208. package/dist/utils.js +272 -2
  209. package/dist/utils.js.map +1 -1
  210. package/dist/worktree/clean.d.ts +12 -0
  211. package/dist/worktree/clean.js +98 -0
  212. package/dist/worktree/clean.js.map +1 -0
  213. package/dist/worktree/create.d.ts +14 -0
  214. package/dist/worktree/create.js +71 -0
  215. package/dist/worktree/create.js.map +1 -0
  216. package/dist/worktree/index.d.ts +10 -0
  217. package/dist/worktree/index.js +6 -0
  218. package/dist/worktree/index.js.map +1 -0
  219. package/dist/worktree/list.d.ts +9 -0
  220. package/dist/worktree/list.js +24 -0
  221. package/dist/worktree/list.js.map +1 -0
  222. package/dist/worktree/merge.d.ts +11 -0
  223. package/dist/worktree/merge.js +129 -0
  224. package/dist/worktree/merge.js.map +1 -0
  225. package/dist/worktree/meta.d.ts +17 -0
  226. package/dist/worktree/meta.js +34 -0
  227. package/dist/worktree/meta.js.map +1 -0
  228. package/package.json +24 -4
  229. package/presets/autocode/README.md +1 -1
  230. package/presets/autocode/autoloops.toml +9 -1
  231. package/presets/autocode/harness.md +12 -5
  232. package/presets/autocode/roles/build.md +5 -4
  233. package/presets/autocode/roles/critic.md +2 -2
  234. package/presets/autocode/roles/finalizer.md +2 -2
  235. package/presets/autocode/roles/planner.md +7 -7
  236. package/presets/autodoc/README.md +1 -1
  237. package/presets/autodoc/autoloops.toml +1 -1
  238. package/presets/autodoc/harness.md +6 -6
  239. package/presets/autodoc/roles/auditor.md +3 -3
  240. package/presets/autodoc/roles/checker.md +2 -2
  241. package/presets/autodoc/roles/publisher.md +3 -3
  242. package/presets/autodoc/roles/writer.md +4 -4
  243. package/presets/autofix/README.md +1 -1
  244. package/presets/autofix/autoloops.toml +5 -2
  245. package/presets/autofix/harness.md +8 -7
  246. package/presets/autofix/roles/closer.md +4 -4
  247. package/presets/autofix/roles/diagnoser.md +6 -5
  248. package/presets/autofix/roles/fixer.md +4 -4
  249. package/presets/autofix/roles/verifier.md +2 -2
  250. package/presets/autoideas/README.md +1 -1
  251. package/presets/autoideas/autoloops.toml +1 -1
  252. package/presets/autoideas/harness.md +11 -11
  253. package/presets/autoideas/roles/analyst.md +4 -4
  254. package/presets/autoideas/roles/reviewer.md +3 -3
  255. package/presets/autoideas/roles/scanner.md +3 -3
  256. package/presets/autoideas/roles/synthesizer.md +20 -7
  257. package/presets/automerge/README.md +3 -0
  258. package/presets/automerge/autoloops.toml +12 -0
  259. package/presets/automerge/harness.md +10 -0
  260. package/presets/automerge/miniloops.toml +12 -0
  261. package/presets/automerge/roles/merge.md +10 -0
  262. package/presets/automerge/topology.toml +10 -0
  263. package/presets/autoperf/README.md +1 -1
  264. package/presets/autoperf/autoloops.toml +1 -1
  265. package/presets/autoperf/harness.md +5 -5
  266. package/presets/autoperf/roles/judge.md +3 -3
  267. package/presets/autoperf/roles/measurer.md +4 -4
  268. package/presets/autoperf/roles/optimizer.md +4 -4
  269. package/presets/autoperf/roles/profiler.md +4 -4
  270. package/presets/autopr/README.md +99 -0
  271. package/presets/autopr/autoloops.toml +22 -0
  272. package/presets/autopr/harness.md +27 -0
  273. package/presets/autopr/miniloops.toml +22 -0
  274. package/presets/autopr/roles/collector.md +55 -0
  275. package/presets/autopr/roles/drafter.md +38 -0
  276. package/presets/autopr/roles/publisher.md +28 -0
  277. package/presets/autopr/roles/validator.md +31 -0
  278. package/presets/autopr/topology.toml +32 -0
  279. package/presets/autoqa/README.md +1 -1
  280. package/presets/autoqa/autoloops.toml +1 -1
  281. package/presets/autoqa/harness.md +10 -10
  282. package/presets/autoqa/roles/executor.md +3 -3
  283. package/presets/autoqa/roles/inspector.md +2 -2
  284. package/presets/autoqa/roles/planner.md +6 -6
  285. package/presets/autoqa/roles/reporter.md +9 -9
  286. package/presets/autoresearch/README.md +1 -1
  287. package/presets/autoresearch/autoloops.toml +1 -1
  288. package/presets/autoresearch/harness.md +5 -5
  289. package/presets/autoresearch/roles/benchmarker.md +3 -3
  290. package/presets/autoresearch/roles/evaluator.md +5 -5
  291. package/presets/autoresearch/roles/implementer.md +4 -4
  292. package/presets/autoresearch/roles/strategist.md +6 -6
  293. package/presets/autoreview/README.md +1 -1
  294. package/presets/autoreview/autoloops.toml +1 -1
  295. package/presets/autoreview/harness.md +5 -5
  296. package/presets/autoreview/roles/checker.md +4 -4
  297. package/presets/autoreview/roles/reader.md +5 -5
  298. package/presets/autoreview/roles/suggester.md +4 -4
  299. package/presets/autoreview/roles/summarizer.md +4 -4
  300. package/presets/autosec/README.md +1 -1
  301. package/presets/autosec/autoloops.toml +1 -1
  302. package/presets/autosec/harness.md +5 -5
  303. package/presets/autosec/roles/analyst.md +4 -4
  304. package/presets/autosec/roles/hardener.md +2 -2
  305. package/presets/autosec/roles/reporter.md +4 -4
  306. package/presets/autosec/roles/scanner.md +3 -3
  307. package/presets/autosimplify/README.md +1 -1
  308. package/presets/autosimplify/autoloops.toml +7 -3
  309. package/presets/autosimplify/harness.md +7 -7
  310. package/presets/autosimplify/roles/reviewer.md +3 -3
  311. package/presets/autosimplify/roles/scoper.md +7 -7
  312. package/presets/autosimplify/roles/simplifier.md +4 -4
  313. package/presets/autosimplify/roles/verifier.md +3 -3
  314. package/presets/autospec/README.md +1 -1
  315. package/presets/autospec/autoloops.toml +1 -1
  316. package/presets/autospec/harness.md +6 -6
  317. package/presets/autospec/roles/clarifier.md +4 -3
  318. package/presets/autospec/roles/critic.md +1 -1
  319. package/presets/autospec/roles/designer.md +3 -3
  320. package/presets/autospec/roles/planner.md +2 -2
  321. package/presets/autospec/roles/researcher.md +3 -3
  322. package/presets/autotest/README.md +1 -1
  323. package/presets/autotest/autoloops.toml +1 -1
  324. package/presets/autotest/harness.md +6 -6
  325. package/presets/autotest/roles/assessor.md +3 -3
  326. package/presets/autotest/roles/runner.md +2 -2
  327. package/presets/autotest/roles/surveyor.md +4 -4
  328. package/presets/autotest/roles/writer.md +4 -4
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Track which batches are done, rejected, or still pending.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/simplify-context.md`, `.autoloop/simplify-plan.md`, and `.autoloop/progress.md` if they exist.
11
+ - Read `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.md`, and `{{STATE_DIR}}/progress.md` if they exist.
12
12
  - Re-read the latest scratchpad/journal context before deciding.
13
13
 
14
14
  On first activation:
@@ -18,14 +18,14 @@ On first activation:
18
18
  3. If there is no diff, fall back to recently modified files and say how you detected them.
19
19
  - Read the scoped files and group them into logical batches small enough for one cleanup pass.
20
20
  - Create or refresh:
21
- - `.autoloop/simplify-context.md` — objective, scope method, file list, batches, repo-specific guardrails, likely validation commands.
22
- - `.autoloop/simplify-plan.md` — skeleton for the active batch.
23
- - `.autoloop/progress.md` — current phase, active batch, completed batches, blocked batches.
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
24
  - Emit `scope.ready` with the first batch description.
25
25
 
26
26
  On later activations (`simplification.verified` or `review.blocked`):
27
27
  - Re-read the shared files and check remaining batches.
28
- - If `.autoloop/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.
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
29
  - If the active batch is done, advance to the next unfinished batch.
30
30
  - If no batches remain, emit `task.complete` with a concise completion summary.
31
31
  - Otherwise emit `scope.ready` with the next batch.
@@ -34,9 +34,9 @@ Rules:
34
34
  - Keep batches small and coherent: a file, a related file pair, or one logical diff chunk.
35
35
  - Track the scope method explicitly. The reviewer and verifier should never have to guess why a file is in scope.
36
36
  - Prefer changed files over opportunistic adjacent cleanup.
37
- - Record out-of-scope temptations in `.autoloop/progress.md` instead of silently expanding the work.
37
+ - Record out-of-scope temptations in `{{STATE_DIR}}/progress.md` instead of silently expanding the work.
38
38
  - If the diff is too large, order batches by impact: highest-duplication or highest-complexity area first.
39
39
  - Do not claim completion until every scoped batch is explicitly marked `verified` or `no-op verified`.
40
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
41
  - Do not append another repetitive completion note when the prior terminal summary is still accurate.
42
- - EARLY EXIT: If `.autoloop/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.
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.
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Produce a complete evidence bundle for the verifier.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/simplify-context.md`, `.autoloop/simplify-plan.md`, and `.autoloop/progress.md`.
11
+ - Read `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.md`, and `{{STATE_DIR}}/progress.md`.
12
12
  - Read the actual code in the active batch before editing.
13
13
 
14
14
  Process:
@@ -19,9 +19,9 @@ Process:
19
19
  - make naming and control flow plainer
20
20
  - trim obvious inefficiency when it is a direct simplification, not a speculative optimization
21
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 `.autoloop/simplify-plan.md`. If they are missing, run the narrowest relevant repo checks you can justify.
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
23
  4. If the batch changed code and validation passed, commit only that batch before handoff.
24
- 5. Update `.autoloop/progress.md` with:
24
+ 5. Update `{{STATE_DIR}}/progress.md` with:
25
25
  - exact files changed
26
26
  - concise summary of each simplification
27
27
  - exact validation command(s)
@@ -36,7 +36,7 @@ Emit `simplification.blocked` when:
36
36
  - the simplification would require scope expansion beyond what was approved
37
37
 
38
38
  On reactivation after `simplification.rejected`:
39
- - Read the rejection notes in `.autoloop/progress.md`.
39
+ - Read the rejection notes in `{{STATE_DIR}}/progress.md`.
40
40
  - Make the narrowest repair needed to address the rejection.
41
41
  - Re-run validation and emit `simplification.applied` again if fixed.
42
42
 
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Accept only when the result is clearly simpler or a justified no-op.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/simplify-context.md`, `.autoloop/simplify-plan.md`, and `.autoloop/progress.md`.
11
+ - Read `{{STATE_DIR}}/simplify-context.md`, `{{STATE_DIR}}/simplify-plan.md`, and `{{STATE_DIR}}/progress.md`.
12
12
  - Read the actual diff and the touched code directly. Treat other roles' summaries as claims to check.
13
13
 
14
14
  Process:
@@ -20,13 +20,13 @@ Process:
20
20
  - Review the recorded validation commands and outputs.
21
21
  - If the evidence is weak, rerun a narrow check yourself when practical.
22
22
  3. Verify commit discipline:
23
- - If the batch changed code, is it already committed and is that commit hash recorded in `.autoloop/progress.md`?
23
+ - If the batch changed code, is it already committed and is that commit hash recorded in `{{STATE_DIR}}/progress.md`?
24
24
  - Is the tree clean apart from intentional unrelated files?
25
25
  4. Verify simplification quality:
26
26
  - Is the result actually clearer, smaller, or more direct?
27
27
  - Did it improve reuse, clarity, or obvious efficiency without adding cleverness?
28
28
  - If the batch was a no-op, is the no-op conclusion well supported?
29
- 5. Update `.autoloop/progress.md` with your verdict and reasons.
29
+ 5. Update `{{STATE_DIR}}/progress.md` with your verdict and reasons.
30
30
  6. Emit `simplification.verified` only when the batch passes all four checks.
31
31
  7. Emit `simplification.rejected` with exact reasons when it fails any check.
32
32
 
@@ -1,6 +1,6 @@
1
1
  # AutoSpec miniloop
2
2
 
3
- An autoloop-native specification loop for turning a rough idea into a durable RFC + implementation task pair.
3
+ Use when you have a rough idea and need a structured RFC and implementation task plan.
4
4
 
5
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
6
 
@@ -4,7 +4,7 @@ event_loop.completion_promise = "LOOP_COMPLETE"
4
4
  event_loop.required_events = ["research.ready", "design.ready", "spec.ready"]
5
5
 
6
6
  backend.kind = "command"
7
- backend.command = "/Users/rook/.npm-global/bin/claude"
7
+ backend.command = "claude"
8
8
  backend.timeout_ms = 3000000
9
9
  # For deterministic local harness testing only:
10
10
  # backend.kind = "command"
@@ -3,21 +3,21 @@ This is a autoloops-native specification loop.
3
3
  The loop turns a rough idea into durable planning artifacts that a later implementation loop can execute.
4
4
 
5
5
  Global rules:
6
- - Shared working files are the source of truth: `.autoloop/spec-brief.md`, `.autoloop/spec-research.md`, and `.autoloop/progress.md`.
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
7
  - The goal is durable artifacts, not endless discussion.
8
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 `.autoloop/spec-brief.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
10
  - Prefer the smallest artifact set that fully captures the decision. Keep intermediate files concise.
11
11
  - Use the event tool instead of prose-only handoffs.
12
12
  - Fresh context every iteration: re-read the shared working files and relevant source material before acting.
13
13
  - Do not implement product code. This loop writes and revises planning/specification artifacts only.
14
14
  - If the prompt points at an existing file or directory, use that as source material instead of treating it like plain prose.
15
15
  - Missing evidence means no completion. If something is unresolved, say so explicitly.
16
- - Use `./.autoloop/autoloops memory add learning ...` for durable learnings.
16
+ - Use `{{TOOL_PATH}} memory add learning ...` for durable learnings.
17
17
  - Do not invent extra phases. Stay inside clarifier → researcher → designer → planner → critic.
18
18
  - Only the critic may emit `task.complete`.
19
19
 
20
20
  State files:
21
- - `.autoloop/spec-brief.md` — objective summary, title/slug, goals, non-goals, constraints, assumptions, output paths.
22
- - `.autoloop/spec-research.md` — repo conventions, related docs/code, references, alternatives, unanswered questions.
23
- - `.autoloop/progress.md` — current phase, artifact paths, revision notes, critic checklist.
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,6 +1,7 @@
1
1
  You are the clarifier.
2
2
 
3
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`).
4
5
 
5
6
  Your job:
6
7
  1. Normalize the request into a concrete specification brief.
@@ -8,12 +9,12 @@ Your job:
8
9
  3. Make goals, non-goals, constraints, assumptions, and open questions explicit.
9
10
 
10
11
  On every activation:
11
- - Read `.autoloop/spec-brief.md`, `.autoloop/spec-research.md`, and `.autoloop/progress.md` if they exist.
12
+ - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md` if they exist.
12
13
  - If the objective text points at a local file or directory, read it.
13
14
  - Re-read the latest scratchpad/journal context before deciding.
14
15
 
15
16
  On first activation or after `brief.revise`:
16
- - Create or refresh `.autoloop/spec-brief.md` with:
17
+ - Create or refresh `{{STATE_DIR}}/spec-brief.md` with:
17
18
  - Objective
18
19
  - Source Material
19
20
  - Proposed Title
@@ -28,7 +29,7 @@ On first activation or after `brief.revise`:
28
29
  - Design: `docs/rfcs/<slug>.md`
29
30
  - Task: `.agents/tasks/<project-name>/<slug>.code-task.md`
30
31
  - If the repo appears to have a stronger existing planning convention, note that as a hypothesis for the researcher to confirm.
31
- - Update `.autoloop/progress.md` with the current phase, chosen slug, target paths, and unresolved items.
32
+ - Update `{{STATE_DIR}}/progress.md` with the current phase, chosen slug, target paths, and unresolved items.
32
33
  - Emit `brief.ready` with the title, slug, output paths, and the top risks.
33
34
 
34
35
  Rules:
@@ -10,7 +10,7 @@ Your job:
10
10
  3. Allow completion only when the pair is aligned, durable, and actionable.
11
11
 
12
12
  On every activation:
13
- - Read `.autoloop/spec-brief.md`, `.autoloop/spec-research.md`, and `.autoloop/progress.md`.
13
+ - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
14
14
  - Read the design doc and the code task at their chosen paths.
15
15
  - Re-read the latest scratchpad/journal context before deciding.
16
16
 
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Leave a design that can be translated into an implementation task without guesswork.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/spec-brief.md`, `.autoloop/spec-research.md`, and `.autoloop/progress.md`.
11
+ - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
12
12
  - Read the current design doc if it already exists.
13
13
  - Re-read the latest scratchpad/journal context before deciding.
14
14
 
@@ -27,11 +27,11 @@ Process:
27
27
  - `## Implementation Notes`
28
28
  3. In `## Implementation Notes`, include the exact cross-link line:
29
29
  - `Code task: \`<task path>\``
30
- 4. Update `.autoloop/progress.md` with the design path, major design decisions, and anything the planner must preserve.
30
+ 4. Update `{{STATE_DIR}}/progress.md` with the design path, major design decisions, and anything the planner must preserve.
31
31
  5. Emit `design.ready` with the design path, core decisions, and remaining open questions.
32
32
 
33
33
  Rules:
34
34
  - Prefer a lightweight RFC over a bloated process document.
35
35
  - Explain tradeoffs and boundaries, not just a restatement of requirements.
36
- - Keep terminology, names, and paths consistent with `.autoloop/spec-brief.md`.
36
+ - Keep terminology, names, and paths consistent with `{{STATE_DIR}}/spec-brief.md`.
37
37
  - If something remains unresolved, make it explicit in `## Open Questions` instead of pretending it is settled.
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Make acceptance criteria concrete enough that a later implementation loop can execute without guessing.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/spec-brief.md`, `.autoloop/spec-research.md`, and `.autoloop/progress.md`.
11
+ - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
12
12
  - Read the design doc and the current code task if they exist.
13
13
  - Re-read the latest scratchpad/journal context before deciding.
14
14
 
@@ -28,7 +28,7 @@ Process:
28
28
  4. Include the design doc in `Reference Documentation` using a path entry such as:
29
29
  - `- Design: <design path>`
30
30
  5. Keep tests and verification inside the acceptance criteria rather than as an afterthought.
31
- 6. Update `.autoloop/progress.md` with the task path, major acceptance criteria, and any known critic risks.
31
+ 6. Update `{{STATE_DIR}}/progress.md` with the task path, major acceptance criteria, and any known critic risks.
32
32
  7. Emit `spec.ready` with both artifact paths and the task's key acceptance criteria.
33
33
 
34
34
  Rules:
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Confirm the intended artifact paths and note any stronger local conventions.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/spec-brief.md`, `.autoloop/spec-research.md`, and `.autoloop/progress.md`.
11
+ - Read `{{STATE_DIR}}/spec-brief.md`, `{{STATE_DIR}}/spec-research.md`, and `{{STATE_DIR}}/progress.md`.
12
12
  - Re-read the latest scratchpad/journal context before deciding.
13
13
 
14
14
  Process:
@@ -17,13 +17,13 @@ Process:
17
17
  - existing `.code-task.md` files or task conventions
18
18
  - adjacent code, docs, tests, configs, or examples relevant to the idea
19
19
  - related prior RFCs or implementation notes
20
- 2. Write or refresh `.autoloop/spec-research.md` with:
20
+ 2. Write or refresh `{{STATE_DIR}}/spec-research.md` with:
21
21
  - confirmed artifact path convention
22
22
  - existing task/doc structure to match
23
23
  - related files and why they matter
24
24
  - alternatives or prior art discovered in the repo
25
25
  - unanswered questions that still affect the design
26
- 3. Update `.autoloop/progress.md` with the strongest references and remaining evidence gaps.
26
+ 3. Update `{{STATE_DIR}}/progress.md` with the strongest references and remaining evidence gaps.
27
27
  4. Emit `research.ready` with the confirmed paths, key references, and unresolved questions.
28
28
 
29
29
  Rules:
@@ -1,6 +1,6 @@
1
1
  # AutoTest miniloop
2
2
 
3
- An autoloop-native formal test creation and test-suite tightening loop.
3
+ Use when you need to create new tests or tighten an existing test suite for better coverage.
4
4
 
5
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
6
 
@@ -4,7 +4,7 @@ event_loop.completion_promise = "LOOP_COMPLETE"
4
4
  event_loop.required_events = ["tests.passed"]
5
5
 
6
6
  backend.kind = "command"
7
- backend.command = "/Users/rook/.npm-global/bin/claude"
7
+ backend.command = "claude"
8
8
  backend.timeout_ms = 3000000
9
9
  # For deterministic local harness testing only:
10
10
  # backend.kind = "command"
@@ -3,7 +3,7 @@ This is a autoloops-native autotest loop that creates and tightens formal tests
3
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
4
 
5
5
  Global rules:
6
- - Shared working files are the source of truth: `.autoloop/test-plan.md`, `.autoloop/test-report.md`, `.autoloop/progress.md`.
6
+ - Shared working files are the source of truth: `{{STATE_DIR}}/test-plan.md`, `{{STATE_DIR}}/test-report.md`, `{{STATE_DIR}}/progress.md`.
7
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
8
  - Use the event tool instead of prose-only handoffs.
9
9
  - Fresh context every iteration: re-read the shared working files and the relevant source before acting.
@@ -11,11 +11,11 @@ Global rules:
11
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
12
  - False passes are worse than false fails.
13
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 `.autoloop/progress.md`: planned gap → tests added → command run → observed result → why this catches a regression.
15
- - Use `./.autoloop/autoloops memory add learning ...` for durable learnings.
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
16
  - Do not invent extra phases. Stay inside surveyor → writer → runner → assessor.
17
17
 
18
18
  State files:
19
- - `.autoloop/test-plan.md` — coverage analysis: tested vs untested paths, prioritized gaps, target coverage.
20
- - `.autoloop/test-report.md` — compiled report: tests written, pass/fail results, coverage deltas.
21
- - `.autoloop/progress.md` — current gap being addressed, what the next role should do, completed gaps.
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.
@@ -8,13 +8,13 @@ Your job:
8
8
  3. Decide whether to continue filling gaps or complete.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/test-plan.md`, `.autoloop/test-report.md`, and `.autoloop/progress.md`.
11
+ - Read `{{STATE_DIR}}/test-plan.md`, `{{STATE_DIR}}/test-report.md`, and `{{STATE_DIR}}/progress.md`.
12
12
  - Start skeptical: assume the new tests are weak until proven otherwise.
13
13
 
14
14
  Process:
15
15
  1. Review the tests that were written — are they meaningful? Do they test real behavior?
16
16
  2. Check the test results — did the planned gap actually run and pass? Any flaky signals?
17
- 3. Update `.autoloop/test-report.md` with:
17
+ 3. Update `{{STATE_DIR}}/test-report.md` with:
18
18
  - Gap addressed
19
19
  - Tests written (file, count)
20
20
  - Pass/fail results
@@ -26,7 +26,7 @@ Process:
26
26
  - If the tests are trivial, redundant, vacuous, skipped, ambiguous, or mostly implementation-detail assertions → emit `coverage.stale` with feedback for the surveyor to pick a better gap.
27
27
  - If all planned gaps are addressed → emit `task.complete` with a summary and a remaining-gap ledger.
28
28
 
29
- `.autoloop/test-report.md` format:
29
+ `{{STATE_DIR}}/test-report.md` format:
30
30
  ```
31
31
  # Test Report
32
32
 
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Hand results to the assessor.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/test-plan.md` and `.autoloop/progress.md` to know which tests were written.
11
+ - Read `{{STATE_DIR}}/test-plan.md` and `{{STATE_DIR}}/progress.md` to know which tests were written.
12
12
 
13
13
  Process:
14
14
  1. Run the test suite (or the specific new tests if the framework supports targeted runs).
@@ -19,7 +19,7 @@ Process:
19
19
  - which new test files were discovered or executed
20
20
  - failure messages and stack traces for any failures
21
21
  - coverage delta if a coverage tool is configured
22
- 3. Record results in `.autoloop/progress.md`.
22
+ 3. Record results in `{{STATE_DIR}}/progress.md`.
23
23
  4. If all new tests pass and real tests actually ran → emit `tests.passed`.
24
24
  5. If any new tests fail, zero tests ran, all tests were skipped, or discovery is ambiguous → emit `tests.failed` with failure details.
25
25
 
@@ -8,7 +8,7 @@ Your job:
8
8
  3. Hand one gap at a time to the writer.
9
9
 
10
10
  On every activation:
11
- - Read `.autoloop/test-plan.md`, `.autoloop/test-report.md`, and `.autoloop/progress.md` if they exist.
11
+ - Read `{{STATE_DIR}}/test-plan.md`, `{{STATE_DIR}}/test-report.md`, and `{{STATE_DIR}}/progress.md` if they exist.
12
12
  - Re-read the latest scratchpad/journal context before deciding.
13
13
 
14
14
  On first activation:
@@ -16,15 +16,15 @@ On first activation:
16
16
  - Identify untested or under-tested modules, functions, and code paths.
17
17
  - If a coverage tool is available (e.g., `coverage`, `nyc`, `cargo-tarpaulin`), run it to get a baseline.
18
18
  - Create or refresh:
19
- - `.autoloop/test-plan.md` — test framework, conventions, coverage baseline, prioritized list of gaps.
20
- - `.autoloop/progress.md` — current phase, first gap to address.
19
+ - `{{STATE_DIR}}/test-plan.md` — test framework, conventions, coverage baseline, prioritized list of gaps.
20
+ - `{{STATE_DIR}}/progress.md` — current phase, first gap to address.
21
21
  - Emit `gaps.identified` with the first gap to fill.
22
22
 
23
23
  On later activations (`coverage.improved` or `coverage.stale`):
24
24
  - Re-read the shared working files.
25
25
  - Update the gap list based on what has been addressed.
26
26
  - If all high-priority gaps are filled or no more productive tests can be written, emit `task.complete` only with an explicit remaining-gap ledger.
27
- - Otherwise, write the next gap into `.autoloop/progress.md` and emit `gaps.identified`.
27
+ - Otherwise, write the next gap into `{{STATE_DIR}}/progress.md` and emit `gaps.identified`.
28
28
 
29
29
  For each proposed gap, record:
30
30
  - exact file/function/branch
@@ -7,7 +7,7 @@ Your job:
7
7
  2. Follow the repo's existing test conventions and framework.
8
8
 
9
9
  On every activation:
10
- - Read `.autoloop/test-plan.md`, `.autoloop/test-report.md`, and `.autoloop/progress.md`.
10
+ - Read `{{STATE_DIR}}/test-plan.md`, `{{STATE_DIR}}/test-report.md`, and `{{STATE_DIR}}/progress.md`.
11
11
  - Understand exactly which gap you are addressing and what the test conventions are.
12
12
 
13
13
  Process:
@@ -17,16 +17,16 @@ Process:
17
17
  - Test error/edge cases mentioned by the surveyor.
18
18
  - Test boundary conditions.
19
19
  3. Place test files in the repo's conventional test location, matching naming conventions.
20
- 4. Update `.autoloop/progress.md` with what was written.
20
+ 4. Update `{{STATE_DIR}}/progress.md` with what was written.
21
21
  5. Emit `tests.written` with a summary of tests added.
22
22
 
23
23
  On `tests.failed` reactivation:
24
- - Read the failure output from `.autoloop/progress.md`.
24
+ - Read the failure output from `{{STATE_DIR}}/progress.md`.
25
25
  - Fix the failing tests — do not delete them unless the test logic is wrong (not just the code under test).
26
26
  - Emit `tests.written` again.
27
27
 
28
28
  On `write.blocked`:
29
- - If you cannot write meaningful tests for this gap, explain why in `.autoloop/progress.md`.
29
+ - If you cannot write meaningful tests for this gap, explain why in `{{STATE_DIR}}/progress.md`.
30
30
  - Emit `write.blocked` so the surveyor can pick a different gap.
31
31
 
32
32
  Rules: