@iowarp/clio-coder 0.4.1 → 0.4.2

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 (437) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +404 -472
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-TMDQZDIG.js} +7 -7
  6. package/dist/{agents-HYWGBGQR.js → agents-5N5NG3XG.js} +28 -28
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-Z5CCBXKQ.js} +8 -9
  9. package/dist/{builtins-UJLMOVOV.js → builtins-K6TNDT24.js} +4 -4
  10. package/dist/{chunk-GVQJ5CCZ.js → chunk-2HFQNRV3.js} +7 -7
  11. package/dist/{chunk-QMXC4JB7.js → chunk-2NHR3NAY.js} +163 -1401
  12. package/dist/chunk-2X4RYJTJ.js +39 -0
  13. package/dist/{chunk-Y45G3AXC.js → chunk-2Z2IKEXI.js} +6 -10
  14. package/dist/{chunk-EIMVLWB3.js → chunk-34BHNEE3.js} +7 -3
  15. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  16. package/dist/chunk-3EBYEESD.js +314 -0
  17. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  18. package/dist/{chunk-AP73CFDC.js → chunk-3KIPBMUA.js} +2 -2
  19. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  20. package/dist/{chunk-VEGN6WIQ.js → chunk-462T4EGZ.js} +2 -2
  21. package/dist/{chunk-AFKWHWXF.js → chunk-4JDLP6ZS.js} +33 -16
  22. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  23. package/dist/{chunk-AKB4GYDL.js → chunk-54ODD65L.js} +5 -5
  24. package/dist/{chunk-BBTJOK6Y.js → chunk-5KW52TEP.js} +3 -3
  25. package/dist/{chunk-6CCS4G3W.js → chunk-5PFYMY2V.js} +2 -2
  26. package/dist/chunk-77QIVUZB.js +1334 -0
  27. package/dist/{chunk-7OBGU7UB.js → chunk-7BHIY2MW.js} +7 -13
  28. package/dist/{chunk-3QSOM6PA.js → chunk-AZ4WMN4W.js} +2 -2
  29. package/dist/{chunk-6NJQITNH.js → chunk-B74PXLU7.js} +6 -3
  30. package/dist/{chunk-R23Z6K6I.js → chunk-B7HM5Z7T.js} +15 -15
  31. package/dist/{chunk-R32CLGZ6.js → chunk-BO7Y52RY.js} +81 -20
  32. package/dist/{chunk-UEDMSP56.js → chunk-BYMNWQ7O.js} +123 -148
  33. package/dist/{chunk-ZJLUDYFY.js → chunk-CRFOIAX3.js} +4 -4
  34. package/dist/{chunk-2NM363SV.js → chunk-CYZW7JHJ.js} +7 -7
  35. package/dist/{chunk-6HMJX2VU.js → chunk-DYHAXKHD.js} +38 -10
  36. package/dist/{chunk-THYWACCR.js → chunk-DZAW46HP.js} +3 -3
  37. package/dist/{chunk-FYUN5KZ3.js → chunk-DZEK6CJN.js} +17 -17
  38. package/dist/{chunk-3I5NY75V.js → chunk-E7GT7O5N.js} +5 -5
  39. package/dist/{chunk-VKFQTNDV.js → chunk-F2I26BDK.js} +4 -4
  40. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  41. package/dist/{chunk-IXJT6DCX.js → chunk-FVDGR2ZL.js} +3 -3
  42. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  43. package/dist/{chunk-7EPLI7VL.js → chunk-HIICAHCJ.js} +2 -2
  44. package/dist/{chunk-E67WX76H.js → chunk-HKMD33FO.js} +29 -80
  45. package/dist/chunk-HLAFFSEK.js +360 -0
  46. package/dist/{chunk-UAPGZHYC.js → chunk-I64IFBLB.js} +9 -2
  47. package/dist/{chunk-XKA2ICR3.js → chunk-I66ZTYNP.js} +440 -175
  48. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  49. package/dist/{chunk-PVAMAVBB.js → chunk-IDNA72AH.js} +102 -2
  50. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  51. package/dist/{chunk-2VG7KLYV.js → chunk-IKSLQ4XV.js} +5460 -3241
  52. package/dist/{chunk-QKIFBZKT.js → chunk-IMXMHHMQ.js} +166 -25
  53. package/dist/{chunk-74YWRRU5.js → chunk-JBCS7CRR.js} +2 -2
  54. package/dist/{chunk-BDPT6GTK.js → chunk-JWJGP5DQ.js} +2 -2
  55. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  56. package/dist/chunk-KPXDY6QF.js +47 -0
  57. package/dist/{chunk-ABLSQ6JX.js → chunk-LJID3DYZ.js} +7 -1
  58. package/dist/{chunk-VKRH2TCS.js → chunk-M2DAX4F6.js} +2 -2
  59. package/dist/{chunk-6I5ILFOF.js → chunk-M2WXEHER.js} +2 -2
  60. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  61. package/dist/{chunk-N5UK64DP.js → chunk-MCMZMDAC.js} +2 -2
  62. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  63. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  64. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  65. package/dist/{chunk-HUAS7ITX.js → chunk-O3YUNJZ2.js} +13 -21
  66. package/dist/{chunk-MA3H6DM5.js → chunk-P75RZCJW.js} +25 -3
  67. package/dist/{chunk-IG7BCQBA.js → chunk-PGF63K6I.js} +2 -2
  68. package/dist/chunk-PJX3WQUQ.js +42 -0
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-Q4XWMHX6.js} +4 -6
  70. package/dist/{chunk-OJTRZGR3.js → chunk-QQLGQY2A.js} +8 -8
  71. package/dist/{chunk-J4HBWF6Y.js → chunk-RLYRBIYQ.js} +115 -20
  72. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  73. package/dist/{chunk-C537JADH.js → chunk-SSEYRH53.js} +6 -7
  74. package/dist/chunk-SZAA6XDG.js +30 -0
  75. package/dist/{chunk-MOPSG2X7.js → chunk-TPEQIQIE.js} +6 -6
  76. package/dist/{chunk-JA5QWE4Z.js → chunk-UBRFI4HS.js} +1879 -1650
  77. package/dist/{chunk-BTGG6BG2.js → chunk-UH347SHR.js} +154 -15
  78. package/dist/{chunk-5YHDIDBP.js → chunk-UH632ZYL.js} +2 -2
  79. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  80. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  81. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  82. package/dist/{chunk-UXN6JT4W.js → chunk-W4YEMFBX.js} +2 -2
  83. package/dist/{chunk-TD3PGPQA.js → chunk-W6NIE6OW.js} +2 -2
  84. package/dist/{chunk-TVH4ONAM.js → chunk-X7IARSHT.js} +3 -3
  85. package/dist/{chunk-PJJ6MY27.js → chunk-XE3PCIXH.js} +3 -3
  86. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  87. package/dist/{chunk-SCYB3HA4.js → chunk-XOXV5GKE.js} +51 -16
  88. package/dist/{chunk-QTFGO774.js → chunk-XQRY4DTA.js} +24 -11
  89. package/dist/{chunk-BJGUKIG4.js → chunk-YJISEZKC.js} +2 -2
  90. package/dist/{chunk-GPPB3JBE.js → chunk-ZGNYYXQ6.js} +2 -2
  91. package/dist/{chunk-SINK3QR6.js → chunk-ZNT2M6TG.js} +7 -7
  92. package/dist/{chunk-7RY5VZPH.js → chunk-ZW4HH5JJ.js} +6 -6
  93. package/dist/cli/index.js +33 -32
  94. package/dist/{clio-IT3G3VQH.js → clio-7VB377CC.js} +7 -7
  95. package/dist/{code-nav-RK6S7F6E.js → code-nav-YVLCYA7V.js} +85 -17
  96. package/dist/{config-3QZRWZJF.js → config-4HVOS65E.js} +88 -43
  97. package/dist/{configure-FL7Y3KJF.js → configure-PIWO7B24.js} +10 -10
  98. package/dist/{context-5HE7ODYK.js → context-IYEHL3WQ.js} +33 -31
  99. package/dist/{context-XNHL75JV.js → context-KQYIWPWT.js} +47 -34
  100. package/dist/{context-KYQFRVDC.js → context-N6ZE3LGJ.js} +11 -11
  101. package/dist/{context-clear-N545L53A.js → context-clear-G4OGZJDS.js} +33 -31
  102. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-BWLF6LJP.js} +7 -7
  103. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-2QQAITS3.js} +38 -38
  104. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  105. package/dist/{doctor-ZGPEGHIP.js → doctor-LHBD36VU.js} +23 -22
  106. package/dist/{eval-GXLL44RD.js → eval-C45FYRJ6.js} +21 -20
  107. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-6DEJPLBF.js} +2 -2
  108. package/dist/{evidence-HWLBRH3Q.js → evidence-6SHONYAF.js} +30 -28
  109. package/dist/{evolve-FTZBMNVW.js → evolve-KRKMV72X.js} +30 -28
  110. package/dist/{extensions-VHRBEID7.js → extensions-KPZ2UHBB.js} +5 -3
  111. package/dist/{fleet-CKZHJWZJ.js → fleet-IVTCKDHT.js} +62 -61
  112. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-EDWL3IT7.js} +5 -5
  113. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-YP3YEFGK.js} +4 -4
  114. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-ZFWKHY2M.js} +16 -14
  115. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-FVUNCBML.js} +31 -29
  116. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-UN5XED4R.js} +2 -2
  117. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-XOWC4HSX.js} +17 -15
  118. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-UN3SODEL.js} +30 -28
  119. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-TWHJKCN6.js} +31 -29
  120. package/dist/{init-5XQRBOFV.js → init-T2QORQ3Y.js} +50 -49
  121. package/dist/{interop-34TVO25M.js → interop-IN5I2A66.js} +5 -5
  122. package/dist/{library-3QY6KF57.js → library-LSCATDLZ.js} +15 -13
  123. package/dist/{memory-L4UTIIIW.js → memory-HYOKAGGJ.js} +31 -29
  124. package/dist/{models-ZVX3QOWE.js → models-2GPMFYCM.js} +22 -21
  125. package/dist/{monitor-CEKVSYTS.js → monitor-E4ASVUJH.js} +34 -32
  126. package/dist/{orchestrator-77BAP6BC.js → orchestrator-DDMPR3PY.js} +984 -583
  127. package/dist/{panes-7STHOAUJ.js → panes-E3RUXOW5.js} +4 -4
  128. package/dist/{panes-SHAUIRXY.js → panes-IXKLOKA2.js} +23 -8
  129. package/dist/{reset-EOLM7GVE.js → reset-OAQP3W4O.js} +4 -4
  130. package/dist/{resources-74GKTLSF.js → resources-OTRSN34L.js} +15 -13
  131. package/dist/{run-HBAUJNNZ.js → run-5DEYH5QK.js} +60 -59
  132. package/dist/{share-G3APVLVP.js → share-IHWTLO3M.js} +19 -15
  133. package/dist/{skills-35HHUKCR.js → skills-IYMXMKW4.js} +17 -15
  134. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-DROHSJAR.js} +36 -36
  135. package/dist/{skills-inventory-J357J34F.js → skills-inventory-D7X4L4ZX.js} +15 -13
  136. package/dist/{slash-commands-JZZCQA32.js → slash-commands-QBM7UZ3B.js} +21 -18
  137. package/dist/{steer-XAVHJM22.js → steer-Z5DO23FJ.js} +2 -2
  138. package/dist/{targets-DSM6CY3M.js → targets-P2FUC4IL.js} +25 -28
  139. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-YREJ3JX2.js} +5 -5
  140. package/dist/{tools-MKNWVPBH.js → tools-5B7RO6MV.js} +4 -4
  141. package/dist/{trace-ECQ7TIYZ.js → trace-YMGMUM6A.js} +55 -7
  142. package/dist/{upgrade-H7TOM7YL.js → upgrade-PXK3S2YM.js} +11 -9
  143. package/dist/{usage-X52N3IDJ.js → usage-ME5MPXGX.js} +36 -34
  144. package/dist/{verifiers-EJTVVSMA.js → verifiers-BVZ7IWOO.js} +5 -5
  145. package/dist/{verify-YJL6XET2.js → verify-5K7ZKQFC.js} +4 -4
  146. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  147. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-F5W5QTYY.js} +48 -47
  148. package/dist/{with-panes-OBOBFIIR.js → with-panes-BYOJCLAM.js} +51 -255
  149. package/dist/worker/entry.js +45 -30
  150. package/docs/README.md +176 -81
  151. package/docs/{acp.md → architecture/acp.md} +36 -20
  152. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  153. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  154. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  155. package/docs/architecture/artifact-versions.md +90 -0
  156. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  157. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  158. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  159. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  160. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  161. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  162. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  163. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  164. package/docs/{observability.md → architecture/observability.md} +26 -13
  165. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  166. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  167. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  168. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  169. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  170. package/docs/architecture/time-conventions.md +125 -0
  171. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  172. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  173. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  174. package/docs/{built-in-agents.md → guide/built-in-agents.md} +50 -34
  175. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +65 -60
  176. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +227 -289
  177. package/docs/guide/configuration-reference.md +1158 -0
  178. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -28
  179. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  180. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  181. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  182. package/docs/{glossary.md → guide/glossary.md} +14 -11
  183. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +44 -13
  184. package/docs/guide/panes-and-files.md +290 -0
  185. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  186. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  187. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  188. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  189. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  190. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  191. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  192. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  193. package/docs/process/documentation-coverage.md +100 -0
  194. package/docs/process/documentation-guide.md +187 -0
  195. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  196. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  197. package/docs/{evolution.md → process/evolution.md} +2 -2
  198. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  199. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  200. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  201. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  202. package/evals/README.md +2 -2
  203. package/package.json +9 -7
  204. package/skills/README.md +46 -37
  205. package/skills/coding/ast-grep/SKILL.md +2 -2
  206. package/skills/coding/coding-standards/SKILL.md +2 -2
  207. package/skills/coding/prototype/SKILL.md +2 -2
  208. package/skills/coding/tdd/SKILL.md +2 -2
  209. package/skills/context/context-handoff/SKILL.md +2 -2
  210. package/skills/context/context-prime/SKILL.md +2 -2
  211. package/skills/git/file-ticket/SKILL.md +2 -2
  212. package/skills/git/fix-issue/SKILL.md +3 -3
  213. package/skills/git/resolve-merge-conflicts/SKILL.md +2 -2
  214. package/skills/git/ship/SKILL.md +2 -2
  215. package/skills/git/worktree-create/SKILL.md +2 -2
  216. package/skills/git/worktree-merge/SKILL.md +2 -2
  217. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  218. package/skills/meta/clio-coder-dev/evals.md +3 -2
  219. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  220. package/skills/meta/clio-coder-test/evals.md +9 -4
  221. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  222. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  223. package/skills/meta/credentials/SKILL.md +2 -2
  224. package/skills/meta/find-skills/SKILL.md +2 -2
  225. package/skills/meta/herdr/SKILL.md +2 -2
  226. package/skills/meta/skill-craft/SKILL.md +22 -16
  227. package/skills/planning/architecture/SKILL.md +2 -2
  228. package/skills/planning/backlog/SKILL.md +2 -2
  229. package/skills/planning/prd/SKILL.md +2 -2
  230. package/skills/planning/product-intent/SKILL.md +2 -2
  231. package/skills/planning/tech-spec/SKILL.md +2 -2
  232. package/skills/registry.yaml +62 -62
  233. package/skills/research/arxiv-literature/SKILL.md +2 -2
  234. package/skills/research/experiment-protocol/SKILL.md +2 -2
  235. package/skills/research/scientific-debugging/SKILL.md +2 -2
  236. package/skills/research/scientific-modernization/SKILL.md +2 -2
  237. package/skills/skill-marketplace.json +62 -62
  238. package/skills/workflow/cut-it/SKILL.md +2 -2
  239. package/skills/workflow/design-council/SKILL.md +2 -2
  240. package/skills/workflow/grill-me/SKILL.md +2 -2
  241. package/skills/workflow/workflow-distiller/SKILL.md +2 -2
  242. package/src/cli/args.ts +2 -2
  243. package/src/cli/bootstrap-generate.ts +1 -1
  244. package/src/cli/config-inspect.ts +65 -12
  245. package/src/cli/configure.ts +0 -4
  246. package/src/cli/docs.ts +22 -14
  247. package/src/cli/doctor-naming.ts +5 -5
  248. package/src/cli/doctor-toolchain.ts +3 -3
  249. package/src/cli/eval.ts +1 -2
  250. package/src/cli/extensions.ts +2 -1
  251. package/src/cli/fleet.ts +1 -1
  252. package/src/cli/index.ts +2 -1
  253. package/src/cli/internal-dispatch.ts +3 -4
  254. package/src/cli/panes.ts +19 -5
  255. package/src/cli/run.ts +2 -2
  256. package/src/cli/share.ts +5 -1
  257. package/src/cli/skills-eval.ts +3 -3
  258. package/src/cli/targets.ts +2 -6
  259. package/src/cli/trace.ts +55 -4
  260. package/src/cli/wiki-generate.ts +1 -1
  261. package/src/core/artifact-paths.ts +1 -1
  262. package/src/core/bash-exec.ts +131 -86
  263. package/src/core/bus-events.ts +51 -6
  264. package/src/core/config.ts +5 -1
  265. package/src/core/defaults.ts +7 -4
  266. package/src/core/dispatch-outcome.ts +16 -0
  267. package/src/core/guardrails.ts +10 -49
  268. package/src/core/prompt-hint.ts +9 -0
  269. package/src/domains/agents/builtins/architect.md +2 -3
  270. package/src/domains/agents/builtins/coder.md +3 -2
  271. package/src/domains/agents/builtins/debugger.md +2 -2
  272. package/src/domains/agents/builtins/documenter.md +2 -2
  273. package/src/domains/agents/builtins/git-master.md +1 -1
  274. package/src/domains/agents/builtins/oracle.md +1 -1
  275. package/src/domains/agents/builtins/provenance.md +1 -1
  276. package/src/domains/agents/builtins/researcher.md +1 -1
  277. package/src/domains/agents/builtins/scout.md +1 -1
  278. package/src/domains/agents/builtins/tester.md +2 -2
  279. package/src/domains/agents/builtins/verifier.md +2 -2
  280. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  281. package/src/domains/agents/catalog.ts +12 -14
  282. package/src/domains/agents/contract.ts +2 -0
  283. package/src/domains/agents/extension.ts +23 -1
  284. package/src/domains/config/keybindings.ts +8 -0
  285. package/src/domains/context/extension.ts +0 -3
  286. package/src/domains/context/working-set/path-index.ts +1 -0
  287. package/src/domains/dispatch/capability-match.ts +10 -0
  288. package/src/domains/dispatch/extension.ts +105 -22
  289. package/src/domains/dispatch/host-verification.ts +435 -39
  290. package/src/domains/dispatch/intent-requirements.ts +10 -0
  291. package/src/domains/dispatch/intent.ts +18 -1
  292. package/src/domains/dispatch/path-scope.ts +235 -24
  293. package/src/domains/dispatch/run-event-journal.ts +4 -15
  294. package/src/domains/dispatch/state.ts +2 -3
  295. package/src/domains/dispatch/transport.ts +45 -21
  296. package/src/domains/dispatch/types.ts +55 -3
  297. package/src/domains/eval/artifacts/store.ts +5 -0
  298. package/src/domains/eval/store.ts +8 -1
  299. package/src/domains/evidence/trust-status.ts +10 -1
  300. package/src/domains/extensions/contract.ts +15 -1
  301. package/src/domains/extensions/discovery.ts +238 -41
  302. package/src/domains/extensions/extension.ts +105 -6
  303. package/src/domains/extensions/index.ts +24 -0
  304. package/src/domains/extensions/integrity.ts +189 -0
  305. package/src/domains/extensions/manager.ts +17 -1
  306. package/src/domains/extensions/resource-path.ts +27 -0
  307. package/src/domains/extensions/resources.ts +18 -38
  308. package/src/domains/extensions/snapshot-store.ts +39 -0
  309. package/src/domains/extensions/snapshot.ts +180 -0
  310. package/src/domains/extensions/state.ts +385 -57
  311. package/src/domains/extensions/types.ts +118 -1
  312. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  313. package/src/domains/lifecycle/migrations/index.ts +2 -0
  314. package/src/domains/lifecycle/naming-resources.ts +19 -4
  315. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  316. package/src/domains/middleware/contract.ts +26 -0
  317. package/src/domains/middleware/extension.ts +24 -24
  318. package/src/domains/middleware/hook-receipts.ts +27 -4
  319. package/src/domains/middleware/hooks-io.ts +65 -32
  320. package/src/domains/middleware/hooks.ts +64 -0
  321. package/src/domains/middleware/index.ts +28 -4
  322. package/src/domains/middleware/registrations.ts +326 -0
  323. package/src/domains/middleware/runtime.ts +28 -0
  324. package/src/domains/middleware/snapshot.ts +20 -7
  325. package/src/domains/mux/contract.ts +38 -0
  326. package/src/domains/mux/detect.ts +6 -13
  327. package/src/domains/mux/index.ts +1 -1
  328. package/src/domains/mux/operations.ts +44 -5
  329. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  330. package/src/domains/mux/yazi/session.ts +53 -4
  331. package/src/domains/mux/yazi/theme.ts +117 -17
  332. package/src/domains/observability/contract.ts +10 -11
  333. package/src/domains/observability/extension.ts +11 -3
  334. package/src/domains/observability/projection.ts +14 -90
  335. package/src/domains/observability/trace-store.ts +43 -7
  336. package/src/domains/prompts/compiler.ts +73 -53
  337. package/src/domains/prompts/contract.ts +15 -3
  338. package/src/domains/prompts/extension.ts +97 -9
  339. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  340. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  341. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  342. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  343. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  344. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  345. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  346. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  347. package/src/domains/providers/index.ts +1 -1
  348. package/src/domains/providers/model-runtime-capabilities.ts +85 -21
  349. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +669 -104
  350. package/src/domains/providers/runtime-resolution.ts +31 -0
  351. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  352. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  353. package/src/domains/providers/types/cost-provenance.ts +19 -0
  354. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  355. package/src/domains/resources/skills/loader.ts +16 -19
  356. package/src/domains/safety/call-target.ts +1 -1
  357. package/src/domains/safety/loop-detector.ts +7 -4
  358. package/src/domains/session/task-board.ts +10 -9
  359. package/src/domains/share/archive.ts +164 -7
  360. package/src/engine/acp/server.ts +62 -9
  361. package/src/engine/apis/llamacpp-residency.ts +3 -4
  362. package/src/engine/apis/lmstudio.ts +3 -3
  363. package/src/engine/apis/ollama-native.ts +6 -6
  364. package/src/engine/apis/openai-completions.ts +28 -25
  365. package/src/engine/apis/output-budget.ts +8 -18
  366. package/src/engine/apis/residency.ts +8 -27
  367. package/src/engine/gemma-channel-filter.ts +19 -0
  368. package/src/engine/loop-guard.ts +92 -12
  369. package/src/engine/worker-runtime.ts +40 -11
  370. package/src/engine/worker-tools.ts +3 -1
  371. package/src/entry/extension-hook-sources.ts +28 -0
  372. package/src/entry/extension-reload.ts +309 -0
  373. package/src/entry/orchestrator.ts +59 -35
  374. package/src/interactive/application-controller.ts +2 -1
  375. package/src/interactive/bus-notices.ts +8 -1
  376. package/src/interactive/chat-loop-messages.ts +3 -13
  377. package/src/interactive/chat-loop.ts +10 -1
  378. package/src/interactive/chat-panel.ts +36 -13
  379. package/src/interactive/chat-renderer.ts +71 -7
  380. package/src/interactive/dispatch-board.ts +6 -11
  381. package/src/interactive/footer/widgets.ts +13 -0
  382. package/src/interactive/interactive-application.ts +39 -4
  383. package/src/interactive/interactive-input-runtime.ts +4 -0
  384. package/src/interactive/interactive-presentation.ts +2 -2
  385. package/src/interactive/interactive-slash-runtime.ts +2 -0
  386. package/src/interactive/overlays/extensions.ts +9 -1
  387. package/src/interactive/overlays/help-reference.ts +13 -0
  388. package/src/interactive/overlays/settings.ts +27 -16
  389. package/src/interactive/panes-runtime.ts +111 -35
  390. package/src/interactive/prompt-cache-identity.ts +88 -0
  391. package/src/interactive/slash-commands.ts +129 -14
  392. package/src/interactive/stream-pacing-policy.ts +0 -23
  393. package/src/interactive/turn-context.ts +30 -15
  394. package/src/interactive/yazi-bridge.ts +60 -6
  395. package/src/tools/agent-tools.ts +30 -1
  396. package/src/tools/artifact.ts +2 -2
  397. package/src/tools/ask-user.ts +3 -3
  398. package/src/tools/bash.ts +1 -1
  399. package/src/tools/bootstrap.ts +4 -0
  400. package/src/tools/builtin-tool-catalog.ts +52 -22
  401. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  402. package/src/tools/codewiki/code-nav.ts +99 -13
  403. package/src/tools/context/docs-engine.ts +20 -7
  404. package/src/tools/context/index.ts +29 -12
  405. package/src/tools/core-bootstrap.ts +28 -6
  406. package/src/tools/credential-present.ts +1 -2
  407. package/src/tools/dispatch-arguments.ts +5 -1
  408. package/src/tools/dispatch-plan.ts +48 -4
  409. package/src/tools/dispatch-run-events.ts +1 -1
  410. package/src/tools/dispatch-schema.ts +338 -0
  411. package/src/tools/dispatch-types.ts +3 -0
  412. package/src/tools/dispatch.ts +9 -254
  413. package/src/tools/ledger.ts +3 -5
  414. package/src/tools/monitor-surface.ts +5 -13
  415. package/src/tools/observation.ts +4 -5
  416. package/src/tools/panes-surface.ts +4 -11
  417. package/src/tools/panes.ts +4 -2
  418. package/src/tools/policy.ts +15 -2
  419. package/src/tools/read.ts +5 -6
  420. package/src/tools/registry.ts +30 -7
  421. package/src/tools/result-shaping.ts +18 -14
  422. package/src/tools/steer-surface.ts +1 -1
  423. package/src/tools/tasks.ts +1 -1
  424. package/src/tools/truncate.ts +6 -5
  425. package/src/tools/verify/surface.ts +6 -12
  426. package/src/tools/web-fetch-surface.ts +1 -3
  427. package/dist/chunk-5QIAJV2D.js +0 -48
  428. package/dist/chunk-JZWT5J3Y.js +0 -814
  429. package/dist/chunk-K7VKOLQQ.js +0 -15
  430. package/dist/chunk-PMZCIOCJ.js +0 -25
  431. package/dist/chunk-SUW5DORT.js +0 -819
  432. package/dist/chunk-UOV2BYIW.js +0 -107
  433. package/dist/chunk-WR6U3OVP.js +0 -45
  434. package/docs/artifact-versions.md +0 -67
  435. package/docs/documentation-coverage.md +0 -46
  436. package/docs/documentation-guide.md +0 -167
  437. package/docs/time-conventions.md +0 -101
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: coding-standards
3
- description: "Use when writing or refactoring TypeScript and the project has not pinned its own conflicting standards — new modules, error-handling design, schema parsing, module boundaries — or when another skill needs a TypeScript standards reference. Correct-by-construction rules: errors as values, parse don't validate, illegal states unrepresentable, deep modules, functional core / imperative shell."
3
+ description: Correct-by-construction TypeScript rules (errors as values, parse don't validate, illegal states unrepresentable, deep modules) for writing or refactoring TypeScript when the project has not pinned its own standards.
4
4
  triggers:
5
5
  - TypeScript coding standards
6
6
  - errors as values
7
7
  - parse don't validate
8
8
  - illegal states unrepresentable
9
9
  - functional core imperative shell
10
- version: 0.1.1
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: prototype
3
- description: Use when a design question should be answered with throwaway code — "does this state model feel right", "sanity-check this logic", "what should this UI look like", "mock something up". Builds a clearly-marked, trivially-runnable, no-persistence prototype, then captures the verdict and discards the code. Not for pre-registered performance experiments; use experiment-protocol. Not for production implementation.
3
+ description: "Answers a design question with throwaway code: a clearly marked, runnable, no-persistence prototype whose verdict is kept and whose code is discarded. Not for pre-registered performance experiments; use experiment-protocol. Not for production implementation."
4
4
  triggers:
5
5
  - throwaway prototype
6
6
  - mock up this UI
7
7
  - prototype this state model
8
8
  - sanity-check this logic
9
9
  - what should this UI look like
10
- version: 0.2.1
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: tdd
3
- description: Use when the user wants to build a feature or fix a bug test-first, says "TDD", "red-green", or "write the test first", or when a change to tricky logic needs its behavior pinned before implementation. Runs the red → green loop at pre-agreed public seams, one vertical slice at a time. Not for designing benchmark criteria; use experiment-protocol.
3
+ description: Builds a feature or fix test-first, red to green at pre-agreed public seams, one vertical slice at a time. Not for designing benchmark criteria; use experiment-protocol.
4
4
  triggers:
5
5
  - test-driven development
6
6
  - write the test first
7
7
  - red green
8
8
  - build this test-first
9
9
  - reproduce the bug with a test
10
- version: 0.2.1
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: context-handoff
3
- description: Use when a session is winding down and work will continue in a new session or another agent, when context is about to be compacted or lost, or when the user asks for a handoff, brief, summary, or "notes for the next session." Produces a durable, redacted, reference-not-copy handoff document the next session can pick up from.
3
+ description: Writes a durable, redacted, reference-not-copy handoff document when a session winds down or context is about to be compacted or lost, so the next session or agent can continue. Not for orienting at the start of a session; use context-prime.
4
4
  triggers:
5
5
  - session handoff
6
6
  - notes for the next session
7
7
  - handoff to another agent
8
8
  - context is about to be lost
9
9
  - write a continuation brief
10
- version: 0.3.3
10
+ version: 0.4.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: context-prime
3
- description: Use when a coding session begins, when resuming work after a break, or when you land in an unfamiliar or in-progress repository and need to orient before acting. Loads the last handoff, git state, the project constitution, and active-work signals so a fresh agent reconstructs intent instead of guessing. Triggers on "prime", "catch me up", "where were we", "get up to speed", or the first substantive request in a new session.
3
+ description: Orients a fresh session in a repository by loading the last handoff, git state, the project constitution, and active-work signals before acting. Not for writing the handoff; use context-handoff.
4
4
  triggers:
5
5
  - prime this repository
6
6
  - catch me up
7
7
  - where were we
8
8
  - get up to speed
9
9
  - resume repository work after a break
10
- version: 0.2.3
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: file-ticket
3
- description: Use when something noticed mid-session must become a tracker issue "file a ticket", "open an issue for this", "log this bug", "ticket this behavior". Captures evidence from the live session, dedups against existing issues, composes a labeled issue with acceptance criteria, confirms, and creates it via gh. Filing only; never fixes. Not for batch ticket creation from a PRD; use backlog. Not for diagnosing an existing issue; use fix-issue.
3
+ description: "Turns something noticed mid-session into a tracker issue: captures evidence, dedups against existing issues, composes a labeled issue with acceptance criteria, confirms, and creates it via gh. Not for batch ticket creation from a PRD; use backlog. Not for diagnosing an existing issue; use fix-issue."
4
4
  triggers:
5
5
  - file a ticket
6
6
  - open an issue for this
7
7
  - log this bug
8
8
  - ticket this behavior
9
9
  - create a tracker issue
10
- version: 0.1.2
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: fix-issue
3
- description: 'Use when a tracker issue should be resolved end to end "fix issue 123", "take this ticket", "resolve the bug in #45". Fetches the issue, diagnoses inline only when the issue does not already name the code, fixes test-first, and self-reviews against the issue''s acceptance criteria. Ends with an uncommitted, verified change ready for ship. Not for filing; use file-ticket. Not for committing or PRs; use ship.'
3
+ description: "Resolves a tracker issue end to end: fetches it, diagnoses only when the issue does not name the code, fixes test-first, and self-reviews against the acceptance criteria, leaving a verified uncommitted change. Not for filing; use file-ticket. Not for committing or PRs; use ship."
4
4
  triggers:
5
5
  - fix issue 123
6
6
  - take this ticket
7
7
  - resolve the bug in issue
8
8
  - implement this tracker issue
9
9
  - fix a GitHub issue end to end
10
- version: 0.1.2
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -77,7 +77,7 @@ Write a standalone RCA document only when the bug was hard: confidence LOW,
77
77
  a multi-cause chain, or a fix that changes behavior beyond the issue's
78
78
  scope. Routine fixes carry their why-chain in the final report, not a file.
79
79
  Either way the RCA's destination is the issue: `ship` posts it as the
80
- closing comment under the `rca` label (see docs/development-pipeline.md).
80
+ closing comment under the `rca` label (see docs/process/development-pipeline.md).
81
81
 
82
82
  ## Step 3 — Fix test-first
83
83
 
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: resolve-merge-conflicts
3
- description: Use when a git merge, rebase, or cherry-pick is stopped on conflicts and they need resolving — "fix these conflicts", "finish the merge", conflict markers in files. Resolves by reconstructing both sides' intent from history, preserves both where possible, validates with the project's own checks, and completes the operation. Not for planning an integration of many branches; use worktree-merge.
3
+ description: Resolves a merge, rebase, or cherry-pick stopped on conflicts by reconstructing both sides' intent, validating with the project's own checks, and completing the operation. Not for integrating many branches; use worktree-merge.
4
4
  triggers:
5
5
  - merge conflict
6
6
  - fix these conflicts
7
7
  - finish the merge
8
8
  - finish the rebase
9
9
  - resolve conflict markers
10
- version: 0.2.1
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: ship
3
- description: Use when finished work should leave the machine — "ship this", "commit and open the PR", "get this up for review". Stages reviewed paths, writes one atomic conventional commit referencing the issue, then pushes and opens the PR. Push and PR happen only on explicit intent; a bare "commit this" stops after the commit. Not for producing the change; use fix-issue.
3
+ description: "Ships finished work: stages reviewed paths, writes one atomic conventional commit referencing the issue, then pushes and opens the PR only on explicit intent. Not for producing the change; use fix-issue."
4
4
  triggers:
5
5
  - ship this
6
6
  - commit this
7
7
  - commit and open the PR
8
8
  - push and open a pull request
9
9
  - get this up for review
10
- version: 0.1.2
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: worktree-create
3
- description: Use when the user asks to set up one or more git worktrees for parallel work — "create a worktree", "set up worktrees for these branches", "spin up parallel branches". Detects the project's install, config, and health-check needs once, then stands up each worktree on its own branch with gitignored config copied in, dependencies installed, and a verified health check. Not for merging finished worktrees; use worktree-merge.
3
+ description: Stands up one or more git worktrees for parallel work, each on its own branch with gitignored config copied in, dependencies installed, and a verified health check. Not for merging finished worktrees; use worktree-merge.
4
4
  triggers:
5
5
  - create a git worktree
6
6
  - set up worktrees for these branches
7
7
  - spin up parallel branches
8
8
  - prepare parallel worktrees
9
- version: 0.2.1
9
+ version: 0.3.0
10
10
  license: Apache-2.0
11
11
  allowed-tools:
12
12
  - read
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: worktree-merge
3
- description: Use when parallel worktree branches are finished and the user asks to integrate them — "merge my worktrees", "integrate these branches". Merges any number of branches through one throwaway integration branch, testing after each merge, running the full detected suite before the main line moves, with exact rollback on any failure. Not for creating worktrees; use worktree-create.
3
+ description: Integrates finished worktree branches through one throwaway integration branch, testing after each merge and running the full suite before the main line moves, with exact rollback on failure. Not for creating worktrees; use worktree-create.
4
4
  triggers:
5
5
  - merge my worktrees
6
6
  - integrate these worktree branches
7
7
  - combine parallel branches
8
8
  - land finished worktrees
9
- version: 0.2.1
9
+ version: 0.3.0
10
10
  license: Apache-2.0
11
11
  allowed-tools:
12
12
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: clio-coder-dev
3
- description: Use when modifying Clio Coder's own source in this repository, evolving its harness (TUI, skills, agents, tools, prompts, domains), or deciding whether a change stays local versus becomes a contribution. Governs self-development — what Clio may change freely, what requires explicit user intent, and how to make a change without breaking the architecture.
3
+ description: "Governs changes to Clio Coder's own source and harness (TUI, skills, agents, tools, prompts, domains): what may change freely, what needs explicit user intent, and how to change it without breaking the architecture. Not for verifying a change against the harness; use clio-coder-test."
4
4
  triggers:
5
5
  - modify Clio Coder
6
6
  - change the Clio harness
7
7
  - edit Clio skills or agents
8
8
  - evolve Clio tools or prompts
9
9
  - Clio contribution boundary
10
- version: 0.2.2
10
+ version: 0.4.0
11
11
  license: Apache-2.0
12
12
  clio-coder:
13
13
  registry-id: iowarp/clio-coder
@@ -72,9 +72,13 @@ Follow in order for every change:
72
72
  3. **Prefer a small pure-function change** with a focused contract test over a
73
73
  broad rewrite. Side effects live in `extension.ts`; testable policy lives
74
74
  in sibling pure modules.
75
- 4. **Respect the hard invariants** (rule1/2/3): no value-import of `pi-*`
76
- outside `src/engine/**`; no importing another domain's `extension.ts`; the
77
- worker never imports domains. Add or reuse a contract instead.
75
+ 4. **Respect all six boundary invariants.** Pi SDK imports stay in
76
+ `src/engine/**`; worker value imports from domains stay within the declared
77
+ provider rehydration seams; domains never import another domain's
78
+ `extension.ts`; tools never import the interactive layer;
79
+ `src/interactive/turn-*.ts` and `chat-loop.ts` never import entry modules;
80
+ Stage 0 is entered only through declared seams. Add or reuse a contract
81
+ instead.
78
82
  5. **Validate narrowly, then report.** Run the narrowest meaningful layer per
79
83
  `clio-coder-test`, then state exactly what ran and what remains unverified. Done
80
84
  when the report names both.
@@ -26,13 +26,14 @@ Prompt: "Domain A needs something from domain B — just import B's extension.ts
26
26
  it's faster."
27
27
  Expected:
28
28
  - Refuses the rule3 violation; routes through B's `index.ts` contract.
29
- - Defers to `clio-coder-test` (`check:boundaries`) to verify.
29
+ - Defers to `clio-coder-test` and runs `npm run lint` to verify the boundary.
30
30
 
31
31
  ## D4 — classify before editing
32
32
  Prompt: "Change how the worker gets its spec." (touches an engine/worker seam)
33
33
  Expected:
34
34
  - Classifies the surface, inspects the contract/tests first, prefers a small
35
- pure change, and respects rule2 (worker never imports domains).
35
+ pure change, and respects rule2 (worker value imports from domains stay in
36
+ the declared provider rehydration seams; other domain imports are type-only).
36
37
 
37
38
  ## Baseline failure modes to watch for (RED)
38
39
  - Pushes / opens a PR / tags a release on implied (not explicit) intent.
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: clio-coder-test
3
- description: Use when writing or modifying Clio Coder's own source under src/, or verifying a change end-to-end against the real test harness. Covers the three real layers (contracts / smoke / boundaries), choosing which to run for a given change, the mock-provider and ACP-over-stdio harness, and the hot-reload dev loop for picking up latest code. Activate on any src/ edit, before declaring a change verified, or when asked whether Clio still works.
3
+ description: "Verifies a Clio Coder source change against the current contract, smoke, boundary, and application test lanes, including temporary-state and local-provider harnesses. Not for deciding what may change; use clio-coder-dev."
4
4
  triggers:
5
5
  - test Clio Coder
6
6
  - verify a Clio source change
7
7
  - run Clio contract tests
8
8
  - test ACP over stdio
9
9
  - Clio mock provider harness
10
- version: 0.1.5
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
12
  clio-coder:
13
13
  registry-id: iowarp/clio-coder
@@ -20,120 +20,127 @@ clio-coder:
20
20
 
21
21
  # Clio Test
22
22
 
23
- Clio's test suite has exactly three layers: **contracts**, **smoke**, and
24
- **boundaries**.
23
+ The root Node suite has two test lanes. Contract tests import `src/` directly
24
+ through tsx; smoke tests spawn the built `dist/cli/index.js`. The import-boundary
25
+ checker runs under lint rather than `npm test`. The trace viewer and Workbench
26
+ have separate application gates.
25
27
 
26
- For the question of whether a change may leave your machine (commit, push, PR),
27
- that is `clio-coder-dev`, not this skill. **REQUIRED SUB-SKILL:** `clio-coder-dev` for the
28
- local-vs-contribute boundary.
28
+ For the question of whether a change may leave your machine (commit, push, or
29
+ PR), use `clio-coder-dev`. **REQUIRED SUB-SKILL:** `clio-coder-dev` for the
30
+ local-versus-contribution boundary.
29
31
 
30
32
  ## Commands
31
33
 
32
34
  ```bash
33
- npm run typecheck # tsc -p tsconfig.tests.json (includes tests/ and benchmarks/internal/)
34
- npm run lint # biome check . && scripts/check-hygiene.ts (import boundaries, skill pins, doc drift)
35
- npm run test:file -- 'tests/contracts/**/*.test.ts' # contract tests (tsx, import src directly, no build)
36
- npm run test:file -- 'tests/smoke/**/*.test.ts' # spawn dist/cli/index.js end-to-end (NEEDS a build)
37
- npm run test # contracts + smoke, sharded across processes (the full gate)
38
- npm run build # tsup -> dist/
39
- npm run dev # tsup --watch -> rebuilds dist/ on save
40
- npm run ci # typecheck && lint && skills:check && build && test && test:trace-viewer
41
- npm run live:smoke -- --target <id> # one real turn against a configured target; never in CI
35
+ npm run typecheck # tsc -p tsconfig.tests.json
36
+ npm run lint # Biome plus scripts/check-hygiene.ts
37
+ npm run skills:check # catalog pins and marketplace index
38
+ npm run test:file -- tests/contracts/<file>.test.ts
39
+ npm run build # tsup plus the codewiki asset
40
+ npm run test:file -- tests/smoke/<file>.test.ts # requires a current build
41
+ npm run test # every contract and smoke file
42
+ npm run test:trace-viewer # apps/trace-viewer
43
+ npm run ci # deterministic root gate
44
+ npm run ci:release # root gate plus package/release audit
42
45
  ```
43
46
 
44
- ## Which layer catches what
47
+ The Workbench is not part of the root `npm run ci` command. From
48
+ `apps/workbench`, run `deno task verify` for its format, lint, type check, test,
49
+ and build gate.
50
+
51
+ No deterministic gate contacts a real model. When a task explicitly requires
52
+ live validation, build first and run `node dist/cli/index.js run` against a
53
+ configured target. Record the target, model, runtime, prompt, and serving
54
+ settings with the result.
55
+
56
+ ## Which lane catches what
45
57
 
46
58
  | Change site | Run first | Why |
47
59
  |---|---|---|
48
- | pure logic in `src/domains/<x>/*.ts` | `npm run test:file -- 'tests/contracts/**/*.test.ts'` | contract tests import `src` via tsx; no build |
49
- | dispatch / providers / prompts / safety / config / persistence / acp behavior | `npm run test:file -- 'tests/contracts/**/*.test.ts'` | each has a file in `tests/contracts/` |
50
- | skills loader / activation | `npm run test:file -- 'tests/contracts/**/*.test.ts'` | `tests/contracts/skills.test.ts`, `skill-activation-compaction.test.ts` |
51
- | any `src/` import edit | `npm run lint` | the hygiene check enforces rule1/2/3 |
52
- | `src/cli/*` or `src/entry/*` user-facing flow | build, then `npm run test:file -- 'tests/smoke/**/*.test.ts'` | smoke spawns the real `dist/cli/index.js` |
53
- | ACP surface (`src/cli/acp.ts`, engine ACP) | build, then `npm run test:file -- 'tests/smoke/**/*.test.ts'` | smoke drives `clio-coder acp` over JSON-RPC/stdio |
54
-
55
- **See `references/test-map.md`** for exactly where each test lives and how to run
56
- a single file.
60
+ | Pure logic in `src/domains/<x>/*.ts` | Closest file under `tests/contracts/` | Contracts import current source; no build is needed. |
61
+ | Dispatch, providers, prompts, safety, config, or persistence | Related contract file found with `rg` | Each behavior is divided among focused contract files rather than one domain-wide suite. |
62
+ | Skill catalog or loader | Related contract, then `npm run skills:pin` and `npm run skills:check` | Runtime behavior and generated catalog metadata are separate checks. |
63
+ | Any import edit under `src/` | `npm run lint` | Hygiene invokes all six boundary rules. |
64
+ | CLI, entry, process lifecycle, or ACP stdio flow | Build, then the closest file under `tests/smoke/` | Smoke executes the built binary. |
65
+ | Published package contents | Build, then `tests/smoke/installed-package.test.ts` | The test packs and installs the actual artifact. |
66
+ | Trace viewer | `npm run test:trace-viewer` | It has a separate Node package and test command. |
67
+ | Workbench | `deno task verify` in `apps/workbench` | Its Deno/Vite gate is independent of the root npm gate. |
68
+
69
+ Read `references/test-map.md` for the current file map and exact subset
70
+ commands.
57
71
 
58
72
  ## Boundary rules you must not break
59
73
 
60
- `tests/boundaries/check-boundaries.ts` enforces three rules (also the Hard
61
- Invariants in `CLIO-CODER.md`), run by `scripts/check-hygiene.ts` under
62
- `npm run lint`. If it reports a violation, fix the import — never silence the
63
- check:
64
-
65
- - **rule1**: only `src/engine/**` may value-import `@earendil-works/pi-*`. Outside
66
- engine, use Clio contracts or type-only imports that erase at compile time.
67
- - **rule2**: `src/worker/**` never imports `src/domains/**`. Cross through
68
- `src/worker/spec-contract.ts`.
69
- - **rule3**: `src/domains/<x>/**` never imports `src/domains/<y>/extension.ts`.
70
- Go through the target domain's `index.ts` contract.
71
-
72
- ## The hot-reload dev loop (picking up latest code)
73
-
74
- There are two independent reload mechanisms; know which applies.
75
-
76
- **Source reload for tests.** This is the "pick up latest code" loop:
77
-
78
- - **Fast loop — no build.** The contracts glob runs `node --import tsx --test`
79
- and imports `src/**` directly, and the hygiene lint reads source statically,
80
- so both always see the latest source with zero build step. Iterate here whenever the change is pure
81
- logic or a contract.
82
- - **Full loop needs `dist/`.** The smoke glob spawns `dist/cli/index.js`, so it
83
- only sees code that has been built. Keep `npm run dev` (`tsup --watch`) running
84
- in another pane; it rebuilds `dist/` on every save, so the smoke lane
85
- picks up your latest source without a manual `npm run build`.
86
-
87
- **Config reload for a running session.** Clio classifies a settings change
88
- (`src/domains/config/classify.ts`) into three buckets:
89
-
90
- - `hotReload` (theme, keybindings, `safetyLevel`, `defaultMode`) applies live
91
- via the `config.hotReload` bus, no restart.
92
- - `nextTurn` (model, thinking level, budget, skills, compaction…) — applies
93
- before the next turn.
94
- - `restartRequired` (credentials, runtime enable/disable, `budget.concurrency`)
95
- needs a process restart. Unknown fields fail closed to this bucket.
96
-
97
- **There is no in-process reload of Clio's own code in a running session.** ESM
98
- modules load once; to run changed harness code in an interactive session,
99
- restart the process (against a freshly built `dist/`).
74
+ `tests/boundaries/check-boundaries.ts` enforces six rules through
75
+ `scripts/check-hygiene.ts` and `npm run lint`. Fix a reported dependency edge;
76
+ never suppress the checker.
77
+
78
+ 1. Imports of `@earendil-works/pi-*`, including type-only imports, stay under
79
+ `src/engine/**`.
80
+ 2. Worker value imports from domains are limited to the declared provider
81
+ runtime rehydration seams. Other worker imports from domains must be
82
+ type-only.
83
+ 3. A domain never imports another domain's `extension.ts`.
84
+ 4. `src/tools/**` never imports `src/interactive/**`.
85
+ 5. `src/interactive/turn-*.ts` and `chat-loop.ts` never import `src/entry/**`.
86
+ 6. External value imports enter the protected Stage 0 trees only through
87
+ declared seams, and those seams do not create undeclared edges back into
88
+ the closure.
89
+
90
+ The authoritative definitions and exceptions are in
91
+ `docs/architecture/architecture.md` under "Boundary invariants."
92
+
93
+ ## Source and configuration reload
94
+
95
+ Contract tests and hygiene read current source, so they need no build. Smoke
96
+ tests run `dist/`, so rebuild first or keep `npm run dev` (`tsup --watch`)
97
+ running. A running Clio process does not reload changed ESM modules; restart it
98
+ after a fresh build.
99
+
100
+ Configuration reload is separate. `src/domains/config/classify.ts` owns the
101
+ three buckets:
102
+
103
+ - `hotReload`: keybindings, autonomy, the model picker, smooth streaming, pane
104
+ notifications and file opens, Git attribution, and safety review settings.
105
+ - `nextTurn`: targets; the remaining chat settings; most fleet, context, and
106
+ safety limits; selected interface output settings; project resources,
107
+ external agents, and library settings.
108
+ - `restartRequired`: fleet concurrency, interface mode and scrollbar, pane-host
109
+ enablement, runtime plugins, and every unknown path.
100
110
 
101
111
  ## Iteration loop
102
112
 
103
- 1. Write the change.
104
- 2. `npm run typecheck` and `npm run lint`.
105
- 3. Run the narrowest layer from the table above.
106
- 4. `npm run lint` if you touched imports.
107
- 5. If you touched CLI/entry/ACP: `npm run build` (or rely on `dev` watch), then
108
- `npm run test:file -- 'tests/smoke/**/*.test.ts'`.
109
- 6. `npm run ci` before calling it done. Report exactly what ran and what is
110
- unverified.
113
+ 1. Read the relevant source contract and nearby tests.
114
+ 2. Run `npm run typecheck` and `npm run lint`.
115
+ 3. Run the narrowest related contract or application test.
116
+ 4. If the built boundary changed, build and run the closest smoke file.
117
+ 5. Run `npm run ci` before handing back a broad root change. Use
118
+ `npm run ci:release` when release packaging is in scope.
119
+ 6. Report exactly what ran and what remains unverified.
111
120
 
112
- When debugging a single test:
121
+ For one test file or an `it.only` while debugging:
113
122
 
114
123
  ```bash
115
- node --import tsx --test tests/contracts/<file>.test.ts # one file
116
- node --import tsx --test --test-only tests/contracts/<file>.test.ts # it.only
124
+ npm run test:file -- tests/contracts/<file>.test.ts
125
+ npm run test:file -- --test-only tests/contracts/<file>.test.ts
117
126
  ```
118
127
 
119
- ## What NOT to do
120
-
121
- - Don't reintroduce `tests/unit|integration|e2e/`; that taxonomy was
122
- deliberately removed. Don't add a second pseudo-terminal: `tests/harness/pty.ts`
123
- is the one PTY, used by the three `*-pty`/`tui-width-matrix` smoke suites and
124
- by `benchmarks/internal/pty-drive.ts`.
125
- - Don't add `scripts/diag-*.ts` or `scripts/verify-*.ts`. A test belongs in
126
- `tests/`; a one-off probe belongs in `/tmp` and gets deleted (see
127
- `references/harness.md`).
128
- - Don't silence a boundary violation with `// biome-ignore` or an exclude. Fix
129
- the import.
130
- - Don't assert against a simulated TUI. Test real commands via the spawn harness.
131
- - Don't commit with red tests. If a pre-existing test fails on state that
132
- predates your change, report it and ask — don't delete or skip it.
128
+ ## What not to do
129
+
130
+ - Do not reintroduce `tests/unit`, `tests/integration`, or `tests/e2e`; the
131
+ current taxonomy is contracts and smoke.
132
+ - Do not cite a shared spawn or PTY helper. The current tree has neither
133
+ `tests/harness/spawn.ts` nor `tests/harness/pty.ts`; each smoke boundary owns
134
+ its process driver.
135
+ - Do not add `scripts/diag-*.ts` or `scripts/verify-*.ts`. A durable check
136
+ belongs in `tests/`; a disposable probe belongs under `/tmp`.
137
+ - Do not hide a boundary failure with an ignore or exclusion.
138
+ - Do not claim live-model evidence from a local fixture.
139
+ - Do not delete or skip a pre-existing failure. Report the evidence and
140
+ separate it from the result of the requested change.
133
141
 
134
142
  ## Harness reference
135
143
 
136
- Driving the real CLI, the mock provider, ACP over stdio, and the PTY, plus the
137
- throwaway probe pattern: **see `references/harness.md`**. Driving the real
138
- binary against a real model (headless, PTY, tmux, herdr) is a different claim
139
- and lives in `benchmarks/internal/SKILL.md`.
144
+ For the current scratch-state helpers, dispatch fixtures, local
145
+ OpenAI-compatible fixture, ACP stdio driver, and disposable-probe pattern, read
146
+ `references/harness.md`.
@@ -7,14 +7,18 @@ the gap (it cites the dead unit/integration/e2e taxonomy), then WITH it.
7
7
  Prompt: "I changed pure logic in `src/domains/dispatch/validation.ts`. What do I
8
8
  run and why?"
9
9
  Expected:
10
- - `npm run test:file -- 'tests/contracts/**/*.test.ts'` (and `npm run lint` if imports changed).
10
+ - Locates the closest contract coverage and starts with
11
+ `npm run test:file -- tests/contracts/dispatch-admission.test.ts`, adding
12
+ other dispatch files only when the changed path reaches them.
13
+ - Runs `npm run lint` if imports changed.
11
14
  - Explains contracts import `src` via tsx, so no build is needed.
12
15
  - Does NOT suggest `test:unit` / `test:e2e` (those don't exist).
13
16
 
14
17
  ## T2 — CLI change needs a build
15
- Prompt: "I edited `src/cli/skills.ts`. How do I verify end-to-end?"
18
+ Prompt: "I edited `src/cli/run.ts`. How do I verify end-to-end?"
16
19
  Expected:
17
- - Build (or rely on `npm run dev` watch), then `npm run test:file -- 'tests/smoke/**/*.test.ts'`.
20
+ - Builds (or relies on `npm run dev` watch), then starts with
21
+ `npm run test:file -- tests/smoke/cli-core.test.ts`.
18
22
  - Explains smoke spawns `dist/cli/index.js`, so it only sees built code.
19
23
 
20
24
  ## T3 — hot reload
@@ -33,7 +37,8 @@ Expected:
33
37
  suggest a `biome-ignore` or exclude.
34
38
 
35
39
  ## Baseline failure modes to watch for (RED)
36
- - Cites `test:unit`/`test:integration`/`test:e2e`, or a PTY other than `tests/harness/pty.ts`.
40
+ - Cites `test:unit`/`test:integration`/`test:e2e`, the deleted shared spawn
41
+ helper, or the deleted PTY harness.
37
42
  - Claims smoke tests run against source (they run against `dist/`).
38
43
  - Invents a hot-reload feature that reloads a running session's code.
39
44