@iowarp/clio-coder 0.4.2 → 0.4.4

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 (523) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/CONTRIBUTING.md +86 -19
  3. package/README.md +35 -6
  4. package/dist/{acp-TMDQZDIG.js → acp-WNAYYF4F.js} +12 -13
  5. package/dist/{agents-5N5NG3XG.js → agents-3OKXHLOI.js} +60 -57
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-Z5CCBXKQ.js → auth-VKNNMGPU.js} +21 -19
  8. package/dist/{builtins-K6TNDT24.js → builtins-WGALA46I.js} +9 -4
  9. package/dist/{chunk-XE3PCIXH.js → chunk-23L32XTI.js} +12 -9
  10. package/dist/{chunk-I64IFBLB.js → chunk-25QBEXRS.js} +18 -11
  11. package/dist/{chunk-CDNVLKUX.js → chunk-26QSH3EJ.js} +13 -7
  12. package/dist/{chunk-QQLGQY2A.js → chunk-2ASED4PZ.js} +22 -22
  13. package/dist/{chunk-MCEPRMZW.js → chunk-2CU2H6KE.js} +2 -2
  14. package/dist/chunk-2DSOYNFC.js +108 -0
  15. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  16. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  17. package/dist/{chunk-O3YUNJZ2.js → chunk-2ZSONWVL.js} +82 -25
  18. package/dist/{chunk-2NHR3NAY.js → chunk-36CT5VVL.js} +331 -42
  19. package/dist/{chunk-2X4RYJTJ.js → chunk-3GY4F45V.js} +3 -3
  20. package/dist/{chunk-ZW55JB7N.js → chunk-3ODX73FK.js} +4 -6
  21. package/dist/{chunk-PBP4B7XR.js → chunk-3UNOLWNZ.js} +3 -3
  22. package/dist/{chunk-4JDLP6ZS.js → chunk-3UUXNFEX.js} +14 -10
  23. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  24. package/dist/{chunk-ZW4HH5JJ.js → chunk-4M6Z5QVF.js} +6 -6
  25. package/dist/{chunk-K6BSR66V.js → chunk-4NSRCOYP.js} +4 -1
  26. package/dist/{chunk-M2DAX4F6.js → chunk-4WR7VSYB.js} +2 -2
  27. package/dist/{chunk-FSP7CMNU.js → chunk-54X7T7DK.js} +61 -6
  28. package/dist/{chunk-54ODD65L.js → chunk-5636DCO5.js} +4 -4
  29. package/dist/chunk-57XXR6DR.js +3763 -0
  30. package/dist/{chunk-3KIPBMUA.js → chunk-5ICU3EUH.js} +2 -2
  31. package/dist/{chunk-77QIVUZB.js → chunk-5MEZN6CB.js} +4 -4
  32. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  33. package/dist/{chunk-YJISEZKC.js → chunk-5TUB6SLS.js} +6 -6
  34. package/dist/{chunk-IMXMHHMQ.js → chunk-6OSVSQL5.js} +341 -57
  35. package/dist/{chunk-Q4XWMHX6.js → chunk-6PAZTBPA.js} +14 -2
  36. package/dist/{chunk-FVDGR2ZL.js → chunk-6Q3CYFD3.js} +112 -39
  37. package/dist/{chunk-IDNA72AH.js → chunk-6QOTUPRG.js} +155 -36
  38. package/dist/{chunk-X7IARSHT.js → chunk-6UINWWS6.js} +16 -10
  39. package/dist/{chunk-CYZW7JHJ.js → chunk-72YIHOZQ.js} +9 -9
  40. package/dist/{chunk-IKSLQ4XV.js → chunk-75W7L2E2.js} +752 -861
  41. package/dist/{chunk-CRFOIAX3.js → chunk-7UGL4MB5.js} +6 -6
  42. package/dist/{chunk-HIICAHCJ.js → chunk-AUPNRN7C.js} +2 -2
  43. package/dist/{chunk-7BHIY2MW.js → chunk-BJVFZO5U.js} +8 -50
  44. package/dist/{chunk-B74PXLU7.js → chunk-CUSRQKPU.js} +65 -3
  45. package/dist/chunk-DQOVN6KV.js +386 -0
  46. package/dist/{chunk-E7GT7O5N.js → chunk-DT3LWJOB.js} +7 -4
  47. package/dist/chunk-DXKJURES.js +671 -0
  48. package/dist/{chunk-JBCS7CRR.js → chunk-EL24TAU4.js} +10 -10
  49. package/dist/{chunk-TPEQIQIE.js → chunk-ELWDPP3Y.js} +8 -8
  50. package/dist/{chunk-NDINPTJ4.js → chunk-ELZVTCGV.js} +5 -4
  51. package/dist/chunk-EXLD33WO.js +381 -0
  52. package/dist/chunk-FEAXX7B6.js +101 -0
  53. package/dist/{chunk-RLYRBIYQ.js → chunk-FFUPXJC4.js} +90 -331
  54. package/dist/{chunk-5PFYMY2V.js → chunk-FTMGRKEF.js} +2 -2
  55. package/dist/{chunk-34BHNEE3.js → chunk-GHS5EBTQ.js} +58 -7
  56. package/dist/{chunk-DYHAXKHD.js → chunk-GWZNEVM2.js} +12 -8
  57. package/dist/chunk-GX5WYQO4.js +59 -0
  58. package/dist/chunk-GYV6VZOC.js +26 -0
  59. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  60. package/dist/chunk-I2DWJ4GM.js +390 -0
  61. package/dist/{chunk-TXOTCRLG.js → chunk-I5FWO7L5.js} +5 -5
  62. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  63. package/dist/{chunk-XQRY4DTA.js → chunk-IGLP3ODT.js} +10 -10
  64. package/dist/chunk-IRXAATOX.js +539 -0
  65. package/dist/chunk-IXIY2H4R.js +44 -0
  66. package/dist/{chunk-SSEYRH53.js → chunk-IZXGRF7P.js} +92 -147
  67. package/dist/{chunk-5TSRNF4G.js → chunk-JCI2ROMZ.js} +164 -6
  68. package/dist/{chunk-JWJGP5DQ.js → chunk-JEIYHLOR.js} +7 -7
  69. package/dist/{chunk-F2I26BDK.js → chunk-JQLNNIKT.js} +4 -4
  70. package/dist/{chunk-BYMNWQ7O.js → chunk-JSD46VO2.js} +315 -63
  71. package/dist/{chunk-AK5XEFVZ.js → chunk-JT2RFCC5.js} +64 -14
  72. package/dist/{chunk-MCMZMDAC.js → chunk-K6T2ZAMZ.js} +168 -6
  73. package/dist/{chunk-PGF63K6I.js → chunk-KFV5L5SK.js} +73 -4
  74. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  75. package/dist/{chunk-PJX3WQUQ.js → chunk-LLXSDWXS.js} +3 -3
  76. package/dist/{chunk-DZAW46HP.js → chunk-LTIKRKFL.js} +3 -3
  77. package/dist/{chunk-DZEK6CJN.js → chunk-N56KALIC.js} +21 -21
  78. package/dist/{chunk-B7HM5Z7T.js → chunk-NAI6ZFCY.js} +9 -5
  79. package/dist/{chunk-I66ZTYNP.js → chunk-NRO2BJRH.js} +2656 -2213
  80. package/dist/{chunk-ZGNYYXQ6.js → chunk-NXIMQY5W.js} +3 -3
  81. package/dist/{chunk-IKOZFYBN.js → chunk-NXYCB2VD.js} +149 -106
  82. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  83. package/dist/{chunk-462T4EGZ.js → chunk-O5CVSAG5.js} +2 -2
  84. package/dist/chunk-ODGTEFFI.js +50 -0
  85. package/dist/{chunk-3F7VUY77.js → chunk-OEJSLEPW.js} +2 -2
  86. package/dist/{chunk-KKOJXO6R.js → chunk-OMQNJVKW.js} +4 -2
  87. package/dist/{chunk-5KW52TEP.js → chunk-Q4WO54TA.js} +132 -77
  88. package/dist/{chunk-W6NIE6OW.js → chunk-QUFRYSWI.js} +13 -7
  89. package/dist/{chunk-42FMPA75.js → chunk-QZWQA4DE.js} +2 -2
  90. package/dist/chunk-R6Q67RJH.js +134 -0
  91. package/dist/{chunk-W4YEMFBX.js → chunk-RAY4OVGZ.js} +3 -3
  92. package/dist/{chunk-ZNT2M6TG.js → chunk-RQCKCSRL.js} +17 -17
  93. package/dist/{chunk-LJID3DYZ.js → chunk-RXTN6AKH.js} +3 -3
  94. package/dist/{chunk-P75RZCJW.js → chunk-RZDWV63N.js} +3 -3
  95. package/dist/{chunk-UH632ZYL.js → chunk-S6PYF2XF.js} +2 -2
  96. package/dist/{chunk-HJWWJ6IL.js → chunk-TOIVGRUX.js} +17 -5
  97. package/dist/{chunk-HLAFFSEK.js → chunk-TQAHXW6Y.js} +2 -2
  98. package/dist/{chunk-JIEGK6UF.js → chunk-U6TMQNSI.js} +48 -4
  99. package/dist/{chunk-2HFQNRV3.js → chunk-UEPWCCTY.js} +12 -12
  100. package/dist/chunk-UOIZ7DA4.js +41 -0
  101. package/dist/{chunk-UH347SHR.js → chunk-USR47QNF.js} +11 -11
  102. package/dist/{chunk-AZ4WMN4W.js → chunk-V6HJFQZE.js} +2 -2
  103. package/dist/chunk-V76WTFTW.js +318 -0
  104. package/dist/{chunk-NMJXSHBJ.js → chunk-W54I7H25.js} +2 -2
  105. package/dist/{chunk-KPXDY6QF.js → chunk-XRZT5WY5.js} +2 -2
  106. package/dist/{chunk-UBRFI4HS.js → chunk-XULDXHTN.js} +142 -50
  107. package/dist/chunk-XXYSBZIQ.js +283 -0
  108. package/dist/{chunk-HKMD33FO.js → chunk-Y55JBDO5.js} +405 -122
  109. package/dist/{chunk-XOXV5GKE.js → chunk-YD5GIKET.js} +17 -8
  110. package/dist/{chunk-XGDPUNND.js → chunk-YECAMM3D.js} +2 -2
  111. package/dist/{chunk-BO7Y52RY.js → chunk-YNFKXPEC.js} +7 -7
  112. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  113. package/dist/{chunk-M2WXEHER.js → chunk-ZA4VCIGV.js} +2 -2
  114. package/dist/cli/index.js +42 -40
  115. package/dist/{clio-7VB377CC.js → clio-QLICPCF5.js} +7 -7
  116. package/dist/{code-nav-YVLCYA7V.js → code-nav-IJR2DBPR.js} +9 -9
  117. package/dist/{components-UBWCQSRW.js → components-2TGAI2RC.js} +5 -6
  118. package/dist/{config-4HVOS65E.js → config-IUA6OYNS.js} +88 -81
  119. package/dist/{configure-PIWO7B24.js → configure-VEPX4NMX.js} +26 -25
  120. package/dist/{context-KQYIWPWT.js → context-2DKHWH2T.js} +60 -45
  121. package/dist/{context-IYEHL3WQ.js → context-4MPR7WKB.js} +78 -69
  122. package/dist/{context-N6ZE3LGJ.js → context-BOYF5EJM.js} +15 -11
  123. package/dist/{context-clear-G4OGZJDS.js → context-clear-S4ZJCQUX.js} +73 -65
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-BWLF6LJP.js → context-working-set-3I3FYX6Y.js} +18 -17
  126. package/dist/detail-A7JAVSIG.js +98 -0
  127. package/dist/{dispatch-runner-2QQAITS3.js → dispatch-runner-RJ5I2F2O.js} +99 -75
  128. package/dist/{docs-PD3EXDKU.js → docs-SPOV3BAN.js} +3 -5
  129. package/dist/{doctor-LHBD36VU.js → doctor-DKICC2SN.js} +71 -48
  130. package/dist/{eval-C45FYRJ6.js → eval-OQOQUDHK.js} +308 -146
  131. package/dist/{eval-inventory-6DEJPLBF.js → eval-inventory-Y6QRFOH5.js} +4 -4
  132. package/dist/{evidence-6SHONYAF.js → evidence-4DQ25GUQ.js} +79 -175
  133. package/dist/evidence-4F5USFKH.js +208 -0
  134. package/dist/{evolve-KRKMV72X.js → evolve-GSS52E5J.js} +71 -67
  135. package/dist/{extensions-KPZ2UHBB.js → extensions-G7MFLYHT.js} +8 -9
  136. package/dist/{fleet-IVTCKDHT.js → fleet-Q37YHHAQ.js} +126 -118
  137. package/dist/{fleet-commands-EDWL3IT7.js → fleet-commands-G7E4N7SM.js} +16 -13
  138. package/dist/{fleet-decisions-YP3YEFGK.js → fleet-decisions-O7M6QBA2.js} +9 -8
  139. package/dist/{fleet-graph-ZFWKHY2M.js → fleet-graph-TOUBW6OW.js} +21 -20
  140. package/dist/{fleet-inspect-FVUNCBML.js → fleet-inspect-SW33JJNI.js} +65 -60
  141. package/dist/{fleet-preflight-UN5XED4R.js → fleet-preflight-CV2655TW.js} +4 -5
  142. package/dist/{fleet-validate-XOWC4HSX.js → fleet-validate-KESZX2YH.js} +25 -24
  143. package/dist/{fleet-verify-UN3SODEL.js → fleet-verify-UQPMTVE3.js} +66 -61
  144. package/dist/{fleet-view-TWHJKCN6.js → fleet-view-MN2VG4MR.js} +65 -60
  145. package/dist/{init-T2QORQ3Y.js → init-PXEXQSBF.js} +90 -82
  146. package/dist/{interop-IN5I2A66.js → interop-ZG5T62U3.js} +12 -13
  147. package/dist/inventory-C26CFDRR.js +101 -0
  148. package/dist/{library-LSCATDLZ.js → library-B2W4N74O.js} +29 -29
  149. package/dist/{memory-HYOKAGGJ.js → memory-YCANYS5A.js} +73 -69
  150. package/dist/{models-2GPMFYCM.js → models-GERTU3YI.js} +51 -47
  151. package/dist/{monitor-E4ASVUJH.js → monitor-CPNIUULB.js} +74 -67
  152. package/dist/{orchestrator-DDMPR3PY.js → orchestrator-J4BSH4WQ.js} +1288 -1606
  153. package/dist/{panes-E3RUXOW5.js → panes-BOHAEGYC.js} +4 -4
  154. package/dist/{panes-IXKLOKA2.js → panes-NXSLDQZ2.js} +10 -11
  155. package/dist/{paths-L7LGY6RN.js → paths-VSUWNC22.js} +6 -7
  156. package/dist/reset-TNWTB5LU.js +343 -0
  157. package/dist/{resources-OTRSN34L.js → resources-4PXNMD5G.js} +29 -22
  158. package/dist/{run-5DEYH5QK.js → run-D6XJ34CN.js} +132 -132
  159. package/dist/{share-IHWTLO3M.js → share-2NWMJJEE.js} +27 -27
  160. package/dist/{skills-IYMXMKW4.js → skills-KR7WON5G.js} +40 -33
  161. package/dist/{skills-eval-DROHSJAR.js → skills-eval-O2ZNOLDS.js} +81 -77
  162. package/dist/{skills-inventory-D7X4L4ZX.js → skills-inventory-ZZOUBK7O.js} +23 -22
  163. package/dist/{slash-commands-QBM7UZ3B.js → slash-commands-ZXPJD64J.js} +47 -37
  164. package/dist/{steer-Z5DO23FJ.js → steer-XA25PSCS.js} +4 -4
  165. package/dist/{support-U7QOWY26.js → support-7EMVWYG2.js} +6 -6
  166. package/dist/{targets-P2FUC4IL.js → targets-OMH2XCSN.js} +50 -49
  167. package/dist/tasks-IPAGMEIX.js +36 -0
  168. package/dist/{terminal-lease-YREJ3JX2.js → terminal-lease-C2J3JYRE.js} +4 -4
  169. package/dist/{tools-5B7RO6MV.js → tools-EFFEAIDP.js} +8 -9
  170. package/dist/{trace-YMGMUM6A.js → trace-FXMXUZUF.js} +7 -7
  171. package/dist/uninstall-HALS6BLF.js +407 -0
  172. package/dist/upgrade-MS72RJEP.js +306 -0
  173. package/dist/{usage-ME5MPXGX.js → usage-NHG6MCJM.js} +162 -108
  174. package/dist/{verifiers-BVZ7IWOO.js → verifiers-7AUNVXDY.js} +155 -22
  175. package/dist/{verify-5K7ZKQFC.js → verify-FWYGPKMR.js} +14 -12
  176. package/dist/{web-fetch-MPARV2K7.js → web-fetch-V4FKSDAV.js} +4 -4
  177. package/dist/{wiki-generate-F5W5QTYY.js → wiki-generate-743CIGJW.js} +99 -90
  178. package/dist/{with-panes-BYOJCLAM.js → with-panes-BDQEWBRT.js} +10 -10
  179. package/dist/worker/entry.js +72 -68
  180. package/docs/README.md +3 -2
  181. package/docs/architecture/acp.md +17 -0
  182. package/docs/architecture/artifact-placement.md +1 -0
  183. package/docs/architecture/artifact-versions.md +2 -2
  184. package/docs/architecture/context-engine.md +4 -0
  185. package/docs/architecture/dispatch-typed-intent.md +1 -1
  186. package/docs/architecture/evidence-and-memory.md +1 -1
  187. package/docs/architecture/middleware-and-components.md +1 -1
  188. package/docs/architecture/model-catalog.md +21 -10
  189. package/docs/architecture/observability.md +19 -2
  190. package/docs/architecture/prompt-envelope-and-tools.md +17 -5
  191. package/docs/architecture/provider-adapter-cookbook.md +63 -0
  192. package/docs/architecture/safety-model.md +25 -22
  193. package/docs/architecture/tui-design.md +1 -1
  194. package/docs/guide/built-in-agents.md +25 -11
  195. package/docs/guide/commands-and-modes.md +18 -3
  196. package/docs/guide/configuration-and-targets.md +100 -10
  197. package/docs/guide/configuration-reference.md +17 -7
  198. package/docs/guide/environment-variables.md +4 -2
  199. package/docs/guide/installation-and-lifecycle.md +37 -4
  200. package/docs/guide/proactive-memory.md +66 -55
  201. package/docs/guide/skills-marketplace.md +18 -0
  202. package/docs/guide/tool-usage.md +78 -3
  203. package/docs/history/config-knobs-audit.md +2 -2
  204. package/docs/process/development-pipeline.md +40 -2
  205. package/docs/process/eval-runner.md +67 -3
  206. package/docs/process/git-commit-provenance.md +15 -0
  207. package/docs/process/release-cut-checklist.md +207 -0
  208. package/docs/process/scientific-validation.md +18 -17
  209. package/evals/behavioral-machinery-support.ts +1 -0
  210. package/evals/behavioral-machinery.yaml +1 -1
  211. package/evals/behavioral-model.yaml +3 -2
  212. package/package.json +2 -2
  213. package/skills/README.md +7 -5
  214. package/skills/coding/ast-grep/SKILL.md +101 -30
  215. package/skills/coding/ast-grep/evals.md +26 -0
  216. package/skills/coding/coding-standards/SKILL.md +47 -2
  217. package/skills/coding/coding-standards/evals.md +23 -0
  218. package/skills/coding/prototype/SKILL.md +87 -28
  219. package/skills/coding/prototype/evals.md +19 -0
  220. package/skills/coding/tdd/SKILL.md +80 -53
  221. package/skills/coding/tdd/evals.md +20 -0
  222. package/skills/context/context-handoff/SKILL.md +43 -2
  223. package/skills/context/context-handoff/evals.md +44 -0
  224. package/skills/context/context-prime/SKILL.md +45 -15
  225. package/skills/context/context-prime/evals.md +45 -0
  226. package/skills/git/branch-closeout/SKILL.md +132 -0
  227. package/skills/git/branch-closeout/evals.md +133 -0
  228. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  229. package/skills/git/file-ticket/SKILL.md +77 -63
  230. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  231. package/skills/git/file-ticket/evals.md +31 -26
  232. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  233. package/skills/git/fix-issue/SKILL.md +87 -64
  234. package/skills/git/fix-issue/evals.md +35 -31
  235. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  236. package/skills/git/resolve-merge-conflicts/SKILL.md +100 -51
  237. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  238. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  239. package/skills/git/ship/SKILL.md +103 -67
  240. package/skills/git/ship/assets/pr-template.md +21 -0
  241. package/skills/git/ship/evals.md +44 -28
  242. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  243. package/skills/git/worktree-create/SKILL.md +80 -50
  244. package/skills/git/worktree-create/evals.md +40 -33
  245. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  246. package/skills/git/worktree-merge/SKILL.md +112 -65
  247. package/skills/git/worktree-merge/evals.md +42 -34
  248. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  249. package/skills/planning/archify/SKILL.md +196 -0
  250. package/skills/planning/archify/evals.md +65 -0
  251. package/skills/planning/architecture/SKILL.md +61 -12
  252. package/skills/planning/architecture/evals.md +65 -0
  253. package/skills/planning/backlog/SKILL.md +130 -14
  254. package/skills/planning/backlog/evals.md +142 -0
  255. package/skills/planning/prd/SKILL.md +47 -6
  256. package/skills/planning/prd/evals.md +54 -0
  257. package/skills/planning/product-intent/SKILL.md +57 -2
  258. package/skills/planning/product-intent/evals.md +70 -0
  259. package/skills/planning/tech-spec/SKILL.md +53 -2
  260. package/skills/planning/tech-spec/evals.md +73 -0
  261. package/skills/registry.yaml +58 -50
  262. package/skills/remote.yaml +13 -0
  263. package/skills/research/arxiv-literature/SKILL.md +76 -18
  264. package/skills/research/arxiv-literature/evals.md +50 -0
  265. package/skills/research/experiment-protocol/SKILL.md +20 -1
  266. package/skills/research/experiment-protocol/evals.md +23 -0
  267. package/skills/research/scientific-debugging/SKILL.md +24 -1
  268. package/skills/research/scientific-debugging/evals.md +18 -0
  269. package/skills/research/scientific-modernization/SKILL.md +26 -1
  270. package/skills/research/scientific-modernization/evals.md +27 -0
  271. package/skills/skill-marketplace.json +63 -28
  272. package/skills/workflow/cut-it/SKILL.md +64 -5
  273. package/skills/workflow/cut-it/evals.md +101 -0
  274. package/skills/workflow/design-council/SKILL.md +112 -27
  275. package/skills/workflow/design-council/evals.md +161 -0
  276. package/skills/workflow/grill-me/SKILL.md +85 -10
  277. package/skills/workflow/grill-me/evals.md +153 -0
  278. package/skills/workflow/workflow-distiller/SKILL.md +76 -17
  279. package/skills/workflow/workflow-distiller/evals.md +118 -0
  280. package/src/cli/args.ts +0 -8
  281. package/src/cli/configure-interop.ts +105 -13
  282. package/src/cli/configure-oauth.ts +57 -0
  283. package/src/cli/configure-onboarding.ts +980 -0
  284. package/src/cli/configure-target.ts +594 -0
  285. package/src/cli/configure.ts +1084 -529
  286. package/src/cli/context-map.ts +114 -0
  287. package/src/cli/context.ts +4 -0
  288. package/src/cli/doctor-state-size.ts +1 -12
  289. package/src/cli/doctor-validation-contract.ts +28 -0
  290. package/src/cli/doctor.ts +5 -0
  291. package/src/cli/evidence-detail.ts +1 -75
  292. package/src/cli/evidence-inventory.ts +1 -167
  293. package/src/cli/index.ts +3 -0
  294. package/src/cli/lifecycle-presenter.ts +436 -0
  295. package/src/cli/models.ts +10 -2
  296. package/src/cli/modes/print.ts +5 -1
  297. package/src/cli/reset.ts +228 -106
  298. package/src/cli/run.ts +7 -4
  299. package/src/cli/select.ts +664 -0
  300. package/src/cli/skills.ts +9 -2
  301. package/src/cli/targets.ts +3 -0
  302. package/src/cli/tasks.ts +84 -0
  303. package/src/cli/uninstall.ts +233 -165
  304. package/src/cli/upgrade.ts +210 -150
  305. package/src/cli/usage.ts +92 -27
  306. package/src/cli/validate-model.ts +3 -3
  307. package/src/cli/verifiers.ts +147 -1
  308. package/src/cli/wiki-generate.ts +1 -0
  309. package/src/core/commit-attribution.ts +41 -1
  310. package/src/core/config.ts +56 -0
  311. package/src/core/external-diagnostic.ts +44 -0
  312. package/src/core/gateway-routing.ts +157 -0
  313. package/src/core/git-commit-attribution.ts +46 -3
  314. package/src/core/run-overrides.ts +0 -5
  315. package/src/core/safe-exec.ts +17 -2
  316. package/src/core/skill-activation.ts +92 -2
  317. package/src/core/tool-names.ts +5 -2
  318. package/src/domains/agents/builtins/architect.md +1 -1
  319. package/src/domains/agents/builtins/coder.md +1 -1
  320. package/src/domains/agents/builtins/documenter.md +1 -1
  321. package/src/domains/agents/builtins/git-master.md +1 -1
  322. package/src/domains/agents/builtins/provenance.md +7 -7
  323. package/src/domains/agents/builtins/tester.md +1 -1
  324. package/src/domains/agents/builtins/verifier.md +2 -2
  325. package/src/domains/agents/builtins/wiki-writer.md +4 -3
  326. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  327. package/src/domains/agents/catalog.ts +1 -1
  328. package/src/domains/agents/result-contract.ts +70 -0
  329. package/src/domains/context/extension.ts +31 -7
  330. package/src/domains/context/refresh.ts +3 -0
  331. package/src/domains/context/wiki/frontmatter.ts +5 -2
  332. package/src/domains/context/wiki/generate.ts +6 -0
  333. package/src/domains/context/wiki/map-seed.ts +589 -0
  334. package/src/domains/context/wiki/plan.ts +2 -2
  335. package/src/domains/context/wiki/prompts.ts +43 -0
  336. package/src/domains/dispatch/active-route-planner.ts +4 -0
  337. package/src/domains/dispatch/admission.ts +29 -0
  338. package/src/domains/dispatch/agent-candidates.ts +10 -0
  339. package/src/domains/dispatch/budget-envelope.ts +86 -1
  340. package/src/domains/dispatch/capability-match.ts +1 -0
  341. package/src/domains/dispatch/capacity-lease.ts +17 -0
  342. package/src/domains/dispatch/code-step.ts +11 -4
  343. package/src/domains/dispatch/contract.ts +42 -8
  344. package/src/domains/dispatch/execution-scheduler.ts +2 -0
  345. package/src/domains/dispatch/extension.ts +184 -56
  346. package/src/domains/dispatch/fleet-commit-attribution.ts +5 -0
  347. package/src/domains/dispatch/fleet-run.ts +1 -0
  348. package/src/domains/dispatch/host-verification.ts +114 -13
  349. package/src/domains/dispatch/intent.ts +28 -18
  350. package/src/domains/dispatch/orphan-recovery.ts +2 -0
  351. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  352. package/src/domains/dispatch/reservation-store.ts +5 -3
  353. package/src/domains/dispatch/state.ts +15 -2
  354. package/src/domains/dispatch/types.ts +20 -2
  355. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  356. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  357. package/src/domains/eval/metrics/token-stream.ts +201 -31
  358. package/src/domains/eval/metrics/tracked.ts +40 -4
  359. package/src/domains/eval/runners/clio-run.ts +17 -11
  360. package/src/domains/eval/runners/context-index.ts +2 -7
  361. package/src/domains/eval/runners/context-init.ts +3 -6
  362. package/src/domains/eval/runners/external-command.ts +29 -11
  363. package/src/domains/eval/schema/suite.ts +28 -0
  364. package/src/domains/eval/schema/verdict.ts +2 -2
  365. package/src/domains/eval/suites/resolve.ts +13 -1
  366. package/src/domains/eval/suites/run.ts +24 -3
  367. package/src/domains/evidence/build.ts +102 -15
  368. package/src/domains/evidence/detail.ts +69 -0
  369. package/src/domains/evidence/eval.ts +13 -1
  370. package/src/domains/evidence/finish-contract-map.ts +5 -1
  371. package/src/domains/evidence/inventory.ts +167 -0
  372. package/src/domains/evidence/store.ts +16 -0
  373. package/src/domains/evidence/types.ts +12 -0
  374. package/src/domains/extensions/resources.ts +7 -0
  375. package/src/domains/interop/registry.ts +6 -2
  376. package/src/domains/interop/types.ts +4 -0
  377. package/src/domains/lifecycle/migrations/index.ts +4 -0
  378. package/src/domains/memory/task-memory-policy.ts +70 -26
  379. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  380. package/src/domains/middleware/index.ts +0 -1
  381. package/src/domains/middleware/marketplace-offer.ts +22 -35
  382. package/src/domains/middleware/memory-intervention.ts +127 -32
  383. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  384. package/src/domains/middleware/runtime.ts +7 -3
  385. package/src/domains/middleware/skills-reminder.ts +31 -2
  386. package/src/domains/mux/detect.ts +3 -6
  387. package/src/domains/observability/accountability.ts +15 -1
  388. package/src/domains/observability/compaction-usage.ts +118 -0
  389. package/src/domains/observability/contract.ts +52 -7
  390. package/src/domains/observability/cost.ts +1 -1
  391. package/src/domains/observability/evidence-index.ts +10 -0
  392. package/src/domains/observability/extension.ts +15 -6
  393. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  394. package/src/domains/observability/projection.ts +394 -45
  395. package/src/{interactive → domains/observability}/worker-progress.ts +3 -3
  396. package/src/domains/prompts/fragments/operating/contract.md +2 -0
  397. package/src/domains/prompts/fragments/wiki/page.md +8 -0
  398. package/src/domains/providers/contract.ts +4 -1
  399. package/src/domains/providers/extension.ts +40 -9
  400. package/src/domains/providers/model-capabilities.ts +9 -0
  401. package/src/domains/providers/model-discovery.ts +3 -4
  402. package/src/domains/providers/model-runtime-capabilities.ts +15 -5
  403. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +48 -26
  404. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  405. package/src/domains/providers/runtimes/claude/claude-code.ts +9 -0
  406. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  407. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  408. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  409. package/src/domains/providers/support.ts +11 -5
  410. package/src/domains/providers/target-model-cache.ts +25 -2
  411. package/src/domains/providers/types/capability-flags.ts +2 -0
  412. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  413. package/src/domains/providers/types/target-descriptor.ts +19 -0
  414. package/src/domains/resources/index.ts +3 -0
  415. package/src/domains/resources/skills/install.ts +72 -7
  416. package/src/domains/resources/skills/loader.ts +7 -0
  417. package/src/domains/resources/skills/marketplace.ts +63 -11
  418. package/src/domains/safety/action-classifier.ts +7 -0
  419. package/src/domains/safety/autonomy.ts +15 -0
  420. package/src/domains/safety/default-path-policy.ts +2 -0
  421. package/src/domains/safety/finish-contract-registration.ts +29 -14
  422. package/src/domains/safety/finish-contract.ts +252 -40
  423. package/src/domains/safety/index.ts +21 -1
  424. package/src/domains/safety/path-policy.ts +1 -1
  425. package/src/domains/safety/policy-engine.ts +60 -17
  426. package/src/domains/safety/protected-artifacts.ts +191 -88
  427. package/src/domains/safety/rigor.ts +53 -39
  428. package/src/domains/safety/run-effects.ts +2 -22
  429. package/src/domains/safety/skill-authority.ts +55 -0
  430. package/src/domains/safety/validation-contract.ts +388 -0
  431. package/src/domains/session/archive-readers.ts +10 -1
  432. package/src/domains/session/compaction/compact.ts +72 -22
  433. package/src/domains/session/decision-board.ts +101 -2
  434. package/src/domains/session/entries.ts +50 -7
  435. package/src/domains/session/extension.ts +4 -4
  436. package/src/domains/session/handoff.ts +2 -1
  437. package/src/domains/session/manager.ts +2 -3
  438. package/src/domains/session/task-board.ts +14 -1
  439. package/src/domains/session/tree/fork.ts +1 -2
  440. package/src/domains/session/tree/navigator.ts +1 -1
  441. package/src/domains/session/usage.ts +3 -3
  442. package/src/domains/user-tasks/acceptance.ts +56 -0
  443. package/src/domains/user-tasks/active-acceptance.ts +40 -0
  444. package/src/domains/user-tasks/store.ts +34 -3
  445. package/src/engine/acp/adapter.ts +24 -6
  446. package/src/engine/acp/server.ts +21 -4
  447. package/src/engine/acp/transport.ts +53 -8
  448. package/src/engine/acp/types.ts +4 -0
  449. package/src/engine/agent.ts +13 -3
  450. package/src/engine/ai.ts +26 -8
  451. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  452. package/src/engine/api-registry.ts +3 -0
  453. package/src/engine/apis/ollama-native.ts +15 -0
  454. package/src/engine/apis/openai-completions.ts +117 -14
  455. package/src/engine/claude/subprocess-runtime.ts +107 -60
  456. package/src/engine/external-subprocess.ts +122 -6
  457. package/src/entry/background-model-metadata.ts +18 -0
  458. package/src/entry/compaction-prompt.ts +57 -0
  459. package/src/entry/orchestrator.ts +416 -218
  460. package/src/entry/task-memory-lifecycle.ts +35 -0
  461. package/src/interactive/chat-loop-messages.ts +13 -4
  462. package/src/interactive/chat-loop.ts +65 -2
  463. package/src/interactive/chat-renderer.ts +1 -0
  464. package/src/interactive/cost-overlay.ts +26 -2
  465. package/src/interactive/dispatch-board.ts +46 -717
  466. package/src/interactive/fleet-run-preview.ts +2 -1
  467. package/src/interactive/interactive-application.ts +3 -2
  468. package/src/interactive/interactive-presentation.ts +55 -12
  469. package/src/interactive/interactive-slash-runtime.ts +4 -2
  470. package/src/interactive/oracle.ts +5 -2
  471. package/src/interactive/overlays/fleet-run-approval.ts +3 -2
  472. package/src/interactive/overlays/message-picker.ts +2 -2
  473. package/src/interactive/overlays/settings.ts +2 -2
  474. package/src/interactive/overlays/tree-selector.ts +2 -2
  475. package/src/interactive/renderers/branch-summary.ts +1 -1
  476. package/src/interactive/renderers/worker-entry.ts +32 -0
  477. package/src/interactive/slash-autocomplete.ts +4 -6
  478. package/src/interactive/slash-commands.ts +49 -45
  479. package/src/interactive/slash-spec.ts +28 -0
  480. package/src/interactive/theme/labels.ts +19 -13
  481. package/src/interactive/turn-context.ts +9 -5
  482. package/src/interactive/turn-recovery.ts +8 -0
  483. package/src/interactive/turn-runtime.ts +27 -11
  484. package/src/interactive/turn-state.ts +7 -0
  485. package/src/interactive/view/artifacts.ts +2 -0
  486. package/src/interactive/worker-receipts.ts +1 -0
  487. package/src/interactive/worker-stream.ts +13 -4
  488. package/src/tools/bootstrap.ts +4 -0
  489. package/src/tools/builtin-tool-catalog.ts +31 -0
  490. package/src/tools/compete-worktrees.ts +7 -1
  491. package/src/tools/context/index.ts +30 -9
  492. package/src/tools/core-bootstrap.ts +16 -0
  493. package/src/tools/decide.ts +136 -0
  494. package/src/tools/dispatch-admission.ts +21 -0
  495. package/src/tools/dispatch-arguments.ts +1 -0
  496. package/src/tools/dispatch-event-text.ts +10 -0
  497. package/src/tools/dispatch-plan.ts +6 -2
  498. package/src/tools/dispatch-runner.ts +27 -1
  499. package/src/tools/dispatch-types.ts +6 -0
  500. package/src/tools/evidence.ts +96 -0
  501. package/src/tools/limitation.ts +76 -0
  502. package/src/tools/policy.ts +9 -0
  503. package/src/tools/presentation.ts +3 -0
  504. package/src/tools/registry.ts +11 -5
  505. package/src/tools/result-shaping.ts +17 -5
  506. package/src/tools/task-worktree.ts +13 -3
  507. package/src/tools/tasks.ts +10 -1
  508. package/src/tools/verify/authoring.ts +170 -83
  509. package/src/tools/verify/catalog.ts +122 -5
  510. package/src/tools/verify/index.ts +2 -1
  511. package/src/tools/verify/numeric.ts +298 -0
  512. package/src/tools/verify/perf.ts +143 -0
  513. package/src/tools/verify/scripts.ts +229 -2
  514. package/src/tools/worker-evidence.ts +3 -1
  515. package/src/worker/spec-contract.ts +4 -0
  516. package/dist/chunk-2Z2IKEXI.js +0 -1554
  517. package/dist/chunk-RVG5JXAL.js +0 -41
  518. package/dist/chunk-T56WDKA5.js +0 -183
  519. package/dist/chunk-VN3SHNBN.js +0 -313
  520. package/dist/chunk-VPKWYKEY.js +0 -169
  521. package/dist/reset-OAQP3W4O.js +0 -230
  522. package/dist/uninstall-N34PCTGJ.js +0 -331
  523. package/dist/upgrade-PXK3S2YM.js +0 -325
package/CHANGELOG.md CHANGED
@@ -2,6 +2,104 @@
2
2
 
3
3
  All notable changes to Clio Coder are documented in this file. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and versions follow Semantic Versioning; pre-1.0 minor releases may include incompatible changes.
4
4
 
5
+ ## 0.4.4 - 2026-09-05
6
+
7
+ Trust spine: typed claims, executable validation, and decision provenance. Answers the NSF "Beyond Code" findings where the harness still trusted prose or sniffed files.
8
+
9
+ ### Added
10
+ - A Deno test validates that class tokens used across Workbench components exist in the stylesheet (#311).
11
+ - Lint holds `docs/guide/configuration-reference.md` against `DEFAULT_SETTINGS`: the new `configuration-reference` hygiene check fails when a settings key has no row in the settings-key table or a row names a key path the defaults no longer carry.
12
+ - The `limitation` tool records what a turn could not verify and why. The finish contract settles on a successful `limitation` receipt inside the same window as the mutation scan; the seven prose patterns that used to satisfy it are gone, so wording alone can no longer pass the gate. The tool is on the six mutating recipes, and the operating contract tells the model to call it.
13
+ - One strict loader for the version-1 scientific validation contract (`src/domains/safety/validation-contract.ts`), shared by rigor, `verifiers author`, doctor, and the startup hint. Rigor rises to `high` only when the contract parses; an invalid contract is diagnosed with the field and cap named, and `VALIDATION.md` is advisory prose that never raises rigor on its own.
14
+ - The `decide` tool records a design choice with the alternatives the model rejected and why, as an `origin: "agent"` decision-ledger entry beside operator `ask_user` answers. A repeat key supersedes the earlier agent decision; an operator decision is never overwritten by the model. Dispatch seals every active decision ref onto the run request, envelope, and receipt under integrity coverage, and Clio-controlled commits carry one `Clio-Decision: <interviewId>/<key>` trailer per ref from the receipt or the live board.
15
+ - Recorded decisions reach the surfaces that cite them. Evidence resolves a sealed receipt's `decisionRefs` against the linked session's active path, records the resolved arguments in `overview.json`, and raises a resolved or missing-reference finding per ref in both readable documents. Handoff and oracle briefings carry each decision's alternatives and rationale, and wiki page writers receive up to twelve active decisions matching their page's sources and cite the refs in the body and optional `decisions` frontmatter.
16
+ - The read-only `evidence` tool shares the CLI inventory and trust projections, with overview, findings, and verified gate decisions for provenance inspections. Provenance requires this tool, and Verifier can use it. Accountability reports unverified successful runs and ungrounded validation claims in `/view`, `clio-coder usage`, and the observability contract. Historical index rows contribute zero to the new counters when the required fields are absent.
17
+ - Verifier catalog version 2 adds two executable check kinds beside `command`. `numeric-compare` runs the command, parses its stdout as a JSON object of numbers or number arrays, and judges it against a repository-relative reference file under `relative`, `absolute`, or `ulp` tolerances (every named bound must hold; missing keys, shape and length mismatches, `NaN`, and infinity fail), reporting each key's worst deviation and the tolerance it failed. `perf-budget` judges the measured wall time against `budget: {wallTimeMs, tolerance?}` or a baseline that `clio-coder verifiers baseline <id>` records, reporting measured time, effective budget, and ratio. The `verify` tool and dispatch host verification both run the judgement and seal the report (`report` on the host-verification check, under receipt integrity); a failing judgement is a check failure with the report in the detail. Version 1 catalogs still load with every check as `kind: command`. `verifiers add` and `edit` take `--kind`, `--reference`, `--tolerance`, `--budget-ms`, `--budget-relative`, and `--baseline`; `verifiers author` lists an incomplete `numeric-compare` check for every validation-contract artifact that declares `numerical_tolerances`, with the command left for the operator.
18
+ - Operator tasks carry optional acceptance through repeatable `--expect` and `--verify` flags in the CLI and `/tasks add`. Shared dispatch normalizers validate paths and bounded checks, pickup persists required board evidence, and high rigor requires a passing receipt or a limitation naming each acceptance check.
19
+ - An opt-in `--strict` switch for `scripts/smoke-real-home.sh` causes the real-home release smoke to fail when doctor exits 1 on failing rows, while default runs continue to tolerate operator fleet state (#293).
20
+ - A current release-cut checklist in `docs/process/release-cut-checklist.md` and paired blueprint for maintainers to verify and publish releases (#298).
21
+ - ACP registry submission assets including `assets/acp-registry/agent.json` and `assets/acp-registry/icon.svg` with submission documentation in `docs/architecture/acp.md` (#314).
22
+
23
+ ### Changed
24
+ - Retry admission rebinds a held plan-reservation member under the async state-file lock, so a dispatch attempt waiting on the cross-process capacity lock yields the event loop instead of spinning in `Atomics.wait` (#319). Plan preparation still takes the synchronous lock because the tool registry's `prepareAdmissionArguments` hook cannot yield.
25
+ - Document that headless Antigravity reports permission_mode always-proceed under mode plan and sandbox, and that Clio grades enforcement as approximated (#281).
26
+ - The runs.json ledger carries version 1 on RunEnvelope records, treating legacy unversioned rows as version 1 and skipping records with any other version.
27
+ - Claude CLI workers now accept the built-in recipes. The `claude-code` runtime declares its external agent loop the way Antigravity does, so a recipe budget is admitted as `external-one-shot` with the per-tool count recorded as unobserved instead of refusing the dispatch. Claude Code CLI stays under Subscriptions in `configure --list` and keeps its `claude-cli` auth status; retries and orchestrator eligibility are unchanged (#280).
28
+ - The Claude Code CLI worker now uses the same hardened transport as the Antigravity worker. `claude` receives only the allowlisted environment instead of the whole process environment, so provider keys and Clio gates no longer reach it. The user turn travels on stdin rather than argv; system text remains in `--append-system-prompt`. The admitted `cwd` is honored and refused when it escapes the workspace root, stdout is read through the bounded line reader (1 MiB per line, 8 MiB total) and a violation ends the run as an error, and cancellation terminates the POSIX process group even when the immediate CLI exits before its descendants. Windows retains direct-child cancellation (#279).
29
+ - The dispatch board reads observability's run projection. One fold owns lifecycle events, worker progress, receipt trust, retries, cancellation, fleet positions, and evidence readiness; the board keeps ordering, selection, and rendering. Terminal status and accounting come from the same projection the observability contract publishes.
30
+
31
+ ### Fixed
32
+ - ACP permission cancellation now aborts the active turn before releasing parked tools, preventing an extra provider request while Workbench settles an unanswered approval (#341).
33
+ - The deterministic behavioral machinery suite declares the `default` target used by its dispatch fixture, so all 26 cases produce an artifact that `eval report` and self-comparison can load with strict execution provenance validation (#342).
34
+ - Compete respects a candidate receipt's effective read-only autonomy when finalizing work. Generated `.clio-coder/codewiki.json` and `.clio-coder/state.json` are excluded from writer staging and judge branch diffs even when the caller's `.gitignore` update is uncommitted or the runtime files were already staged. Authored edits, including tracked Clio project configuration, still commit and apply; unrelated staged and unstaged caller changes remain intact (#347).
35
+ - Host verification memoization and batch deduplication now include the check identity, kind, execution timeout, numerical tolerances, performance bounds, and reference or baseline contents. Different judgments cannot inherit an earlier pass, while identical valid checks retain evidence reuse and provenance (#333).
36
+ - Host numerical verification now judges bounded command stdout, matching ordinary verify. JSON diagnostics on stderr cannot supply a missing measurement or invalidate valid stdout; stderr remains available in the command artifact (#334).
37
+ - High-rigor task acceptance now requires validation evidence from the owning workspace. Verifier receipts retain declaration source and execution details, so a passing same-named examples check cannot satisfy a root check. Intended package and catalog checks, exact root package commands, and scoped limitation receipts remain supported (#335).
38
+ - Skills with an allowed-tools list, including coding-standards and the related coding workflows, can record the finish contract's limitation receipt. Explicit tool denials and restrictions on unrelated actions remain enforced (#336).
39
+ - Slash argument completion now reads loaded agent recipes, configured targets and known models, installed skills, and session tasks from the interactive app contracts (#303).
40
+ - Workbench desktop notification mute preference now persists in local storage across page reloads (#322).
41
+ - ACP close and reopen starts a fresh conversation on the same child process, clearing provider history and turn ancestry while switching the task board to the new session. Explicit session loading still restores the saved conversation and tasks (#312).
42
+ - Sessions without interactive ask_user now receive one passive marketplace reminder per matching skill per session, including its installation command, without starting an interview or recording a decline (#317).
43
+ - Setting interface.panes.enabled=embedded refuses with a visible reason instead of silently degrading to guest detection (#294).
44
+ - ACP production stdout now uses the bounded queue through its output guard, waits for drain before sending more frames, and closes with a typed error when stalled output exceeds the existing 1 MiB UTF-8 byte budget, including the first frame that stalls the stream (#309).
45
+ - Dispatch to a subprocess worker no longer fails at prompt compilation when the recipe offers the canonical `context` tool. The Claude CLI declares tool support, so `context` survived tool narrowing while the compiler correctly treated the subprocess surface as unattached, and every built-in recipe that lists `context` (architect, scout, oracle, researcher, and others) was refused with a `hasCanonicalContext` mismatch. The attached-context fact is now derived from the runtime kind, and bound skills are neither promised in the prompt nor stamped on the worker spec for a runtime that never receives Clio's tools.
46
+ - Ollama eviction now releases only models this Clio process successfully pinned on the same server, preserving models loaded by operators or other clients (#313).
47
+ - Deprecation warnings for the legacy lmstudio-native runtime id now route through warnLegacyNaming, reporting the planned v0.7.0 removal and deduping per process.
48
+ - Fleet run preview diagnostics and approval overlays now format cost totals through the shared formatter so amounts at or above one cent render with two decimals instead of four.
49
+ - Default path policy now marks project and user skill roots read-only for workers and the orchestrator, alongside the existing skill-authority guard; operator installs continue through the CLI (#300).
50
+ - Scratch offload sweeps now report non-ENOENT filesystem errors in a skipped count instead of silently swallowing them.
51
+ - Model discovery no longer treats target status with an undefined model source as a live catalog.
52
+ - The upgrade command now gates test seams behind NODE_ENV=test so testing environment variables are ignored in production.
53
+ - Marketplace offer reminders now collapse catalog descriptions to one line, strip square-bracketed directive markers, and cap description text at 200 characters (#316).
54
+ - Damage-control no longer treats command quotations in `dispatch` and `tasks` prose as shell execution. Execute-class calls still use the same blocked command patterns (#286).
55
+ - Doctor state storage inspection now shares the lifecycle presenter byte formatting helper instead of keeping a private copy with differing units, printing consistent byte sizes across doctor, reset, and uninstall.
56
+ - The `coding-standards` skill (0.4.0) declares an `allowed-tools` surface again (`read`, `grep`, `find`, `ls`, `code_nav`, `bash`, `write`, `edit`) instead of no narrowing at all, so a solo run can both read and write code.
57
+ - ACP delegation usage now carries `totalTokens` and `costUsd`, merged with the same rule the ACP server uses: an explicit total or cost from the peer is taken as reported, otherwise the total is the sum of input, output, and cache tokens and the cost stays 0.
58
+ - The dispatch typed-intent reason-code table now documents `legacy_scope_inferred` as the warn that `path-scope.ts` emits when prose inference resolves a leading `../` run against the dispatch root, instead of calling it an unemitted compatibility id.
59
+ - The `muse-glimmer-30b` catalog notes, runtime preference, and guidance now say the reasoning strength dial is driven per request through `chatTemplateKwargs.byLevel` on llama.cpp and reported as undeliverable on LM Studio, instead of claiming no per-request field exists.
60
+ - `clio-coder eval run` spawns a `clio-coder-run` task as an argv instead of a `sh -c` line, so the task deadline reaches the Clio process itself and the exit code the runner reports is Clio's own. Through dash the shell stayed the parent: the deadline's SIGTERM stopped the shell while Clio finished the turn, wrote its report artifact, sealed a succeeded receipt with exit 0, and exited 0, and the item was recorded as `runner_failed` beside an ok receipt with `receipt.outcomeMatchesExit` false. A run the deadline reaches is now canceled, and its receipt records the cancellation with the exit status the runner reports. The SIGKILL grace after that SIGTERM is five seconds, long enough for Clio's coordinated shutdown to seal the interrupted run's receipt. The context-init and context-index eval runners now spawn through the same argv form. (#275)
61
+
62
+ ### Removed
63
+ - Retired slash command hints for former command spellings are removed so unrecognized commands fall through to the standard unknown command error.
64
+ - The unused `--kv-cache-mode` command-line flag and its run override field are removed because no runtime reads them.
65
+
66
+ ## 0.4.3 - 2026-09-05
67
+
68
+ This release adds Archify architecture maps and experimental Antigravity research delegation, and tightens thinking controls, session memory, compaction and execution evidence. Usage and cost reports retain explicit coverage limits; full evidence reconciliation is deferred to v0.4.5 or later.
69
+
70
+ ### Added
71
+ - Remote marketplace entries. `skills/remote.yaml` lists skills whose content lives in another repository at a pinned ref; `npm run skills:pin` publishes each into `skills/skill-marketplace.json` with `origin: "remote"`, the upstream tree as `sourceUrl`, the catalog `overlay` package whose files land on top of the clone at install, and the upstream top-level members to `exclude`. The overlay `SKILL.md` is pinned in `skills/registry.yaml`, so `skills:check` fails on its drift. Install stages the fetched tree, applies the exclusions and the overlay, validates the shaped result, and swaps it in atomically; discovery lets an overlay-bearing index entry win over its own catalog folder, and `clio-coder skills update` re-applies the same shaping. Contract: `tests/contracts/skill-remote-entries.test.ts`.
72
+ - The `archify` skill (`skills/planning/archify/`), a remote entry pinned to `tt-a1i/archify` v2.16.0: validated interactive architecture, workflow, sequence, dataflow, and lifecycle diagrams as standalone HTML from a typed JSON spec. Clio ships only the wrapper `SKILL.md` and `evals.md`; the renderer, schemas, and brand-mark notices come from upstream at install time and never enter the npm tarball. The wrapper adds Clio's placement rule (`.clio-coder/artifacts/maps/`), the repository-evidence flow through `clio-coder context map`, and `verify(check="frontend")` after `deliver`, and omits upstream's update-awareness step because it performs a network request during a chat turn.
73
+ - `clio-coder context map [--out <path>] [--json]` writes an archify architecture seed from the codewiki index with no model call: components are the largest directory areas (capped at 12, plus at most three external packages), connections are import edges collapsed area to area, and `meta.repository` is recorded only for a GitHub origin at a full revision; only then do components carry `sources`, each citing an indexed file and its first symbol's line, since archify accepts citations only against a pinned revision. Placement is layered with explicit routes for archify's standard profile; composition warnings may still need operator edits. Pass `--repo-root .` when the seed carries pinned repository evidence. It refuses, naming `clio-coder context index`, when no index exists. Contract: `tests/contracts/context-map-seed.test.ts`.
74
+ - `.clio-coder/artifacts/maps/` is a placement class (human transient) in `docs/architecture/artifact-placement.md`; `docs/guide/skills-marketplace.md` documents remote entries and overlays with archify as the worked example, and `docs/architecture/context-engine.md` documents the seed's guarantees.
75
+ - A distinct, permanently read-only `world-knowledge` shadow agent handles current open-world discovery, ecosystem comparisons, broad external context, and advisory second opinions. Its compact result contract separates supported facts and source identifiers from synthesis, uncertainties, and follow-up verification, and it reports honestly when native discovery/search is unavailable instead of treating URL retrieval as search or fabricating citations.
76
+ - Reusable `branch-closeout` Git skill (`skills/git/branch-closeout/`) for proving merged work on canonical remotes, inspecting dirty or ignored worktree state, safely removing registered worktrees through Git, deleting local branches, optionally removing contributor fork branches, and auditing surviving repository references.
77
+ - The trace viewer shows each run's `source` (`dispatch` or `session`) as a small badge beside the run id on the run list and beside the status on the run page, matching the SOURCE column `clio-coder trace runs` already prints. The list filter matches the badge text, so typing `session` narrows the list to interactive turns. A mirror whose rows carry no `source` field renders no badge. Contract: `apps/trace-viewer/tests/client-smoke.test.mjs`. (#289)
78
+
79
+ ### Changed
80
+ - The local and hosted CI gate checks skill pins once through lint, removing the duplicate explicit pass. The full contract/smoke, trace-viewer and release-package checks remain in place; contributor guidance distinguishes focused checks from the complete release gate.
81
+ - The existing `context.compaction.model` and `context.compaction.systemPrompt` overrides now take effect. An explicit model must uniquely resolve to an available, eligible summary route; invalid choices fail visibly instead of silently using chat. Custom UTF-8 prompt files are reread at compaction time, must be nonempty regular files of at most 65,536 bytes, and resolve relative paths against the session workspace. Unset controls retain the active chat route and built-in prompt; checkpoints record the selected usage route while older checkpoints remain readable (#324).
82
+ - Antigravity external delegation remains experimental and now uses a bounded external-agent subprocess boundary: it is dispatch-only, uses the operator's existing `agy` session, sends literal prompts over structured stdin, accepts only a valid one-terminal stream, bounds and redacts all external output, runs with an allowlisted environment, cancels the POSIX process group, and attributes receipts to external delegation rather than the Gemini API. Its non-generating live `{id,label}` catalog is authoritative and round-trips through the generic model snapshot; failures distinguish missing CLI, sign-in, required CLI update, unavailable catalog, and disappeared configured models. Clio records per-tool recipe budgets as unobserved/not enforced inside the external one-shot loop and never automatically retries a generating run.
83
+ - First-run onboarding can offer **Antigravity CLI — experimental local delegation** only after a valid primary target exists. The optional step never changes chat/background pointers or enables dangerous full access; it can create a `world-knowledge-external` fleet profile and bind `world-knowledge`. Noninteractive `configure` gains `--bind-agent <agentId>` alongside `--agent-profile`, and model/target listings preserve live labels and source/freshness.
84
+ - Hardened the entire Git skill suite under `skills/git/` (`file-ticket`, `fix-issue`, `ship`, `worktree-create`, `worktree-merge`, `resolve-merge-conflicts`). Added formal argument contracts with structural parsing; made workflow bodies project-agnostic without hardcoding repos, remotes, or branch names while preserving the canonical-main-only policy in `CONTRIBUTING.md`; required confirmation before every outward ticket action including duplicate issue comments; decoupled unsupported RCA automation claims from `fix-issue`; separated `ship` into explicit `commit`, `pr`, maintainer-local, and `closeout` modes; corrected rebase ours/theirs reversal semantics and added conflict matrices covering binary, rename, modify/delete, and lockfile conflicts; supported configurable roots, safe path derivation, and strategy controls in worktree operations; and expanded evals across all skills.
85
+ - Branch and worktree closeout is now an explicit final development step: prove the merged result, inspect local state, remove registered worktrees through Git, delete local scaffolding, and report every surviving branch, stash, local-only tag, and canonical remote head. The canonical repository keeps only `main`: maintainer topic and compact release-candidate branches such as `v043` stay local, contributors submit branches from their forks, and dotted names such as `v0.4.3` are reserved for immutable release tags.
86
+ - Every catalog SKILL.md that describes headless `ask_user` now states the same behavior the `clio-coder run` help text does: the tool is not registered, so any call is refused as an unregistered tool rather than answered. Fifteen skills take a patch bump for the correction.
87
+
88
+ ### Fixed
89
+ - Dedicated memory, compaction and native worker admission now discover cold LiteLLM target metadata before resolving thinking controls; sharing a gateway URL with chat no longer hides a missing target probe. Memory keeps discovery within its existing cancellation/deadline boundary, rechecks known endpoint capacity at actual launch, and does not turn cancelled metadata into endpoint failure. Compaction now sends its intended thinking-off request through the simple stream API. Workers keep their approved route and reservation while discovery runs within the invocation's cancellation and admission deadline; late cancelled metadata cannot launch a worker. Unknown runtime declarations remain unguessed.
90
+ - Failed or empty compaction now retains known per-stream usage in the existing out-of-turn ledger, including a successful first stream before a failed or empty second split response. Rows retain the originating session and selected route, distinguish completed/error/aborted calls, and keep missing or ambiguous zero usage unknown. For completed compactions, the checkpoint remains the sole durable accounting source; checkpoint-write ambiguity fails visibly without speculative double counting. Usage reports expose known and errored subtotals with missing coverage, and live successful accounting follows the selected compaction route. Adapter prices remain estimates, and existing numeric cost ceilings bound known spending only. Usage reports read the retained failed-compaction records; eval totals and live /cost reseeding do not yet reconcile that out-of-turn store.
91
+ - Thinking controls now survive LiteLLM parameter filtering for declared upstream runtimes. Unanimous per-alias LM Studio metadata selects its explicit off effort, while llama.cpp keeps template controls; only a legitimately resolved effort is added to the gateway request allowance. Gateway routing, authentication and residency stay unchanged, unknown/mixed declarations are not guessed, and returned reasoning is not hidden. Qwen3.8 exposes off/low/medium/xhigh; released high/max choices normalize to xhigh without changing saved preferences or confusing the vendor template default with Clio defaults.
92
+ - Proactive memory prefers its dedicated configured route and can use the active chat model when that route is unavailable, including a shared reasoning model with thinking requested off. A dedicated client error permits one fallback within the original remaining deadline; cancellation, scope changes, timeouts and model output do not trigger retries. Known usage and telemetry remain separate for each attempted route. Memory now consults existing endpoint capacity evidence and observed foreground/dispatch occupancy instead of treating every shared URL as a busy one-slot server; LiteLLM retains gateway routing authority. Unset memory roles stay rules-only, and fallback selection does not change saved settings.
93
+ - Context map seeds now keep distinct directory areas, external packages, and connections identifiable when readable IDs collide. Collision suffixes preserve other existing readable IDs, and internal and external imports with matching names retain their own destinations and counts.
94
+ - Active project and user skill trees now remain operator-owned for both main-agent and worker tool admissions, including full-auto. Direct mutations, recognized shell mutation and Clio installation commands (including `skills sync` and confirmed `library add --yes` with skill dependencies), ancestor deletion, and current symlink aliases are refused even when general default path protections are disabled. Literal shell comments and redirection targets cannot masquerade as help/version arguments to bypass that guard. Quoted search patterns remain read-only, and literal operator filenames do not hide later mutation operands. Unconfirmed library plans remain available. Marketplace matches now require the existing bound operator answer before installation at every autonomy level; operator CLI, hub and slash installation/update workflows remain available. Draft skills outside active roots. Shell command inspection remains a bounded guard rather than an operating-system sandbox; arbitrary programs, dynamic expansions, aliases and concurrent filesystem changes still require supervision (#300).
95
+ - Native session and eval call timing now starts before each provider stream invocation, so TTFT and API duration include the request's wait for response headers and later tool-loop calls have their own clocks. Empty output does not manufacture TTFT. Historical timing values remain unchanged; stdout-only fallback timing still starts at the provider's message-start event and must not be compared as complete request latency.
96
+ - Eval now exposes observed provider terminal reasons, retry phases, and errored-call known usage subtotals for opt-in health gates (#278). Known failed-call spend stays in total accounting, and repeated retry countdown frames do not inflate attempt counts. Missing, partial, or ambiguous all-zero failed usage remains explicitly incomplete; stream cost can reflect adapter pricing and does not certify billing. Recovered tasks keep the existing default pass policy, and retries hidden inside a runtime remain unobserved. Reported failed reasoning remains separate from output/total tokens; an ambiguous adapter estimate is not promoted to provider-reported usage.
97
+ - Completed parallel dispatch receipts keep their sealed ledger status while finalization waits for durable persistence. Heartbeat reconciliation no longer regresses a finished run to running, stale, or dead during ledger lock contention; active workers still receive normal stall detection. Batch host checks and receipt digest verification retain their existing semantics.
98
+ - Eval first-call TTFT now reports `{ value: null, source: "estimated" }` when timing is absent, preserving a measured zero as `{ value: 0, source: "ledger" }`. The first call is selected by its recorded timestamp across session ledgers. Stream fallback measures only observed output after a call start and leaves missing timing absent. Verdict consumers must handle nullable TTFT; historical numeric artifacts remain readable without rewriting (#277).
99
+ - Headless runs that recover from a provider failure with a successful tool-only artifact completion no longer retain the earlier error and fail evaluation despite producing the required artifact. Terminal errors, failed artifacts, cancellation, and shutdown still fail truthfully; recovered runs retain their failure history and reported spend (#275).
100
+ - Transient task memory and its observer state now reset on explicit session and branch switches, including same-session `/tree` navigation. Late background completions cannot mutate the successor bank, deliver reminders, or propose durable memory. Reported usage keeps its originating session identity without inflating the successor's live cost. Ordinary forward turns and compaction retain continuity; abort-ignoring transports may still finish, but their stale content is discarded (#323).
101
+ - Eval tracked token and model-call totals no longer double-count assistant calls recorded by both the native runner's session ledger and stdout fold (#276). Tracked metrics prefer durable assistant-call facts, including timing and cache provenance, and fall back to stream calls when no durable calls exist; durable compaction and tool records remain included. Compaction usage intentionally makes tracked totals differ from stdout-only totals. Artifacts record source counts and warn when observed counts differ or an external runner mixes sources. Partial or mixed ledgers can still omit stream-only calls, and fork-inherited history is not reconciled: no shared call identity proves overlap or complete coverage, so these cases must not be treated as reconciled run totals. Full reconciliation across session, stdout, fork and out-of-turn evidence is deferred to v0.4.5 or later. This release exposes count-based diagnostics but does not automatically reject cost or efficiency comparisons on incomplete evidence.
102
+
5
103
  ## 0.4.2 - 2026-09-02
6
104
 
7
105
  ### Added
package/CONTRIBUTING.md CHANGED
@@ -32,12 +32,21 @@ Local and GitHub PR gate (fast, deterministic):
32
32
  npm run ci
33
33
  ```
34
34
 
35
+ This runs type checking, lint (including boundaries, documentation drift and
36
+ skill pins), one build, the contract/smoke suite, and the trace-viewer suite.
37
+ Use `npm run skills:check` when checking skill pins on their own; it is already
38
+ included in `lint` and `ci`.
39
+
35
40
  Release gate (for maintainers before tags or release artifacts):
36
41
 
37
42
  ```bash
38
43
  npm run ci:release
39
44
  ```
40
45
 
46
+ The release gate includes `ci` and adds the package audit. Running `ci` again
47
+ on the same unchanged tree is unnecessary. Run a focused regression while
48
+ developing a repair, then the full gate for the candidate being reviewed.
49
+
41
50
  Live provider validation (manual/opt-in, after `npm run build`):
42
51
 
43
52
  ```bash
@@ -74,22 +83,34 @@ below together with `.github/workflows/release.yml` and
74
83
  [v0.4.1 release-cut checklist](docs/history/release-cut-checklist.md) is a
75
84
  historical record, not a reusable current checklist.
76
85
 
77
- 1. During development, keep the top changelog section at `## Unreleased` and
78
- bump `version` in `package.json` when opening the release branch. Before the
79
- cut, retitle that section `## <version> - YYYY-MM-DD`.
80
- 2. Run `npm run ci:release`. It runs the full `ci` gate, then
81
- `scripts/check-release.mjs`, which verifies the built `dist/` and audits
82
- the exact npm package contents.
83
- 3. Land the release commit on `main`. There is no need to wait on the `ci`
84
- workflow before tagging: the release workflow runs the same gate itself.
85
- 4. Tag and push: `git tag -a vX.Y.Z && git push origin vX.Y.Z`. The tag must
86
- match `package.json`'s version; the release workflow refuses mismatches.
87
- 5. `.github/workflows/release.yml` verifies the tag against `package.json`,
88
- runs `npm run ci:release` on the tagged tree, and creates the GitHub
89
- release with the tarball attached and the version's `CHANGELOG.md` section
90
- as the body. It does not publish to npm.
91
- 6. A maintainer publishes from the tagged commit with `npm publish`;
86
+ 1. During development, keep the top changelog section at `## Unreleased`. A
87
+ maintainer collects release work on a **local-only** compact candidate
88
+ branch (`v043` for `v0.4.3`) and bumps `version` there. Never push this
89
+ candidate branch to the canonical repository. Before the cut, retitle the
90
+ changelog section `## <version> - YYYY-MM-DD`.
91
+ 2. Run `npm run ci:release` on the exact candidate. It runs the full `ci` gate,
92
+ then `scripts/check-release.mjs`, which verifies the built `dist/` and
93
+ audits the exact npm package contents.
94
+ 3. Fetch `origin`, require the fetched `origin/main` to be the candidate's
95
+ ancestor, then fast-forward local `main` with `git merge --ff-only v043`.
96
+ Re-run the release gate if the candidate changed and verify local `main`
97
+ equals the reviewed candidate SHA.
98
+ 4. Fetch once more and stop on unexpected movement. With explicit maintainer
99
+ authorization, push only `refs/heads/main:refs/heads/main`; no topic or
100
+ release-candidate branch is pushed to canonical `origin`.
101
+ 5. Require CI for that exact `main` SHA to pass. Create the annotated tag on
102
+ that commit and push only it: `git tag -a v0.4.3` followed by
103
+ `git push origin refs/tags/v0.4.3`. The tag must match `package.json`; the
104
+ release workflow refuses mismatches.
105
+ 6. `.github/workflows/release.yml` verifies the tag against `package.json`,
106
+ runs `npm run ci:release` on the tagged tree, and creates the GitHub release
107
+ with the tarball attached and the version's `CHANGELOG.md` section as the
108
+ body. It does not publish to npm.
109
+ 7. A maintainer publishes from the tagged commit with `npm publish`;
92
110
  `prepublishOnly` runs the same `ci:release` gate in release mode first.
111
+ 8. Verify the release and tag, then delete the local compact candidate branch.
112
+ The canonical remote returns to its steady state: `main` plus immutable
113
+ release tags and GitHub releases, with no release branch.
93
114
 
94
115
  What `scripts/check-release.mjs` enforces, and how to respond when it fails:
95
116
 
@@ -105,7 +126,7 @@ What `scripts/check-release.mjs` enforces, and how to respond when it fails:
105
126
  - Runtime resources must resolve from the installed package root: prompt
106
127
  fragments, builtin agents, model catalogs, the Markdown guides in `docs/`, the 128px logo,
107
128
  and `damage-control-rules.yaml`. A new runtime resource must be listed in
108
- both package.json `files` and the required list in `check-release.mjs`.
129
+ both package.json `files` and `scripts/release-manifest.json`.
109
130
  The double bookkeeping is deliberate: neither edit can silently drop a
110
131
  resource the CLI needs at runtime.
111
132
  - Size budgets: 10 MB tarball, 50 MB unpacked, set in `check-release.mjs`.
@@ -122,14 +143,22 @@ that needs them runs.
122
143
 
123
144
  ## Hard Rules
124
145
 
125
- 1. Do not push to `main`.
126
- 2. Open pull requests against `main`.
127
- 3. `main` requires review by `@akougkas`.
146
+ 1. The canonical repository's only branch is `main`. Maintainer topic,
147
+ integration, and release-candidate branches stay local and are never pushed
148
+ to canonical `origin`.
149
+ 2. Contributors push topic branches to their own forks and open pull requests
150
+ from the fork into canonical `main`; they never push a topic branch to the
151
+ canonical repository.
152
+ 3. A maintainer may update canonical `main` only by an explicitly authorized,
153
+ reviewed fast-forward from the exact locally gated candidate. Everyone else
154
+ changes `main` through a pull request reviewed by `@akougkas`.
128
155
  4. Keep every PR focused. Split unrelated docs, runtime, CLI, and TUI work.
129
156
  5. Update `CHANGELOG.md` for user-visible behavior, developer workflow, or
130
157
  release status changes.
131
158
  6. Run `npm run ci` before requesting review.
132
159
  7. Do not commit secrets, local config, generated `dist/`, or scratch plans.
160
+ 8. Push release tags as fully qualified `refs/tags/vX.Y.Z`; never push a
161
+ similarly named branch.
133
162
 
134
163
  ## Architecture Invariants
135
164
 
@@ -170,6 +199,44 @@ Examples:
170
199
  - `fix/session-resume-replay`
171
200
  - `docs/github-governance`
172
201
 
202
+ Maintainer branches are local-only. A temporary release candidate uses the
203
+ compact version spelling with no dots: `v043` for release tag `v0.4.3`. Never
204
+ create or push a branch named `v0.4.3`; dotted `vX.Y.Z` names belong exclusively
205
+ to immutable release tags. The compact branch is local scaffolding and is
206
+ deleted after its reviewed commit reaches `main` and the release succeeds.
207
+
208
+ Contributors use the same topic prefixes in their own forks. The pull request
209
+ head is `<contributor-fork>:<topic>` and its base is canonical `main`. Delete
210
+ the fork branch after merge so both the canonical repository and contributor
211
+ forks return to a small steady state.
212
+
213
+ ### Branch closeout
214
+
215
+ Branch and worktree cleanup is part of finishing work, not optional future
216
+ housekeeping. Use `branch-closeout` (or `ship closeout`) to automate this
217
+ verification and teardown safely. After a PR is merged or a release is tagged:
218
+
219
+ 1. Fetch and prune remote-tracking refs, then verify the PR is merged and its
220
+ result is represented on `origin/main`. An ancestry check is sufficient for
221
+ merge commits; squash and cherry-pick landings require the merged PR and
222
+ resulting commit as evidence rather than a matching subject alone.
223
+ 2. Confirm the source worktree has no tracked or untracked work worth keeping.
224
+ Remove a registered worktree with `git worktree remove <path>`, never
225
+ `rm -rf`; use `--force` only after explicitly authorizing disposal of the
226
+ remaining local artifacts.
227
+ 3. Delete the local topic or release branch. For a contributor PR, delete its
228
+ branch from the contributor's fork after merge. A topic branch must never be
229
+ created on canonical `origin`, and canonical `main` is never deleted.
230
+ 4. Preserve unfinished experiments by filing their result and next decision in
231
+ an issue, not by accumulating anonymous `work/`, `wip/`, or `tmp` refs.
232
+ 5. Report the remaining local branches, worktrees, stashes, local-only tags,
233
+ and canonical remote heads. The expected canonical head set is exactly
234
+ `refs/heads/main`; every additional head is a cleanup failure.
235
+
236
+ For a release, first verify `refs/tags/vX.Y.Z^{commit}` equals the reviewed
237
+ commit on `main`, then close the compact candidate branch such as `v043`.
238
+ Published tags are never deleted, moved, or recreated during cleanup.
239
+
173
240
  ## Commits
174
241
 
175
242
  Use concise conventional subjects:
package/README.md CHANGED
@@ -138,7 +138,13 @@ The complete interactive and CLI reference is
138
138
  Clio stores each model connection as a named **target**: runtime, endpoint,
139
139
  model, credentials, and any verified capability overrides. Interactive chat,
140
140
  proactive memory, fleet defaults, and individual worker profiles can route
141
- independently.
141
+ independently. A LiteLLM target keeps the gateway in charge of physical routing,
142
+ authentication, and backend residency; distinct model routes can share one URL.
143
+ Set `context.memory.target` and `context.memory.model` to opt into a dedicated
144
+ memory model. Unset memory roles remain rules-only; a configured route can fall
145
+ back to active chat when unavailable and request capacity permits.
146
+ `context.compaction.model` selects a dedicated summary model; leaving it unset
147
+ uses active chat. An invalid explicit compaction model fails visibly.
142
148
 
143
149
  | Target family | Supported routes |
144
150
  | --- | --- |
@@ -147,7 +153,7 @@ independently.
147
153
  | Cloud APIs | OpenAI, Anthropic, Google, Groq, Mistral, DeepSeek, OpenRouter, Amazon Bedrock |
148
154
  | Institutional gateways | Argonne ALCF Sophia and Metis over Globus OAuth |
149
155
  | Subscriptions | ChatGPT Plus/Pro through `openai-codex`; Claude Pro/Max through `anthropic-max` |
150
- | Worker integrations | Claude SDK, Claude Code, Google Antigravity, and configured ACP agents |
156
+ | Worker integrations | Claude SDK, Claude Code, experimental Google Antigravity delegation, and configured ACP agents |
151
157
 
152
158
  The interactive wizard is the easiest path:
153
159
 
@@ -222,11 +228,24 @@ directory. See [Context Engine](docs/architecture/context-engine.md),
222
228
  [Proactive Memory](docs/guide/proactive-memory.md) for the detailed contracts.
223
229
 
224
230
  The local skills marketplace may offer a matching shipped skill during a
225
- request. Promotion installs are restricted to Clio's own catalog or this
226
- repository and do not activate the skill automatically. Manual installs remain
227
- available for a source you deliberately choose. See
231
+ request. Every promotion install requires an explicit bound operator answer,
232
+ including in full-auto. Promotion installs retain their catalog source gate,
233
+ and installation does not activate the skill. Active
234
+ project and user skill trees are operator-owned: main and worker tool admissions
235
+ refuse direct and recognized shell mutations. Draft skill changes outside those
236
+ roots, then use the operator's installation or update workflow. This bounded
237
+ command inspection does not confine arbitrary programs or dynamic shell paths.
238
+ Manual installs remain available for a source you deliberately choose. See
228
239
  [Skills Marketplace](docs/guide/skills-marketplace.md).
229
240
 
241
+ For a repository architecture map, run `clio-coder context index` followed by
242
+ `clio-coder context map`. The latter writes a deterministic JSON seed from the
243
+ index's directory areas and imports. The operator-installed `archify` remote
244
+ skill validates and delivers the interactive diagram; Clio ships its wrapper
245
+ and pinned install metadata, while the renderer comes from upstream. Source
246
+ citations require a pinned GitHub revision. Validation can still report
247
+ composition warnings that need human edits.
248
+
230
249
  ## Delegate with bounds
231
250
 
232
251
  Clio's orchestrator can send focused assignments to worker agents instead of
@@ -289,6 +308,16 @@ clio-coder trace phases <run-id>
289
308
  clio-coder trace tail <run-id>
290
309
  ```
291
310
 
311
+ `clio-coder usage report` preserves known failed-compaction spending and labels
312
+ missing coverage. Adapter prices are estimates, and numeric spending ceilings
313
+ bound the known sum; absent telemetry does not prove a call was free. Eval's
314
+ provider-health checks are opt-in and separate from task success. Partial or
315
+ mixed session/stdout evidence and inherited fork history are not reconciled;
316
+ full reconciliation is deferred to v0.4.5 or later, and 0.4.3 does not add an
317
+ automatic cost-comparison rejection. See the
318
+ [Eval Runner](docs/process/eval-runner.md#token-accounting--provenance) for source
319
+ and timing limits.
320
+
292
321
  Evidence helps you audit a run; it does not prove that generated code is
293
322
  scientifically correct. Domain validation, reference results, and human review
294
323
  remain part of the job. The detailed boundaries are in
@@ -354,7 +383,7 @@ clio-coder --version
354
383
  From source, pinned to this version:
355
384
 
356
385
  ```bash
357
- git clone --branch v0.4.2 https://github.com/iowarp/clio-coder.git
386
+ git clone --branch v0.4.4 https://github.com/iowarp/clio-coder.git
358
387
  cd clio-coder
359
388
  npm ci
360
389
  npm run install:local
@@ -6,32 +6,31 @@ import {
6
6
  } from "./chunk-2VTFPG5O.js";
7
7
  import {
8
8
  runClioCommand
9
- } from "./chunk-2HFQNRV3.js";
10
- import "./chunk-M2DAX4F6.js";
11
- import "./chunk-ZTJUVLTU.js";
9
+ } from "./chunk-UEPWCCTY.js";
10
+ import "./chunk-4WR7VSYB.js";
12
11
  import "./chunk-I7XBWTYH.js";
13
- import "./chunk-ZW55JB7N.js";
12
+ import "./chunk-3ODX73FK.js";
13
+ import "./chunk-ZTJUVLTU.js";
14
14
  import {
15
15
  printError
16
- } from "./chunk-VPKWYKEY.js";
17
- import "./chunk-5TSRNF4G.js";
18
- import "./chunk-34BHNEE3.js";
16
+ } from "./chunk-JCI2ROMZ.js";
17
+ import "./chunk-GHS5EBTQ.js";
19
18
  import "./chunk-D7E7WCDF.js";
20
- import {
21
- MAX_TIMER_DELAY_MS
22
- } from "./chunk-EBY63B7G.js";
23
19
  import "./chunk-IWHMRKLL.js";
24
20
  import "./chunk-UXCU4E3T.js";
25
21
  import "./chunk-LL4KHSZI.js";
26
22
  import "./chunk-S66XZJOF.js";
27
- import "./chunk-WNP7O5WZ.js";
23
+ import {
24
+ MAX_TIMER_DELAY_MS
25
+ } from "./chunk-EBY63B7G.js";
26
+ import "./chunk-ID64D7PE.js";
28
27
  import "./chunk-336NSSKI.js";
29
28
  import "./chunk-IKCO5N3L.js";
30
29
  import "./chunk-3I7MS7N2.js";
31
30
  import "./chunk-APJ265NV.js";
32
- import "./chunk-BYP5D4HI.js";
33
31
  import "./chunk-WEPFGWHJ.js";
34
32
  import "./chunk-YXLYO42X.js";
33
+ import "./chunk-BYP5D4HI.js";
35
34
  import {
36
35
  init_esm_shims
37
36
  } from "./chunk-3R73A4XB.js";
@@ -127,4 +126,4 @@ async function runAcpCommand(args, options = {}) {
127
126
  export {
128
127
  runAcpCommand
129
128
  };
130
- //# sourceMappingURL=acp-TMDQZDIG.js.map
129
+ //# sourceMappingURL=acp-WNAYYF4F.js.map
@@ -1,87 +1,90 @@
1
1
  import { createRequire as __clioCreateRequire } from "node:module"; const require = __clioCreateRequire(import.meta.url);
2
+ import "./chunk-JQLNNIKT.js";
3
+ import "./chunk-GWZNEVM2.js";
4
+ import "./chunk-5ICU3EUH.js";
5
+ import {
6
+ ConfigDomainModule,
7
+ loadDomains
8
+ } from "./chunk-72YIHOZQ.js";
9
+ import "./chunk-4WR7VSYB.js";
2
10
  import {
3
11
  SafetyDomainModule
4
- } from "./chunk-54ODD65L.js";
5
- import "./chunk-F2I26BDK.js";
6
- import "./chunk-DYHAXKHD.js";
7
- import "./chunk-QQLGQY2A.js";
12
+ } from "./chunk-5636DCO5.js";
8
13
  import {
9
- ensureClioState
10
- } from "./chunk-XQRY4DTA.js";
11
- import "./chunk-3KIPBMUA.js";
14
+ AgentsDomainModule
15
+ } from "./chunk-RZDWV63N.js";
16
+ import "./chunk-7UGL4MB5.js";
17
+ import "./chunk-DR52UMZW.js";
18
+ import "./chunk-ODGTEFFI.js";
19
+ import "./chunk-OEJSLEPW.js";
20
+ import "./chunk-RKKLTLYB.js";
21
+ import "./chunk-2ASED4PZ.js";
12
22
  import {
13
- ConfigDomainModule,
14
- loadDomains
15
- } from "./chunk-CYZW7JHJ.js";
23
+ ensureClioState
24
+ } from "./chunk-IGLP3ODT.js";
16
25
  import "./chunk-3M6DQK6S.js";
17
- import "./chunk-M2DAX4F6.js";
18
- import "./chunk-4O6MANBS.js";
19
26
  import "./chunk-LCGCVYZ4.js";
20
- import "./chunk-RVG5JXAL.js";
27
+ import "./chunk-2ZSONWVL.js";
28
+ import "./chunk-NDDGJUXD.js";
29
+ import "./chunk-YECAMM3D.js";
30
+ import "./chunk-V76WTFTW.js";
21
31
  import "./chunk-3DPEIQKN.js";
32
+ import "./chunk-TQAHXW6Y.js";
33
+ import "./chunk-5MEZN6CB.js";
34
+ import "./chunk-NEKRRTYW.js";
35
+ import "./chunk-JEIYHLOR.js";
36
+ import "./chunk-I7XBWTYH.js";
37
+ import "./chunk-3ODX73FK.js";
38
+ import "./chunk-4O6MANBS.js";
22
39
  import {
23
- AgentsDomainModule
24
- } from "./chunk-P75RZCJW.js";
25
- import "./chunk-CRFOIAX3.js";
26
- import "./chunk-DR52UMZW.js";
27
- import "./chunk-O3YUNJZ2.js";
28
- import "./chunk-NDDGJUXD.js";
29
- import "./chunk-XGDPUNND.js";
30
- import "./chunk-3F7VUY77.js";
31
- import "./chunk-RKKLTLYB.js";
32
- import "./chunk-HLAFFSEK.js";
33
- import "./chunk-77QIVUZB.js";
40
+ printError
41
+ } from "./chunk-JCI2ROMZ.js";
34
42
  import "./chunk-5PSMVOLM.js";
35
- import "./chunk-QSNYB6ZV.js";
36
- import "./chunk-QDC3K2U3.js";
37
- import "./chunk-IDNA72AH.js";
38
- import "./chunk-FVDGR2ZL.js";
39
- import "./chunk-VN3SHNBN.js";
40
- import "./chunk-FSP7CMNU.js";
41
- import "./chunk-HHV2GANA.js";
43
+ import "./chunk-6QOTUPRG.js";
44
+ import "./chunk-6Q3CYFD3.js";
42
45
  import {
43
46
  isUserVisibleAgent
44
- } from "./chunk-PGF63K6I.js";
45
- import "./chunk-IKOZFYBN.js";
46
- import "./chunk-UL3WSD3F.js";
47
+ } from "./chunk-KFV5L5SK.js";
48
+ import "./chunk-NXYCB2VD.js";
47
49
  import "./chunk-ECH6PKUQ.js";
50
+ import "./chunk-DXKJURES.js";
51
+ import "./chunk-HHV2GANA.js";
52
+ import "./chunk-GYV6VZOC.js";
53
+ import "./chunk-UL3WSD3F.js";
48
54
  import "./chunk-5B2AEOW5.js";
49
- import "./chunk-K6BSR66V.js";
50
- import "./chunk-XPLRXC72.js";
51
- import "./chunk-NEKRRTYW.js";
52
- import "./chunk-JWJGP5DQ.js";
53
- import "./chunk-I7XBWTYH.js";
54
- import "./chunk-ZW55JB7N.js";
55
- import {
56
- printError
57
- } from "./chunk-VPKWYKEY.js";
58
- import "./chunk-5TSRNF4G.js";
59
- import "./chunk-72GZI5EV.js";
60
- import "./chunk-MQXIVJ35.js";
55
+ import "./chunk-QSNYB6ZV.js";
56
+ import "./chunk-54X7T7DK.js";
57
+ import "./chunk-I5FWO7L5.js";
58
+ import "./chunk-6XLNIQDB.js";
59
+ import "./chunk-4NSRCOYP.js";
60
+ import "./chunk-QDC3K2U3.js";
61
+ import "./chunk-2JH2WHGE.js";
62
+ import "./chunk-KXDSS5WJ.js";
63
+ import "./chunk-GHS5EBTQ.js";
64
+ import "./chunk-D7E7WCDF.js";
65
+ import "./chunk-HAXOFFRH.js";
61
66
  import "./chunk-R346GLFC.js";
62
- import "./chunk-PMZVFWSR.js";
63
67
  import "./chunk-BTK3SSSK.js";
64
- import "./chunk-IHXBNWMM.js";
65
- import "./chunk-34BHNEE3.js";
66
- import "./chunk-D7E7WCDF.js";
67
- import "./chunk-HJWWJ6IL.js";
68
+ import "./chunk-PMZVFWSR.js";
68
69
  import "./chunk-F4EKGO4N.js";
69
- import "./chunk-JIEGK6UF.js";
70
- import "./chunk-EBY63B7G.js";
71
- import "./chunk-6EJMN2Y3.js";
70
+ import "./chunk-XPLRXC72.js";
72
71
  import "./chunk-IWHMRKLL.js";
73
72
  import "./chunk-UXCU4E3T.js";
74
73
  import "./chunk-LL4KHSZI.js";
75
74
  import "./chunk-S66XZJOF.js";
76
- import "./chunk-WNP7O5WZ.js";
75
+ import "./chunk-TOIVGRUX.js";
76
+ import "./chunk-U6TMQNSI.js";
77
+ import "./chunk-EBY63B7G.js";
78
+ import "./chunk-6EJMN2Y3.js";
79
+ import "./chunk-ID64D7PE.js";
77
80
  import "./chunk-336NSSKI.js";
78
81
  import "./chunk-IKCO5N3L.js";
79
82
  import "./chunk-3I7MS7N2.js";
80
83
  import "./chunk-APJ265NV.js";
81
- import "./chunk-BYP5D4HI.js";
82
84
  import "./chunk-WEPFGWHJ.js";
83
85
  import "./chunk-NUGM5KR6.js";
84
86
  import "./chunk-YXLYO42X.js";
87
+ import "./chunk-BYP5D4HI.js";
85
88
  import {
86
89
  init_esm_shims
87
90
  } from "./chunk-3R73A4XB.js";
@@ -141,4 +144,4 @@ function renderLine(spec) {
141
144
  export {
142
145
  runAgentsCommand
143
146
  };
144
- //# sourceMappingURL=agents-5N5NG3XG.js.map
147
+ //# sourceMappingURL=agents-3OKXHLOI.js.map