@iowarp/clio-coder 0.4.0 → 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 (751) hide show
  1. package/CHANGELOG.md +131 -0
  2. package/CONTRIBUTING.md +59 -36
  3. package/README.md +407 -375
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-G5WJBNCT.js → acp-TMDQZDIG.js} +14 -14
  6. package/dist/{agents-FMV2Q5G4.js → agents-5N5NG3XG.js} +45 -34
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-3IDSJEIK.js → auth-Z5CCBXKQ.js} +22 -21
  9. package/dist/{builtins-XCZWXSC7.js → builtins-K6TNDT24.js} +6 -6
  10. package/dist/{chunk-GR5G2PVF.js → chunk-2HFQNRV3.js} +15 -10
  11. package/dist/{chunk-PQEFIJ36.js → chunk-2LEAKD4C.js} +1 -2
  12. package/dist/{chunk-HJJTYUHX.js → chunk-2NHR3NAY.js} +168 -1406
  13. package/dist/chunk-2X4RYJTJ.js +39 -0
  14. package/dist/{chunk-UXMFQ54G.js → chunk-2Z2IKEXI.js} +39 -43
  15. package/dist/{chunk-SST6Z5JA.js → chunk-336NSSKI.js} +1 -1
  16. package/dist/chunk-34BHNEE3.js +1846 -0
  17. package/dist/{chunk-YJX4SHTD.js → chunk-35MSIRKH.js} +9 -4
  18. package/dist/chunk-3EBYEESD.js +314 -0
  19. package/dist/{chunk-CTJ4RNAA.js → chunk-3F7VUY77.js} +2 -2
  20. package/dist/chunk-3KIPBMUA.js +308 -0
  21. package/dist/chunk-3M6DQK6S.js +362 -0
  22. package/dist/{chunk-BPKCPIL7.js → chunk-462T4EGZ.js} +3 -3
  23. package/dist/{chunk-QLFS5GO2.js → chunk-4JDLP6ZS.js} +44 -37
  24. package/dist/{chunk-LDQ2ZF2M.js → chunk-4O6MANBS.js} +6 -6
  25. package/dist/{chunk-O6TL7WWY.js → chunk-54ODD65L.js} +6 -6
  26. package/dist/{chunk-JDG2WCRO.js → chunk-5KW52TEP.js} +5 -5
  27. package/dist/{chunk-NHLBIGRH.js → chunk-5PFYMY2V.js} +41 -18
  28. package/dist/{chunk-P3FOHJT4.js → chunk-72GZI5EV.js} +2 -2
  29. package/dist/chunk-77QIVUZB.js +1334 -0
  30. package/dist/{chunk-HWHKMHUA.js → chunk-7BHIY2MW.js} +9 -15
  31. package/dist/{chunk-FWDFM5ZU.js → chunk-AK5XEFVZ.js} +3 -3
  32. package/dist/{chunk-VAZSBTKF.js → chunk-AZ4WMN4W.js} +2 -2
  33. package/dist/{chunk-B7OBL7PK.js → chunk-B74PXLU7.js} +21 -11
  34. package/dist/{chunk-CY6FY24N.js → chunk-B7HM5Z7T.js} +15 -15
  35. package/dist/{chunk-ULC6OTWO.js → chunk-BO7Y52RY.js} +88 -27
  36. package/dist/chunk-BTK3SSSK.js +67 -0
  37. package/dist/{chunk-M6L6IDJG.js → chunk-BWH6N36D.js} +1 -1
  38. package/dist/{chunk-DQITNCXG.js → chunk-BYMNWQ7O.js} +149 -159
  39. package/dist/{chunk-HI63TFOG.js → chunk-CDNVLKUX.js} +3 -3
  40. package/dist/{chunk-Z4TXYIEG.js → chunk-CRFOIAX3.js} +10 -10
  41. package/dist/{chunk-UM7N4G5A.js → chunk-CWVRRIEI.js} +2 -2
  42. package/dist/{chunk-3BT2XMV4.js → chunk-CYZW7JHJ.js} +53 -60
  43. package/dist/{chunk-BKFM6EJV.js → chunk-D4CJV46V.js} +2 -2
  44. package/dist/chunk-D7E7WCDF.js +27 -0
  45. package/dist/{chunk-X3YGUTOB.js → chunk-DYHAXKHD.js} +90 -62
  46. package/dist/{chunk-QBJA7R7N.js → chunk-DZAW46HP.js} +3 -3
  47. package/dist/{chunk-MLKNTWH2.js → chunk-DZEK6CJN.js} +22 -22
  48. package/dist/{chunk-K5C3NCBD.js → chunk-E7GT7O5N.js} +5 -5
  49. package/dist/{chunk-FQ4SKYE4.js → chunk-EBY63B7G.js} +2 -5
  50. package/dist/chunk-F2I26BDK.js +66 -0
  51. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  52. package/dist/{chunk-RAPCMZL4.js → chunk-FSP7CMNU.js} +9 -1
  53. package/dist/{chunk-32KWKNSF.js → chunk-FVDGR2ZL.js} +4 -4
  54. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  55. package/dist/{chunk-SJ5ZKQ4S.js → chunk-HIICAHCJ.js} +2 -2
  56. package/dist/chunk-HJWWJ6IL.js +184 -0
  57. package/dist/{chunk-WZR7K7ZX.js → chunk-HKMD33FO.js} +32 -83
  58. package/dist/chunk-HLAFFSEK.js +360 -0
  59. package/dist/{chunk-VO67MWHC.js → chunk-HRQMFLJP.js} +3 -3
  60. package/dist/{chunk-KFZI4NIL.js → chunk-I64IFBLB.js} +152 -31
  61. package/dist/{chunk-BKFJHQCA.js → chunk-I66EAJFY.js} +2 -2
  62. package/dist/{chunk-BUMFYQFY.js → chunk-I66ZTYNP.js} +543 -267
  63. package/dist/{chunk-2OQE55CK.js → chunk-I7XBWTYH.js} +2 -2
  64. package/dist/{chunk-GKF55TAZ.js → chunk-IDNA72AH.js} +104 -3
  65. package/dist/{chunk-GCSMB2KY.js → chunk-IKOZFYBN.js} +1 -1
  66. package/dist/{chunk-J4W7KFM7.js → chunk-IKSLQ4XV.js} +5439 -3475
  67. package/dist/{chunk-6DB53AJS.js → chunk-IMXMHHMQ.js} +171 -30
  68. package/dist/{chunk-AB44T6BB.js → chunk-JBCS7CRR.js} +8 -7
  69. package/dist/{chunk-BBVJUZHB.js → chunk-JIEGK6UF.js} +5 -173
  70. package/dist/{chunk-SP2RXXYO.js → chunk-JWJGP5DQ.js} +10 -10
  71. package/dist/{chunk-HZHHCK24.js → chunk-KKOJXO6R.js} +527 -325
  72. package/dist/chunk-KPXDY6QF.js +47 -0
  73. package/dist/{chunk-LQ3DZAMX.js → chunk-LJID3DYZ.js} +8 -2
  74. package/dist/{chunk-7MCTRUCE.js → chunk-M2DAX4F6.js} +2 -2
  75. package/dist/{chunk-VEO4AP2K.js → chunk-M2WXEHER.js} +4 -3
  76. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  77. package/dist/{chunk-YDFRH54B.js → chunk-MCMZMDAC.js} +4 -4
  78. package/dist/{chunk-J5Q24KAG.js → chunk-MNJGS2IN.js} +5 -6
  79. package/dist/{chunk-76ONBSIA.js → chunk-MQXIVJ35.js} +14 -5
  80. package/dist/chunk-NDDGJUXD.js +81 -0
  81. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  82. package/dist/chunk-NMJXSHBJ.js +283 -0
  83. package/dist/{chunk-VYMXRQI6.js → chunk-O3YUNJZ2.js} +88 -100
  84. package/dist/{chunk-VO2LKSTM.js → chunk-O42A54GG.js} +2 -2
  85. package/dist/{chunk-Z2RR6MAK.js → chunk-P75RZCJW.js} +28 -6
  86. package/dist/{chunk-NHCZP4K7.js → chunk-PBP4B7XR.js} +2 -2
  87. package/dist/{chunk-DYJP44XW.js → chunk-PGF63K6I.js} +2 -2
  88. package/dist/chunk-PJX3WQUQ.js +42 -0
  89. package/dist/{chunk-ZGVHUX3M.js → chunk-PMZVFWSR.js} +2 -2
  90. package/dist/{chunk-2JDWVJND.js → chunk-Q4XWMHX6.js} +5 -7
  91. package/dist/{chunk-W5VSYASO.js → chunk-QQLGQY2A.js} +46 -87
  92. package/dist/{chunk-KMVISBZR.js → chunk-RKSR6VSF.js} +1 -1
  93. package/dist/{chunk-C2LTL2W6.js → chunk-RLYRBIYQ.js} +463 -180
  94. package/dist/{chunk-4ZG3XFUR.js → chunk-S66XZJOF.js} +14 -23
  95. package/dist/{chunk-I5VEOC6I.js → chunk-SSEYRH53.js} +13 -14
  96. package/dist/chunk-SZAA6XDG.js +30 -0
  97. package/dist/{chunk-CODPRO7Q.js → chunk-TPEQIQIE.js} +7 -7
  98. package/dist/{chunk-QLL7ILRG.js → chunk-UBRFI4HS.js} +1151 -614
  99. package/dist/{chunk-O4XIVISU.js → chunk-UH347SHR.js} +227 -47
  100. package/dist/{chunk-OQBA45DZ.js → chunk-UH632ZYL.js} +2 -2
  101. package/dist/chunk-UXCU4E3T.js +303 -0
  102. package/dist/{chunk-CMZWFGD2.js → chunk-VAVR4IJY.js} +19 -15
  103. package/dist/{chunk-IQ7KR472.js → chunk-VIA6RFQZ.js} +8 -13
  104. package/dist/{chunk-V5DHCITQ.js → chunk-VKPAQYEB.js} +49 -19
  105. package/dist/{chunk-5LXZXPKX.js → chunk-VN3SHNBN.js} +2 -2
  106. package/dist/{chunk-UOSL25KY.js → chunk-VXMFAE2W.js} +1 -1
  107. package/dist/{chunk-3XML7CDN.js → chunk-W4YEMFBX.js} +3 -3
  108. package/dist/{chunk-U77AMWDL.js → chunk-W6NIE6OW.js} +44 -23
  109. package/dist/{chunk-BBVYXMFO.js → chunk-WNP7O5WZ.js} +2 -2
  110. package/dist/{chunk-QREDIESB.js → chunk-X7IARSHT.js} +15 -9
  111. package/dist/{chunk-3URVFKWK.js → chunk-XE3PCIXH.js} +5 -5
  112. package/dist/{chunk-FEFIFZTL.js → chunk-XGDPUNND.js} +2 -2
  113. package/dist/{chunk-F4CKPOEQ.js → chunk-XOXV5GKE.js} +119 -38
  114. package/dist/chunk-XQRY4DTA.js +657 -0
  115. package/dist/{chunk-NYS75XW5.js → chunk-YAKGTXEV.js} +5 -3
  116. package/dist/{chunk-NQQH3YT7.js → chunk-YJISEZKC.js} +3 -3
  117. package/dist/{chunk-X75E3D2N.js → chunk-ZGNYYXQ6.js} +18 -16
  118. package/dist/{chunk-LY4S7GJC.js → chunk-ZNT2M6TG.js} +20 -18
  119. package/dist/{chunk-HKIYEGME.js → chunk-ZTJUVLTU.js} +2 -2
  120. package/dist/{chunk-IBEBSCYA.js → chunk-ZW4HH5JJ.js} +43 -34
  121. package/dist/{chunk-2ANTL7MR.js → chunk-ZW55JB7N.js} +2 -2
  122. package/dist/cli/index.js +38 -37
  123. package/dist/{clio-2JXHBBY5.js → clio-7VB377CC.js} +12 -13
  124. package/dist/{code-nav-3YYRMYNF.js → code-nav-YVLCYA7V.js} +86 -18
  125. package/dist/codewiki/build-worker.js +1 -1
  126. package/dist/{compile-cache-7FPE6PS3.js → compile-cache-OQAVB7Y5.js} +2 -4
  127. package/dist/{components-RYZV4JGP.js → components-UBWCQSRW.js} +4 -4
  128. package/dist/{config-QZPCMYSO.js → config-4HVOS65E.js} +112 -63
  129. package/dist/{configure-TEGEBYCA.js → configure-PIWO7B24.js} +25 -22
  130. package/dist/{context-E6H5RNMC.js → context-IYEHL3WQ.js} +53 -47
  131. package/dist/{context-GSXUE4CT.js → context-KQYIWPWT.js} +68 -42
  132. package/dist/{context-AV7OEZ4D.js → context-N6ZE3LGJ.js} +11 -11
  133. package/dist/{context-clear-SHIBYK6T.js → context-clear-G4OGZJDS.js} +53 -47
  134. package/dist/{context-working-set-5ZGKPGZQ.js → context-working-set-BWLF6LJP.js} +12 -11
  135. package/dist/{dispatch-runner-EFMJT4LD.js → dispatch-runner-2QQAITS3.js} +67 -58
  136. package/dist/{docs-23KQS3XK.js → docs-PD3EXDKU.js} +20 -25
  137. package/dist/doctor-LHBD36VU.js +773 -0
  138. package/dist/{eval-TFBYQH4H.js → eval-C45FYRJ6.js} +68 -49
  139. package/dist/{eval-inventory-SXH7PDKX.js → eval-inventory-6DEJPLBF.js} +7 -8
  140. package/dist/{evidence-ERGESKGN.js → evidence-6SHONYAF.js} +50 -44
  141. package/dist/{evolve-VDXTSYCJ.js → evolve-KRKMV72X.js} +49 -43
  142. package/dist/{extensions-7BGBHN57.js → extensions-KPZ2UHBB.js} +8 -6
  143. package/dist/{fleet-2RRVDF2V.js → fleet-IVTCKDHT.js} +93 -79
  144. package/dist/{fleet-commands-VJ726XIA.js → fleet-commands-EDWL3IT7.js} +10 -9
  145. package/dist/{fleet-decisions-EPAPM3XJ.js → fleet-decisions-YP3YEFGK.js} +6 -6
  146. package/dist/{fleet-graph-JF5QOATM.js → fleet-graph-ZFWKHY2M.js} +19 -15
  147. package/dist/{fleet-inspect-VLY4S7QM.js → fleet-inspect-FVUNCBML.js} +50 -45
  148. package/dist/{fleet-preflight-AIZUEJOY.js → fleet-preflight-UN5XED4R.js} +5 -9
  149. package/dist/{fleet-validate-AJRPDMDV.js → fleet-validate-XOWC4HSX.js} +22 -17
  150. package/dist/{fleet-verify-JFEL2L3H.js → fleet-verify-UN3SODEL.js} +48 -43
  151. package/dist/fleet-view-TWHJKCN6.js +96 -0
  152. package/dist/{init-DN2WWLFE.js → init-T2QORQ3Y.js} +72 -66
  153. package/dist/{install-XGLBQY5E.js → install-NKNG7KD4.js} +2 -2
  154. package/dist/{interop-OZBKXAYL.js → interop-IN5I2A66.js} +13 -11
  155. package/dist/{library-YWZG7IMW.js → library-LSCATDLZ.js} +23 -18
  156. package/dist/{memory-I4C4HMLW.js → memory-HYOKAGGJ.js} +51 -45
  157. package/dist/{models-CEYXJBO6.js → models-2GPMFYCM.js} +42 -33
  158. package/dist/{monitor-NZ6GCI3P.js → monitor-E4ASVUJH.js} +56 -50
  159. package/dist/{orchestrator-GCGQ4N5I.js → orchestrator-DDMPR3PY.js} +2676 -1507
  160. package/dist/{panes-KY6W3V2E.js → panes-E3RUXOW5.js} +5 -5
  161. package/dist/panes-IXKLOKA2.js +75 -0
  162. package/dist/{paths-II4K7DNR.js → paths-L7LGY6RN.js} +4 -4
  163. package/dist/{reset-DQ6FGCSH.js → reset-OAQP3W4O.js} +7 -8
  164. package/dist/{resources-BB3MVJMD.js → resources-OTRSN34L.js} +23 -17
  165. package/dist/{run-H2GQDUER.js → run-5DEYH5QK.js} +95 -84
  166. package/dist/{share-GTJN6A5O.js → share-IHWTLO3M.js} +26 -19
  167. package/dist/{skills-L55TEW6R.js → skills-IYMXMKW4.js} +25 -20
  168. package/dist/{skills-eval-XVXPH2JI.js → skills-eval-DROHSJAR.js} +63 -65
  169. package/dist/{skills-inventory-S4MXPJFV.js → skills-inventory-D7X4L4ZX.js} +21 -16
  170. package/dist/{slash-commands-ZSGASKJC.js → slash-commands-QBM7UZ3B.js} +38 -33
  171. package/dist/{steer-RZGSCY4R.js → steer-Z5DO23FJ.js} +3 -3
  172. package/dist/{support-PKEUNNQL.js → support-U7QOWY26.js} +6 -6
  173. package/dist/{targets-NCPZ644J.js → targets-P2FUC4IL.js} +64 -61
  174. package/dist/{terminal-lease-44SV3YCN.js → terminal-lease-YREJ3JX2.js} +15 -10
  175. package/dist/{tools-DAF3DI3C.js → tools-5B7RO6MV.js} +10 -8
  176. package/dist/{trace-FYVW2MQA.js → trace-YMGMUM6A.js} +101 -8
  177. package/dist/{tui-primitives-2AKXQNZK.js → tui-primitives-K5PASC3O.js} +8 -4
  178. package/dist/{uninstall-DW2PNOIC.js → uninstall-N34PCTGJ.js} +4 -6
  179. package/dist/{upgrade-3XPP6OQL.js → upgrade-PXK3S2YM.js} +36 -61
  180. package/dist/{usage-3NLHGTU2.js → usage-ME5MPXGX.js} +58 -53
  181. package/dist/{verifiers-SSQONKRT.js → verifiers-BVZ7IWOO.js} +10 -9
  182. package/dist/{verify-3U6J7FZI.js → verify-5K7ZKQFC.js} +9 -8
  183. package/dist/{web-fetch-S7RR6GZ7.js → web-fetch-MPARV2K7.js} +2 -3
  184. package/dist/{wiki-generate-CEHYGPGQ.js → wiki-generate-F5W5QTYY.js} +74 -70
  185. package/dist/{with-panes-MKB46MPQ.js → with-panes-BYOJCLAM.js} +78 -246
  186. package/dist/worker/entry.js +83 -63
  187. package/docs/README.md +176 -81
  188. package/docs/{acp.md → architecture/acp.md} +36 -20
  189. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  190. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  191. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +26 -23
  192. package/docs/architecture/artifact-versions.md +90 -0
  193. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  194. package/docs/{context-engine.md → architecture/context-engine.md} +25 -25
  195. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  196. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  197. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  198. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  199. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  200. package/docs/{model-catalog.md → architecture/model-catalog.md} +40 -17
  201. package/docs/{observability.md → architecture/observability.md} +26 -13
  202. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  203. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +55 -20
  204. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +35 -24
  205. package/docs/{safety-model.md → architecture/safety-model.md} +20 -15
  206. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  207. package/docs/architecture/time-conventions.md +125 -0
  208. package/docs/{trace-store.md → architecture/trace-store.md} +26 -13
  209. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  210. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  211. package/docs/{built-in-agents.md → guide/built-in-agents.md} +70 -46
  212. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +73 -62
  213. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -444
  214. package/docs/guide/configuration-reference.md +1158 -0
  215. package/docs/{environment-variables.md → guide/environment-variables.md} +31 -27
  216. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +8 -3
  217. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  218. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +47 -49
  219. package/docs/{glossary.md → guide/glossary.md} +14 -11
  220. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +45 -14
  221. package/docs/guide/panes-and-files.md +290 -0
  222. package/docs/{proactive-memory.md → guide/proactive-memory.md} +79 -66
  223. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  224. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +7 -3
  225. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  226. package/docs/{troubleshooting.md → guide/troubleshooting.md} +10 -5
  227. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +13 -10
  228. package/docs/history/release-cut-checklist.md +207 -0
  229. package/docs/{development-pipeline.md → process/development-pipeline.md} +24 -26
  230. package/docs/process/documentation-coverage.md +100 -0
  231. package/docs/process/documentation-guide.md +187 -0
  232. package/docs/{eval-runner.md → process/eval-runner.md} +41 -50
  233. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  234. package/docs/{evolution.md → process/evolution.md} +2 -2
  235. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +17 -10
  236. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  237. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  238. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  239. package/evals/README.md +5 -0
  240. package/evals/behavioral-corpus-grader.mjs +103 -0
  241. package/evals/behavioral-machinery-baseline.json +2276 -0
  242. package/evals/behavioral-machinery-driver.ts +250 -0
  243. package/evals/behavioral-machinery-support.ts +253 -0
  244. package/evals/behavioral-machinery.yaml +614 -0
  245. package/evals/behavioral-model-negative-control.yaml +68 -0
  246. package/evals/behavioral-model.yaml +216 -0
  247. package/evals/fixtures/behavioral-facts.txt +3 -0
  248. package/evals/fixtures/behavioral-main.ts +7 -0
  249. package/evals/fixtures/decoy/note.txt +2 -0
  250. package/evals/fixtures/private/credentials.txt +1 -0
  251. package/evals/tracked-metrics-baseline.yaml +229 -0
  252. package/evals/tracked-metrics-grader.mjs +129 -0
  253. package/package.json +13 -21
  254. package/skills/README.md +51 -42
  255. package/skills/coding/ast-grep/SKILL.md +9 -3
  256. package/skills/coding/coding-standards/SKILL.md +9 -3
  257. package/skills/coding/prototype/SKILL.md +9 -3
  258. package/skills/coding/tdd/SKILL.md +9 -3
  259. package/skills/context/context-handoff/SKILL.md +13 -4
  260. package/skills/context/context-handoff/evals.md +3 -3
  261. package/skills/context/context-prime/SKILL.md +9 -3
  262. package/skills/context/context-prime/evals.md +2 -2
  263. package/skills/git/file-ticket/SKILL.md +10 -5
  264. package/skills/git/file-ticket/evals.md +2 -2
  265. package/skills/git/fix-issue/SKILL.md +12 -5
  266. package/skills/git/fix-issue/evals.md +4 -4
  267. package/skills/git/resolve-merge-conflicts/SKILL.md +9 -3
  268. package/skills/git/resolve-merge-conflicts/evals.md +2 -2
  269. package/skills/git/ship/SKILL.md +10 -4
  270. package/skills/git/ship/evals.md +4 -4
  271. package/skills/git/worktree-create/SKILL.md +8 -3
  272. package/skills/git/worktree-create/evals.md +6 -6
  273. package/skills/git/worktree-merge/SKILL.md +8 -3
  274. package/skills/git/worktree-merge/evals.md +6 -6
  275. package/skills/meta/{clio-dev → clio-coder-dev}/SKILL.md +22 -12
  276. package/skills/meta/{clio-dev → clio-coder-dev}/evals.md +5 -4
  277. package/skills/meta/clio-coder-test/SKILL.md +146 -0
  278. package/skills/meta/{clio-test → clio-coder-test}/evals.md +10 -5
  279. package/skills/meta/clio-coder-test/references/harness.md +102 -0
  280. package/skills/meta/clio-coder-test/references/test-map.md +96 -0
  281. package/skills/meta/credentials/SKILL.md +10 -3
  282. package/skills/meta/find-skills/SKILL.md +9 -3
  283. package/skills/meta/herdr/SKILL.md +9 -3
  284. package/skills/meta/skill-craft/SKILL.md +39 -16
  285. package/skills/planning/architecture/SKILL.md +9 -3
  286. package/skills/planning/backlog/SKILL.md +9 -3
  287. package/skills/planning/prd/SKILL.md +9 -3
  288. package/skills/planning/product-intent/SKILL.md +9 -3
  289. package/skills/planning/tech-spec/SKILL.md +9 -3
  290. package/skills/registry.yaml +66 -66
  291. package/skills/research/arxiv-literature/SKILL.md +9 -3
  292. package/skills/research/experiment-protocol/SKILL.md +10 -3
  293. package/skills/research/scientific-debugging/SKILL.md +10 -3
  294. package/skills/research/scientific-debugging/evals.md +2 -2
  295. package/skills/research/scientific-modernization/SKILL.md +10 -3
  296. package/skills/skill-marketplace.json +285 -66
  297. package/skills/workflow/cut-it/SKILL.md +11 -3
  298. package/skills/workflow/design-council/SKILL.md +12 -3
  299. package/skills/workflow/grill-me/SKILL.md +9 -3
  300. package/skills/workflow/workflow-distiller/SKILL.md +9 -3
  301. package/src/cli/acp.ts +2 -2
  302. package/src/cli/args.ts +2 -2
  303. package/src/cli/auth.ts +2 -2
  304. package/src/cli/bootstrap-generate.ts +6 -6
  305. package/src/cli/clio.ts +6 -1
  306. package/src/cli/config-inspect.ts +68 -15
  307. package/src/cli/configure-interop.ts +1 -1
  308. package/src/cli/configure.ts +27 -31
  309. package/src/cli/default-target.ts +1 -1
  310. package/src/cli/docs.ts +28 -20
  311. package/src/cli/doctor-naming.ts +323 -0
  312. package/src/cli/doctor-panes.ts +46 -14
  313. package/src/cli/doctor-toolchain.ts +31 -10
  314. package/src/cli/doctor.ts +15 -1
  315. package/src/cli/eval-inventory.ts +8 -8
  316. package/src/cli/eval.ts +1 -2
  317. package/src/cli/evidence-detail.ts +1 -1
  318. package/src/cli/evidence-inventory.ts +1 -1
  319. package/src/cli/extensions.ts +2 -1
  320. package/src/cli/fleet-decisions.ts +1 -1
  321. package/src/cli/fleet-inspect.ts +1 -1
  322. package/src/cli/fleet-preflight.ts +1 -1
  323. package/src/cli/fleet-verify.ts +1 -1
  324. package/src/cli/fleet-view.ts +40 -23
  325. package/src/cli/fleet.ts +9 -6
  326. package/src/cli/index.ts +2 -1
  327. package/src/cli/internal-dispatch.ts +3 -4
  328. package/src/cli/interop-inspect.ts +2 -2
  329. package/src/cli/models.ts +3 -3
  330. package/src/cli/modes/print.ts +1 -1
  331. package/src/cli/panes.ts +19 -5
  332. package/src/cli/reset.ts +1 -1
  333. package/src/cli/run.ts +13 -17
  334. package/src/cli/share.ts +6 -2
  335. package/src/cli/skills-eval.ts +14 -14
  336. package/src/cli/targets.ts +25 -30
  337. package/src/cli/trace-inspect.ts +1 -1
  338. package/src/cli/trace.ts +96 -4
  339. package/src/cli/uninstall.ts +2 -2
  340. package/src/cli/upgrade.ts +29 -34
  341. package/src/cli/usage.ts +2 -2
  342. package/src/cli/validate-model.ts +1 -1
  343. package/src/cli/verifiers-inspect.ts +1 -1
  344. package/src/cli/wiki-generate.ts +6 -6
  345. package/src/core/artifact-paths.ts +1 -1
  346. package/src/core/bash-exec.ts +132 -87
  347. package/src/core/boot-trace.ts +3 -3
  348. package/src/core/bus-events.ts +51 -6
  349. package/src/core/bus-trace.ts +2 -2
  350. package/src/core/compile-cache.ts +1 -1
  351. package/src/core/config.ts +1066 -886
  352. package/src/core/defaults.ts +326 -530
  353. package/src/core/dispatch-outcome.ts +16 -0
  354. package/src/core/domain-loader.ts +6 -4
  355. package/src/core/event-bus.ts +1 -1
  356. package/src/core/file-references.ts +78 -88
  357. package/src/core/git-commit-attribution.ts +3 -9
  358. package/src/core/guardrails.ts +33 -52
  359. package/src/core/naming-compat.ts +45 -0
  360. package/src/core/naming-events.ts +62 -0
  361. package/src/core/prompt-hint.ts +9 -0
  362. package/src/core/recent-models.ts +1 -7
  363. package/src/core/residency-protection.ts +4 -8
  364. package/src/core/resolve-config-value.ts +1 -1
  365. package/src/core/response-model-id.ts +0 -14
  366. package/src/core/session-routing.ts +84 -74
  367. package/src/core/skill-activation.ts +18 -0
  368. package/src/core/termination.ts +4 -4
  369. package/src/core/timers.ts +2 -12
  370. package/src/domains/agents/builtins/architect.md +2 -3
  371. package/src/domains/agents/builtins/coder.md +3 -2
  372. package/src/domains/agents/builtins/debugger.md +2 -2
  373. package/src/domains/agents/builtins/documenter.md +2 -2
  374. package/src/domains/agents/builtins/git-master.md +1 -1
  375. package/src/domains/agents/builtins/oracle.md +1 -1
  376. package/src/domains/agents/builtins/provenance.md +1 -1
  377. package/src/domains/agents/builtins/researcher.md +1 -1
  378. package/src/domains/agents/builtins/scout.md +1 -1
  379. package/src/domains/agents/builtins/tester.md +2 -2
  380. package/src/domains/agents/builtins/verifier.md +2 -2
  381. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  382. package/src/domains/agents/catalog.ts +14 -26
  383. package/src/domains/agents/contract.ts +2 -0
  384. package/src/domains/agents/extension.ts +26 -4
  385. package/src/domains/agents/registry.ts +7 -7
  386. package/src/domains/agents/result-contract.ts +1 -1
  387. package/src/domains/agents/spec.ts +0 -11
  388. package/src/domains/config/classify.ts +35 -47
  389. package/src/domains/config/extension.ts +5 -5
  390. package/src/domains/config/keybindings.ts +56 -47
  391. package/src/domains/config/watcher.ts +1 -1
  392. package/src/domains/context/codewiki/indexer.ts +1 -1
  393. package/src/domains/context/extension.ts +3 -6
  394. package/src/domains/context/prompt-context.ts +1 -1
  395. package/src/domains/context/wiki/assemble.ts +2 -2
  396. package/src/domains/context/working-set/path-index.ts +1 -0
  397. package/src/domains/context/working-set/replay/metrics.ts +0 -4
  398. package/src/domains/context/working-set/replay/report.ts +1 -1
  399. package/src/domains/context/working-set/replay/synthetic.ts +2 -2
  400. package/src/domains/dispatch/active-route-planner.ts +2 -2
  401. package/src/domains/dispatch/agent-candidates.ts +1 -1
  402. package/src/domains/dispatch/agent-ledger-store.ts +1 -1
  403. package/src/domains/dispatch/agent-ledger.ts +1 -1
  404. package/src/domains/dispatch/assignment.ts +5 -5
  405. package/src/domains/dispatch/capability-match.ts +10 -0
  406. package/src/domains/dispatch/capacity-lease.ts +2 -5
  407. package/src/domains/dispatch/code-step.ts +1 -1
  408. package/src/domains/dispatch/contract.ts +2 -2
  409. package/src/domains/dispatch/extension.ts +169 -82
  410. package/src/domains/dispatch/fleet-node-prompt.ts +1 -1
  411. package/src/domains/dispatch/fleet-preflight.ts +8 -17
  412. package/src/domains/dispatch/fleet-run.ts +0 -7
  413. package/src/domains/dispatch/gate-decisions.ts +25 -14
  414. package/src/domains/dispatch/host-verification.ts +435 -39
  415. package/src/domains/dispatch/intent-requirements.ts +10 -0
  416. package/src/domains/dispatch/intent.ts +18 -1
  417. package/src/domains/dispatch/joint-route-resolver.ts +1 -1
  418. package/src/domains/dispatch/path-scope.ts +220 -70
  419. package/src/domains/dispatch/placement.ts +2 -2
  420. package/src/domains/dispatch/receipt-findings.ts +1 -1
  421. package/src/domains/dispatch/receipt-integrity.ts +20 -8
  422. package/src/domains/dispatch/reservation-store.ts +0 -23
  423. package/src/domains/dispatch/route-decision.ts +1 -1
  424. package/src/domains/dispatch/route-history.ts +1 -1
  425. package/src/domains/dispatch/route-policy.ts +1 -1
  426. package/src/domains/dispatch/route-readiness.ts +0 -28
  427. package/src/domains/dispatch/run-event-journal.ts +9 -19
  428. package/src/domains/dispatch/state.ts +2 -3
  429. package/src/domains/dispatch/tool-stats.ts +1 -1
  430. package/src/domains/dispatch/transport.ts +47 -40
  431. package/src/domains/dispatch/types.ts +58 -6
  432. package/src/domains/dispatch/worker-protocol.ts +2 -2
  433. package/src/domains/eval/artifacts/store.ts +10 -4
  434. package/src/domains/eval/compare/thresholds.ts +0 -8
  435. package/src/domains/eval/execution-provenance.ts +1 -1
  436. package/src/domains/eval/metrics/token-stream.ts +0 -7
  437. package/src/domains/eval/report.ts +1 -1
  438. package/src/domains/eval/runner.ts +1 -1
  439. package/src/domains/eval/runners/clio-run.ts +7 -6
  440. package/src/domains/eval/runners/external-command.ts +4 -3
  441. package/src/domains/eval/schema/artifact.ts +1 -1
  442. package/src/domains/eval/schema/behavioral-metrics.ts +3 -2
  443. package/src/domains/eval/schema/behavioral.ts +7 -6
  444. package/src/domains/eval/schema/execution-envelope.ts +4 -2
  445. package/src/domains/eval/schema/naming.ts +10 -0
  446. package/src/domains/eval/schema/suite.ts +2 -2
  447. package/src/domains/eval/schema/validate.ts +9 -5
  448. package/src/domains/eval/schema/verdict.ts +4 -2
  449. package/src/domains/eval/store.ts +20 -3
  450. package/src/domains/eval/suites/run.ts +12 -6
  451. package/src/domains/eval/types.ts +1 -1
  452. package/src/domains/eval/workspaces/git.ts +1 -1
  453. package/src/domains/eval/workspaces/temp-copy.ts +1 -1
  454. package/src/domains/evidence/build.ts +13 -5
  455. package/src/domains/evidence/trust-status.ts +10 -1
  456. package/src/domains/extensions/contract.ts +15 -1
  457. package/src/domains/extensions/discovery.ts +238 -41
  458. package/src/domains/extensions/extension.ts +105 -6
  459. package/src/domains/extensions/index.ts +24 -0
  460. package/src/domains/extensions/integrity.ts +189 -0
  461. package/src/domains/extensions/manager.ts +17 -1
  462. package/src/domains/extensions/resource-path.ts +27 -0
  463. package/src/domains/extensions/resources.ts +18 -38
  464. package/src/domains/extensions/snapshot-store.ts +39 -0
  465. package/src/domains/extensions/snapshot.ts +180 -0
  466. package/src/domains/extensions/state.ts +385 -57
  467. package/src/domains/extensions/types.ts +118 -1
  468. package/src/domains/interop/consent.ts +7 -7
  469. package/src/domains/interop/extension.ts +1 -1
  470. package/src/domains/lifecycle/doctor.ts +27 -21
  471. package/src/domains/lifecycle/migrations/2026-09-01-clio-coder-naming.ts +155 -0
  472. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  473. package/src/domains/lifecycle/migrations/2026-09-01-retire-panes-knobs.ts +59 -0
  474. package/src/domains/lifecycle/migrations/2026-09-01-settings-v2.ts +338 -0
  475. package/src/domains/lifecycle/migrations/index.ts +22 -1
  476. package/src/domains/lifecycle/naming-history.ts +153 -0
  477. package/src/domains/lifecycle/naming-mutable-state.ts +104 -0
  478. package/src/domains/lifecycle/naming-resources.ts +276 -0
  479. package/src/domains/lifecycle/naming-tool-markers.ts +139 -0
  480. package/src/domains/lifecycle/naming-yazi.ts +86 -0
  481. package/src/domains/lifecycle/upgrade-notice.ts +1 -1
  482. package/src/domains/memory/task-memory-handoff.ts +6 -3
  483. package/src/domains/middleware/contract.ts +26 -0
  484. package/src/domains/middleware/extension.ts +24 -24
  485. package/src/domains/middleware/hook-receipts.ts +27 -4
  486. package/src/domains/middleware/hooks-io.ts +65 -32
  487. package/src/domains/middleware/hooks.ts +64 -0
  488. package/src/domains/middleware/index.ts +35 -4
  489. package/src/domains/middleware/marketplace-offer.ts +339 -0
  490. package/src/domains/middleware/registrations.ts +326 -0
  491. package/src/domains/middleware/runtime.ts +30 -2
  492. package/src/domains/middleware/snapshot.ts +20 -7
  493. package/src/domains/mux/contract.ts +195 -25
  494. package/src/domains/mux/detect.ts +23 -6
  495. package/src/domains/mux/dock-controller.ts +365 -0
  496. package/src/domains/mux/extension.ts +7 -1
  497. package/src/domains/mux/index.ts +21 -1
  498. package/src/domains/mux/operations.ts +72 -5
  499. package/src/domains/mux/protocol.ts +19 -6
  500. package/src/domains/mux/socket-client.ts +167 -19
  501. package/src/domains/mux/types.ts +49 -6
  502. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  503. package/src/domains/mux/yazi/event-stream.ts +6 -4
  504. package/src/domains/mux/yazi/profile.ts +1 -1
  505. package/src/domains/mux/yazi/session.ts +79 -7
  506. package/src/domains/mux/yazi/theme.ts +117 -17
  507. package/src/domains/observability/contract.ts +10 -11
  508. package/src/domains/observability/extension.ts +12 -4
  509. package/src/domains/observability/out-of-turn-usage.ts +2 -2
  510. package/src/domains/observability/projection.ts +15 -91
  511. package/src/domains/observability/trace-store.ts +65 -19
  512. package/src/domains/prompts/compiler.ts +75 -55
  513. package/src/domains/prompts/contract.ts +15 -3
  514. package/src/domains/prompts/extension.ts +100 -12
  515. package/src/domains/prompts/fragments/identity/clio-worker.md +2 -4
  516. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  517. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  518. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  519. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  520. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  521. package/src/domains/prompts/fragments/operating/skills.md +11 -18
  522. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  523. package/src/domains/providers/extension.ts +5 -5
  524. package/src/domains/providers/index.ts +1 -1
  525. package/src/domains/providers/knowledge-base-path.ts +1 -1
  526. package/src/domains/providers/model-runtime-capabilities.ts +99 -23
  527. package/src/domains/providers/models/cloud-models/alcf.yaml +1 -1
  528. package/src/domains/providers/models/local-models/{clio-local-coding-targets.yaml → clio-coder-local-coding-targets.yaml} +671 -106
  529. package/src/domains/providers/plugins.ts +1 -1
  530. package/src/domains/providers/resolver.ts +1 -1
  531. package/src/domains/providers/runtime-resolution.ts +31 -0
  532. package/src/domains/providers/runtimes/cloud/alcf.ts +4 -4
  533. package/src/domains/providers/runtimes/common/lmstudio-http.ts +1 -5
  534. package/src/domains/providers/runtimes/common/local-synth.ts +3 -3
  535. package/src/domains/providers/runtimes/common/probe-helpers.ts +9 -4
  536. package/src/domains/providers/runtimes/local-native/llamacpp-completion.ts +1 -1
  537. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  538. package/src/domains/providers/runtimes/local-native/lmstudio.ts +2 -9
  539. package/src/domains/providers/runtimes/protocol/litellm.ts +1 -91
  540. package/src/domains/providers/types/cost-provenance.ts +19 -0
  541. package/src/domains/providers/types/knowledge-base.ts +13 -0
  542. package/src/domains/providers/types/local-model-quirks.ts +87 -39
  543. package/src/domains/providers/types/target-descriptor.ts +3 -3
  544. package/src/domains/resources/extension.ts +1 -1
  545. package/src/domains/resources/library.ts +6 -6
  546. package/src/domains/resources/prompts/loader.ts +1 -1
  547. package/src/domains/resources/skills/content-hash.ts +7 -6
  548. package/src/domains/resources/skills/evals.ts +1 -1
  549. package/src/domains/resources/skills/install.ts +36 -12
  550. package/src/domains/resources/skills/loader.ts +41 -18
  551. package/src/domains/resources/skills/marketplace.ts +21 -2
  552. package/src/domains/resources/skills/promotion.ts +214 -0
  553. package/src/domains/safety/audit.ts +2 -2
  554. package/src/domains/safety/call-target.ts +1 -1
  555. package/src/domains/safety/finish-contract.ts +2 -1
  556. package/src/domains/safety/loop-detector.ts +7 -4
  557. package/src/domains/safety/run-effects.ts +1 -1
  558. package/src/domains/scheduling/extension.ts +4 -4
  559. package/src/domains/session/archive-readers.ts +9 -1
  560. package/src/domains/session/compaction/branch-summary.ts +4 -0
  561. package/src/domains/session/compaction/compact.ts +1 -1
  562. package/src/domains/session/compaction/tokens.ts +4 -0
  563. package/src/domains/session/context-accounting.ts +1 -1
  564. package/src/domains/session/decision-board.ts +1 -1
  565. package/src/domains/session/extension.ts +1 -1
  566. package/src/domains/session/handoff.ts +2 -2
  567. package/src/domains/session/prompt-manifest.ts +0 -5
  568. package/src/domains/session/protected-artifact-journal.ts +12 -6
  569. package/src/domains/session/retry.ts +1 -1
  570. package/src/domains/session/task-board.ts +10 -9
  571. package/src/domains/share/archive.ts +249 -43
  572. package/src/domains/toolchain/install.ts +1 -1
  573. package/src/engine/acp/adapter.ts +3 -3
  574. package/src/engine/acp/event-mapper.ts +3 -3
  575. package/src/engine/acp/server.ts +89 -35
  576. package/src/engine/acp/tool-mediator.ts +2 -2
  577. package/src/engine/acp/types.ts +1 -1
  578. package/src/engine/alcf-oauth.ts +5 -5
  579. package/src/engine/antigravity/subprocess-runtime.ts +2 -2
  580. package/src/engine/api-registry.ts +1 -1
  581. package/src/engine/apis/llamacpp-residency.ts +4 -23
  582. package/src/engine/apis/lmstudio.ts +4 -9
  583. package/src/engine/apis/ollama-native.ts +9 -9
  584. package/src/engine/apis/openai-completions.ts +30 -27
  585. package/src/engine/apis/output-budget.ts +8 -18
  586. package/src/engine/apis/residency.ts +10 -35
  587. package/src/engine/claude/sdk-module.ts +1 -12
  588. package/src/engine/claude/sdk-runtime.ts +6 -6
  589. package/src/engine/claude/subprocess-runtime.ts +1 -1
  590. package/src/engine/claude/tool-safety.ts +4 -4
  591. package/src/engine/gemma-channel-filter.ts +19 -0
  592. package/src/engine/loop-guard.ts +92 -17
  593. package/src/engine/session.ts +14 -7
  594. package/src/engine/tui-primitives.ts +1 -1
  595. package/src/engine/worker-events.ts +6 -6
  596. package/src/engine/worker-runtime.ts +54 -24
  597. package/src/engine/worker-tools.ts +3 -1
  598. package/src/entry/extension-hook-sources.ts +28 -0
  599. package/src/entry/extension-reload.ts +309 -0
  600. package/src/entry/orchestrator.ts +163 -120
  601. package/src/interactive/application-controller.ts +23 -22
  602. package/src/interactive/bus-notices.ts +10 -3
  603. package/src/interactive/chat-loop-messages.ts +3 -13
  604. package/src/interactive/chat-loop.ts +18 -9
  605. package/src/interactive/chat-panel.ts +37 -14
  606. package/src/interactive/chat-renderer.ts +71 -7
  607. package/src/interactive/clio-editor.ts +105 -1
  608. package/src/interactive/context-activity.ts +8 -6
  609. package/src/interactive/context-meter.ts +3 -6
  610. package/src/interactive/context-overlay.ts +1 -1
  611. package/src/interactive/cost-overlay.ts +1 -1
  612. package/src/interactive/council-grid.ts +2 -2
  613. package/src/interactive/dispatch-board.ts +36 -44
  614. package/src/interactive/editor-bash.ts +21 -0
  615. package/src/interactive/editor-steer.ts +9 -4
  616. package/src/interactive/editor-submit.ts +24 -18
  617. package/src/interactive/external-editor.ts +1 -1
  618. package/src/interactive/file-reference-completion.ts +360 -0
  619. package/src/interactive/footer/dashboard.ts +15 -17
  620. package/src/interactive/footer/notifications.ts +14 -8
  621. package/src/interactive/footer/widgets.ts +15 -44
  622. package/src/interactive/interactive-application.ts +116 -61
  623. package/src/interactive/interactive-event-projection.ts +1 -1
  624. package/src/interactive/interactive-input-runtime.ts +6 -2
  625. package/src/interactive/interactive-presentation.ts +22 -17
  626. package/src/interactive/interactive-shell.ts +2 -2
  627. package/src/interactive/interactive-slash-runtime.ts +65 -17
  628. package/src/interactive/interactive-subscriptions.ts +1 -1
  629. package/src/interactive/interactive-tickers.ts +1 -1
  630. package/src/interactive/keybinding-manager.ts +4 -4
  631. package/src/interactive/layout.ts +1 -1
  632. package/src/interactive/memory-overlay.ts +2 -2
  633. package/src/interactive/modal-marker.ts +2 -21
  634. package/src/interactive/mutation-preview.ts +1 -1
  635. package/src/interactive/overlay-frame.ts +4 -12
  636. package/src/interactive/overlay-general-openers.ts +6 -2
  637. package/src/interactive/overlay-key-routing.ts +7 -7
  638. package/src/interactive/overlay-lifecycle.ts +1 -1
  639. package/src/interactive/overlay-model-selectors.ts +3 -3
  640. package/src/interactive/overlays/agents.ts +2 -2
  641. package/src/interactive/overlays/ask-user.ts +25 -11
  642. package/src/interactive/overlays/context-reset.ts +28 -4
  643. package/src/interactive/overlays/cwd-fallback.ts +28 -4
  644. package/src/interactive/overlays/decisions.ts +4 -2
  645. package/src/interactive/overlays/extensions.ts +9 -1
  646. package/src/interactive/overlays/fleet-run-approval.ts +3 -3
  647. package/src/interactive/overlays/handoff-review.ts +2 -2
  648. package/src/interactive/overlays/help-reference.ts +13 -0
  649. package/src/interactive/overlays/interop.ts +1 -1
  650. package/src/interactive/overlays/library-install-confirm.ts +1 -1
  651. package/src/interactive/overlays/message-picker.ts +1 -1
  652. package/src/interactive/overlays/model-selector.ts +39 -31
  653. package/src/interactive/overlays/prompts.ts +10 -4
  654. package/src/interactive/overlays/session-selector.ts +2 -2
  655. package/src/interactive/overlays/settings.ts +360 -303
  656. package/src/interactive/overlays/side-question.ts +2 -2
  657. package/src/interactive/overlays/skills-hub.ts +8 -8
  658. package/src/interactive/overlays/tree-selector.ts +2 -2
  659. package/src/interactive/panes-runtime.ts +145 -43
  660. package/src/interactive/permission-overlay.ts +2 -2
  661. package/src/interactive/prompt-cache-identity.ts +88 -0
  662. package/src/interactive/renderers/retry-status.ts +12 -4
  663. package/src/interactive/renderers/tool-execution.ts +4 -4
  664. package/src/interactive/session-transcript.ts +3 -3
  665. package/src/interactive/slash-autocomplete.ts +454 -165
  666. package/src/interactive/slash-commands.ts +401 -190
  667. package/src/interactive/slash-spec.ts +160 -17
  668. package/src/interactive/status/controller.ts +2 -2
  669. package/src/interactive/stream-pacing-policy.ts +1 -24
  670. package/src/interactive/tasks-overlay.ts +20 -13
  671. package/src/interactive/terminal-lease.ts +6 -7
  672. package/src/interactive/turn-context.ts +41 -26
  673. package/src/interactive/turn-persistence.ts +2 -2
  674. package/src/interactive/turn-prewarm.ts +2 -2
  675. package/src/interactive/turn-runtime.ts +8 -8
  676. package/src/interactive/turn-state.ts +1 -1
  677. package/src/interactive/view/artifacts.ts +12 -9
  678. package/src/interactive/view/view-overlay.ts +13 -10
  679. package/src/interactive/watch-pane.ts +38 -10
  680. package/src/interactive/welcome-dashboard.ts +15 -15
  681. package/src/interactive/worker-progress.ts +4 -4
  682. package/src/interactive/worker-receipts.ts +1 -1
  683. package/src/interactive/worker-stream.ts +1 -4
  684. package/src/interactive/yazi-bridge.ts +72 -11
  685. package/src/tools/agent-tools.ts +30 -1
  686. package/src/tools/artifact.ts +2 -2
  687. package/src/tools/ask-user.ts +6 -6
  688. package/src/tools/bash.ts +2 -2
  689. package/src/tools/bootstrap.ts +4 -0
  690. package/src/tools/builtin-tool-catalog.ts +52 -22
  691. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  692. package/src/tools/codewiki/code-nav.ts +99 -13
  693. package/src/tools/compete-worktrees.ts +27 -17
  694. package/src/tools/context/docs-engine.ts +20 -7
  695. package/src/tools/context/index.ts +44 -13
  696. package/src/tools/core-bootstrap.ts +28 -6
  697. package/src/tools/credential-present.ts +1 -2
  698. package/src/tools/dispatch-admission.ts +4 -2
  699. package/src/tools/dispatch-arguments.ts +6 -2
  700. package/src/tools/dispatch-plan.ts +48 -15
  701. package/src/tools/dispatch-run-events.ts +13 -11
  702. package/src/tools/dispatch-runner.ts +11 -6
  703. package/src/tools/dispatch-schema.ts +338 -0
  704. package/src/tools/dispatch-types.ts +3 -0
  705. package/src/tools/dispatch.ts +9 -254
  706. package/src/tools/find.ts +1 -6
  707. package/src/tools/ledger.ts +3 -5
  708. package/src/tools/monitor-surface.ts +5 -13
  709. package/src/tools/monitor.ts +4 -4
  710. package/src/tools/observation.ts +4 -5
  711. package/src/tools/observers.ts +0 -33
  712. package/src/tools/panes-surface.ts +4 -11
  713. package/src/tools/panes.ts +4 -2
  714. package/src/tools/policy.ts +15 -2
  715. package/src/tools/read.ts +5 -6
  716. package/src/tools/registry.ts +30 -7
  717. package/src/tools/result-shaping.ts +18 -14
  718. package/src/tools/steer-surface.ts +1 -1
  719. package/src/tools/task-worktree.ts +28 -7
  720. package/src/tools/tasks.ts +1 -1
  721. package/src/tools/truncate.ts +6 -5
  722. package/src/tools/verify/authoring.ts +3 -6
  723. package/src/tools/verify/frontend.ts +1 -1
  724. package/src/tools/verify/surface.ts +6 -12
  725. package/src/tools/web-fetch-surface.ts +1 -3
  726. package/src/tools/web-fetch.ts +1 -1
  727. package/src/worker/entry.ts +4 -3
  728. package/src/worker/protocol.ts +16 -14
  729. package/src/worker/spec-contract.ts +2 -2
  730. package/src/worker/stdin-demux.ts +2 -2
  731. package/dist/chunk-36EJLSQQ.js +0 -814
  732. package/dist/chunk-GXNLGKAB.js +0 -571
  733. package/dist/chunk-K7VKOLQQ.js +0 -15
  734. package/dist/chunk-PMZCIOCJ.js +0 -25
  735. package/dist/chunk-SUCTJL45.js +0 -45
  736. package/dist/chunk-SUW5DORT.js +0 -819
  737. package/dist/chunk-TZ3SGWZZ.js +0 -48
  738. package/dist/chunk-UOV2BYIW.js +0 -107
  739. package/dist/chunk-VFA6GDY5.js +0 -1625
  740. package/dist/doctor-QOA5FNY5.js +0 -313
  741. package/dist/fleet-view-ZCON35AG.js +0 -102
  742. package/dist/panes-HMABYVO4.js +0 -58
  743. package/docs/artifact-versions.md +0 -67
  744. package/docs/documentation-coverage.md +0 -46
  745. package/docs/documentation-guide.md +0 -167
  746. package/docs/release-cut-checklist.md +0 -193
  747. package/docs/time-conventions.md +0 -101
  748. package/skills/meta/clio-test/SKILL.md +0 -133
  749. package/skills/meta/clio-test/references/harness.md +0 -126
  750. package/skills/meta/clio-test/references/test-map.md +0 -69
  751. package/src/engine/apis/degraded-inference.ts +0 -95
@@ -1,167 +0,0 @@
1
- # Documentation Standards and Codebase Alignment
2
-
3
- > [!TIP]
4
- > **Interactive Spec Available:** An interactive documentation link linter, phrasing/claim evaluator, and alignment portal is located at [docs/html/documentation_blueprint.html](html/documentation_blueprint.html) (Version: 0.4.0).
5
-
6
- Clio Coder is an experimental community alpha. Documentation should help contributors and early users work from the source of truth without overstating maturity. When docs drift, prefer the current source and tests over older prose or aspirational roadmap notes.
7
-
8
- ---
9
-
10
- ## Source-first documentation rule
11
-
12
- Before changing public docs, inspect the relevant implementation:
13
-
14
- 1. `git log --oneline -- <area>` for recent intent and release context.
15
- 2. `src/**` for current behavior.
16
- 3. `tests/**` for executable contracts and edge cases.
17
- 4. `README.md`, `CHANGELOG.md`, and `docs/*.md` for existing public wording.
18
-
19
- Classify claims clearly:
20
-
21
- | Claim class | How to word it |
22
- | --- | --- |
23
- | Shipped and tested | State directly and link to source/tests. |
24
- | Implemented but experimental | Say alpha/experimental and name sharp edges. |
25
- | Typed contract exists, default runtime is inert | Say the schema exists but no public loader/rules are active. |
26
- | Planned/future | Put in roadmap language; do not present as available behavior. |
27
-
28
- ---
29
-
30
- ## Documentation map
31
-
32
- | Guide | Primary source references | What it should cover |
33
- | --- | --- | --- |
34
- | [README.md](../README.md) | `CHANGELOG.md`, package metadata, release receipts | Product overview, install, first run, alpha framing, and release status. |
35
- | [docs/README.md](README.md) | This docs directory | Documentation hub. |
36
- | [commands-and-modes.md](commands-and-modes.md) | `src/cli/index.ts`, `src/cli/args.ts`, `src/interactive/slash-commands.ts`, `src/domains/dispatch/**` | CLI commands, headless run flags (`--session`, `--continue`, `--json-events`), session continuity, `--json` wire projection promise, slash commands, keybindings, live steering. |
37
- | [context-engine.md](context-engine.md) | `src/domains/context/**`, `src/domains/session/context-accounting.ts`, `src/domains/session/context-ledger.ts`, `src/domains/session/compaction/` | Context window resolution, per-model probe capabilities, token accounting, snapshots, the three compaction mechanisms, model-driven `clio-coder context init`, format v4 session enforcement. |
38
- | [context-working-set.md](context-working-set.md) | `src/domains/context/working-set/**`, `src/domains/session/entries.ts`, `src/interactive/turn-context.ts` | Working-set vocabulary, eviction as a projection, the `contextEviction` / `contextRecall` records, the marker contract, the `age-horizon` and `structural-v1` policies, recall semantics, and the operator surfaces. |
39
- | [architecture.md](architecture.md) | `tests/boundaries/check-boundaries.ts`, `src/core/domain-loader.ts`, `src/engine/**`, `src/worker/**` | Source layout, 5 enforced boundary rules (dependency direction vs import form), runtime flow mermaid diagram, event/audit model, detect-and-rollback write boundaries. |
40
- | [dispatch-architecture-rationale.md](dispatch-architecture-rationale.md) | `src/domains/dispatch/**`, `tests/boundaries/check-boundaries.ts` | Design rationale, not behavior: invariants that cross the seams a dispatch split would use, what any future split must preserve, the one dispatch→eval import, and the closed barrel-import decision. |
41
- | [configuration-and-targets.md](configuration-and-targets.md) | `src/core/defaults.ts`, `src/core/config.ts`, `src/domains/providers/**`, `src/cli/configure.ts`, `src/cli/targets.ts`, `src/cli/models.ts`, `src/cli/auth.ts` | TargetDescriptor, contextWindowProvenance (`configured`, `discovered`, `catalog`, `runtime-default`), settings.yaml, strict validation, saved defaults vs live routing. |
42
- | [safety-model.md](safety-model.md) | `src/domains/safety/**`, `src/tools/registry.ts`, `src/tools/policy.ts`, `src/tools/verify/**`, `src/entry/orchestrator.ts`, `src/domains/dispatch/write-boundary.ts` | Operating posture, `resolveEffectiveAutonomy` / `resolveBaselineAutonomy`, detect-and-rollback write boundaries, approval axes, damage control, typed validation. |
43
- | [prompt-envelope-and-tools.md](prompt-envelope-and-tools.md) | `src/domains/prompts/compiler.ts`, `src/interactive/chat-loop.ts`, `src/core/tool-names.ts`, `src/tools/registry.ts`, `src/tools/observation.ts`, `src/tools/agent-tools.ts` | Prompt envelope reuse, canonical tool delivery via single `agent-tools.ts` adapter, seven-plane tool surface, observation envelope, strict `ToolName` keying. |
44
- | [tool-usage.md](tool-usage.md) | `src/tools/agent-tools.ts`, `src/tools/registry.ts`, `src/tools/observation.ts` | In-depth reference for all 20 worker tools: parameters, typical payloads, `prepareArguments` normalizers, and error examples. |
45
- | [provider-adapter-cookbook.md](provider-adapter-cookbook.md) | `src/domains/providers/registry.ts`, `src/domains/providers/types/runtime-descriptor.ts` | RuntimeDescriptor, probe(), probeReasoning(), synthesizeModel(), thinking mechanisms. |
46
- | [alcf-provider.md](alcf-provider.md) | `src/domains/providers/runtimes/cloud/alcf.ts`, `src/engine/alcf-oauth.ts` | Globus PKCE OAuth, openAuthStorage(), Sophia vLLM, Metis API, chatTemplateKwargsUnsupported. |
47
- | [environment-variables.md](environment-variables.md) | `src/core/guardrails.ts`, `src/core/xdg.ts`, `src/domains/providers/knowledge-base-path.ts` | Comprehensive env var matrix: guardrail overrides, directory layout (CLIO_CODER_HOME), debug toggles, and internal plumbing. |
48
- | [built-in-agents.md](built-in-agents.md) | `src/domains/agents/**`, `src/domains/agents/builtins/*.md`, `src/domains/dispatch/**` | Builtin agent recipes, discovery roots, frontmatter schema, fleet contract shadowing (`.clio-coder/fleets/<name>.md`), active route automation. |
49
- | [fleet-dispatch.md](fleet-dispatch.md) | `src/domains/dispatch/**` | Multi-node SSH dispatch: process-safe admission, capacity leases, Contract v4 write boundaries (detect-and-rollback), bounded check/repair loops (`loop_bound_exhausted`), deterministic code steps, attestation, receipts v16. |
50
- | [capacity-and-scheduling.md](capacity-and-scheduling.md) | `src/domains/scheduling/**`, `src/domains/dispatch/capacity-lease.ts`, `src/domains/dispatch/reservation-store.ts` | Multi-process capacity leases (`dispatch-admission.json`), heartbeat TTLs, cross-process transaction locks (`dispatch-admission.json.lock`), and cluster drain controls. |
51
- | [worker-dispatch-mechanics.md](worker-dispatch-mechanics.md) | `src/worker/**` | NDJSON parent-child socket protocols, control/bulk lane demuxing, watchdog timers, worker attestation (13 protocol fields), permission parking, exit codes. |
52
- | [fleet-demo-runbook.md](fleet-demo-runbook.md) | `src/domains/dispatch/**` | Multi-node fleet demo: SSH setup, C++ build/repair workflow, reviewer gates, receipt verification v16. |
53
- | [session-lifecycle.md](session-lifecycle.md) | `src/engine/session.ts`, `src/domains/session/**` | Session lifecycle, on-disk ledger format v4 (`current.jsonl`), tree branching (`tree.json`), active-path lineage selection, `/fork`, `/resume`, checkpoints, and write-ahead protected-artifact journal. |
54
- | [acp.md](acp.md) | `src/engine/acp/**`, `src/cli/acp.ts` | Agent Client Protocol (ACP) server over stdio, tool mediation, non-stall permission handling, timeout bounds, and error taxonomy. |
55
- | [artifact-versions.md](artifact-versions.md) | `src/domains/dispatch/receipt-integrity.ts`, `src/engine/session.ts`, `src/worker/spec-contract.ts`, `src/domains/agents/fleet-contract.ts`, `src/domains/eval/schema/`, `src/domains/observability/trace-store.ts` | Version registry and migration policies for all 9 serialized artifact schemas across Clio Coder. |
56
- | [exit-codes-and-output.md](exit-codes-and-output.md) | `src/cli/**`, `src/entry/**` | Global process exit codes (0, 1, 2, 3), `--help` standard on stdout, machine-readable JSON streaming (`--json`, `--json-events`), and headless stdout deliverable contracts. |
57
- | [troubleshooting.md](troubleshooting.md) | `src/core/**`, `src/cli/**`, `src/domains/**` | Actionable error remediation and diagnostics keyed by exact user-facing messages. |
58
- | [glossary.md](glossary.md) | `src/domains/dispatch/types.ts`, `src/tools/**`, `src/domains/agents/**`, `src/core/**` | Canonical definitions of 45 core architectural concepts mapped to `src/` types. |
59
- | [documentation-coverage.md](documentation-coverage.md) | `src/**` | Complete source-to-documentation mapping matrix and subsystem coverage status. |
60
- | [tui-design.md](tui-design.md) | `src/interactive/theme/tokens.ts`, `src/interactive/theme/glyphs.ts` | TUI color system, glyph vocabulary (`contextReserve`), structural layouts, state choreography, code ink. |
61
- | [installation-and-lifecycle.md](installation-and-lifecycle.md) | `src/cli/paths.ts`, `src/cli/doctor.ts`, `src/cli/uninstall.ts`, `src/cli/removal.ts` | Installation, upgrade, reset, uninstallation, launcher ownership and what `--remove-binary` will and will not remove, partial-failure behavior, configuration folders (`credentials.yaml` `0o600`), and permissions. |
62
- | [release-cut-checklist.md](release-cut-checklist.md) | `scripts/check-release.mjs`, `tests/smoke/pack-install.test.ts`, `benchmarks/internal/`, `package.json` | Ordered release-cut steps with an explicit authorization boundary: everything external or irreversible is marked not run and needs an operator decision. |
63
- | [observability.md](observability.md) | `src/domains/observability/**`, `src/interactive/view/**`, `src/domains/dispatch/**`, `src/core/bus-events.ts` | `/view` artifact browsing, receipt verification, worker diagnostics, event routing, and cost snapshots. |
64
- | [evidence-and-memory.md](evidence-and-memory.md) | `src/domains/evidence/**`, `src/domains/memory/**`, `src/cli/evidence.ts`, `src/cli/memory.ts` | Evidence corpus layout, findings, memory lifecycle and prompt injection. |
65
- | [proactive-memory.md](proactive-memory.md) | `src/domains/memory/**` | Proactive task memory architecture, session task bank, intervention rules, and handoff carrying. |
66
- | [trace-store.md](trace-store.md) | `src/cli/trace.ts`, `src/domains/observability/trace-store.ts` | WAL SQLite trace mirror database schema, rowid cursor queries, rebuildability, 6 `clio-coder trace` subcommands (`runs`, `phases`, `tail`, `procs`, read-only `sql` SELECT, `ui`). |
67
- | [eval-runner.md](eval-runner.md) | `src/domains/eval/**`, `src/cli/eval.ts` | Local YAML eval tasks, dual token accountings (`tokens.*` wire vs `receiptUsage.*` journal), fail-closed null totals, EvalArtifactV4 format, `verify.measure` task outcome recording. |
68
- | [evals-internal.md](evals-internal.md) | `src/domains/eval/**` | Private context index determinism and target smoke matrices. External model benchmarks are documented under `benchmarks/`. |
69
- | [extensions-and-sharing.md](extensions-and-sharing.md) | `src/domains/extensions/**`, `src/domains/resources/**`, `src/domains/share/**`, `src/cli/extensions.ts`, `src/cli/share.ts` | Prompt and skill resources, extension manifests, portable share archives. |
70
- | [skills-marketplace.md](skills-marketplace.md) | `src/interactive/overlays/skills-hub.ts`, `src/domains/resources/skills/marketplace.ts` | Skills Hub marketplace discovery through the install resolver, empty state, install actions, publishing flow. |
71
- | [model-catalog.md](model-catalog.md) | `src/domains/providers/catalog.ts`, `src/domains/providers/models/**`, `src/domains/providers/probe/**`, `src/domains/providers/model-capabilities.ts` | Model catalog, live probes (`--offline` toggle), exact-id selector `probeCapabilitiesForModel`, field-note promotion. |
72
- | [middleware-and-components.md](middleware-and-components.md) | `src/domains/components/**`, `src/domains/middleware/**`, `src/cli/components.ts` | Active component snapshots, phase-aware middleware hook budgets (`DEFAULT_MIDDLEWARE_HOOK_BUDGETS_MS`). |
73
- | [scientific-validation.md](scientific-validation.md) | `src/domains/safety/rigor.ts`, `src/domains/safety/finish-contract.ts` | Advisory validation-contract patterns for scientific artifacts and HPC assumptions. |
74
- | [evolution.md](evolution.md) | `src/domains/evolution/**`, `src/cli/evolve.ts` | Falsifiable Change Manifest JSON templates, evidence-linked validation, and `clio-coder evolve`. |
75
- | [config-knobs-audit.md](config-knobs-audit.md) | `src/cli/config.ts` | Point-in-time inventory of legacy environment variables (Historical Appendix). |
76
-
77
- ---
78
-
79
- ## Style conventions
80
-
81
- ### Alpha framing
82
-
83
- Use direct, honest language:
84
-
85
- - "experimental community alpha"
86
- - "source-build path"
87
- - "current runtime is conservative/inert"
88
- - "advisory contract"
89
- - "planned/future milestone"
90
-
91
- Avoid phrases that imply managed production stability, full plugin maturity, or automatic scientific validation when the current code does not provide it.
92
-
93
- ### Markdown structure
94
-
95
- - Prefer short sections with tables for command and schema references.
96
- - Use fenced examples that can be copied.
97
- - Keep links relative and repository-portable; do not use absolute `file:///home/...` links.
98
- - Mention source file paths in backticks instead of editor-specific absolute URLs.
99
-
100
- ### GitHub alerts
101
-
102
- Use alerts sparingly:
103
-
104
- > [!NOTE]
105
- > Context or caveats that prevent misinterpretation.
106
-
107
- > [!WARNING]
108
- > Sharp edges, alpha limitations, or behavior that can surprise contributors.
109
-
110
- > [!CAUTION]
111
- > Safety, data loss, or security-sensitive constraints.
112
-
113
- ---
114
-
115
- ## Blueprint Coverage & Format Strategy
116
-
117
- Clio Coder maintains two complementary documentation formats:
118
-
119
- 1. **Markdown Documents (`docs/*.md`)**: The single canonical reference for coding agents, developers, and maintainers. They optimize for retrievability, exact enumerations, schema tables, typed TypeScript contracts, and source citations (`src/...:line`).
120
- 2. **Interactive HTML Blueprints (`docs/html/*.html`)**: Visual reference cards and client-side simulators designed for human operators exploring dynamic behaviors (such as safety rule evaluation, token compaction calculation, YAML target validation, and prompt structure).
121
-
122
- ### Blueprint Creation Policy
123
-
124
- Not every markdown document earns a standalone interactive HTML blueprint. Reference specifications—such as `artifact-versions.md`, `exit-codes-and-output.md`, `glossary.md`, `troubleshooting.md`, `session-lifecycle.md`, `acp.md`, `capacity-and-scheduling.md`, and `documentation-coverage.md`—are authoritative tabular contracts and state machine specifications. Building client-side JavaScript simulators for these documents would duplicate runtime validation logic and introduce synchronization hazards across releases. These pages are therefore linked directly from `docs/html/index.html` as Markdown Reference Specifications with explicit visual distinction from interactive simulator blueprints.
125
-
126
- ---
127
-
128
- ## Update checklist
129
-
130
- When a feature changes:
131
-
132
- 1. Identify the source owner (`src/cli`, `src/interactive`, `src/tools`, or a domain).
133
- 2. Check whether public CLI help changed.
134
- 3. Update the mapped guide in the same PR.
135
- 4. If behavior affects safety, sessions, receipts, prompts, targets, or dispatch, update both README-level user docs and the deeper guide.
136
- 5. Run a lightweight link check for changed Markdown.
137
- 6. For release docs, verify version badges/sections match `package.json` and `CHANGELOG.md`.
138
-
139
- Suggested local link check:
140
-
141
- ```bash
142
- python3 - <<'PY'
143
- import pathlib, re
144
- for md in list(pathlib.Path('docs').glob('*.md')) + [pathlib.Path('README.md')]:
145
- text = md.read_text()
146
- for m in re.finditer(r'\[[^\]]+\]\(([^)]+)\)', text):
147
- link = m.group(1)
148
- if link.startswith(('http://', 'https://', 'mailto:', '#')):
149
- continue
150
- target = link.split('#')[0]
151
- if target and not (md.parent / target).exists():
152
- line = text.count('\n', 0, m.start()) + 1
153
- print(f'{md}:{line}: missing {link}')
154
- PY
155
- ```
156
-
157
- ---
158
-
159
- ## Community documentation priorities
160
-
161
- Clio users tend to be early adopters running real repositories, local models, and scientific/HPC code. Good docs should therefore prioritize:
162
-
163
- - reproducible first-run and target configuration;
164
- - local model/runtime field notes with exact versions and serving settings;
165
- - safety receipts and redaction guidance for issue reports;
166
- - small examples for project-local `CLIO-CODER.md`, `.clio-coder/safety.yaml`, prompts, skills, and agents;
167
- - clear labels for experimental surfaces such as middleware and scientific validation contracts.
@@ -1,193 +0,0 @@
1
- # v0.3.8 Release-Cut Checklist
2
-
3
- The ordered steps that turn the prepared `v0.3.8` branch into a published
4
- release. Everything above the line marked **AUTHORIZATION BOUNDARY** is
5
- repeatable and reversible and is run locally before the cut. Everything below
6
- it is external or irreversible and needs an explicit decision from the
7
- operator. This page is the procedure and the release report carries the live
8
- state of every step.
9
-
10
- ## Status of the prepared tree
11
-
12
- | Item | State |
13
- | --- | --- |
14
- | Branch | After the release-cut evidence commit, `v0.3.8` is 30 commits ahead of `main`: the 29-commit candidate through `9b7b80cc` plus the final documentation and verification-evidence commit. The candidate includes the original implementation, the four release-test fixes (#233, #235, #238, #239), the WTF-P extension-resource merge, the `$ARGUMENTS` fidelity fix (#240), and the extension-agent resolution fix (#241). `origin/v0.3.8` remains at `af6546b2`, 17 commits behind the final local tip. |
15
- | `package.json` version | `0.3.8`; `package-lock.json` agrees at both version fields; the top changelog heading is `## 0.3.8 - 2026-08-29`. |
16
- | `main` | `598be99c`, the v0.3.7 release SHA; it is an ancestor of the final `v0.3.8` candidate and moves only at Part 4. |
17
- | `origin/main` | `598be99c`, matching local `main` and still an ancestor of the final candidate. |
18
- | Tags | `v0.3.7` exists on `598be99c`; no `v0.3.8` tag exists locally or remotely. The redundant `wtfp-safety` tag was deleted. The eight local `tmp-032-*` recovery tags remain and must never be pushed. |
19
- | GitHub Release | `v0.3.7` is published; no GitHub Release exists for `v0.3.8`. |
20
- | npm registry | `@iowarp/clio-coder@0.3.8` is absent; `latest` is `0.3.7`; the 0.3.8 dist-tag is undecided. |
21
- | npm history | Published versions are 0.3.0 through 0.3.4, 0.3.6, and 0.3.7. Version 0.3.5 was published and withdrawn and can never be reused. |
22
- | Milestone | `v0.3.8` has six open issues, all fixed on the branch: #233, #235, #238, #239, #240, and #241. They close from their `Fixes` trailers when the final candidate reaches `main`. |
23
- | Interactive release test | The original three-round report is `docs/release-notes/v0.3.8-release-test.md` (57 PASS / 8 FAIL / 3 PARTIAL / 6 OBSERVATION / 2 NOT RUN). The continuation is `docs/release-notes/v0.3.8-verification.md` (44 PASS / 6 non-blocking FAIL / 7 OBSERVATION / 1 NOT RUN), which closes the blocker, verifies the three later merges, and carries the final `CUT` verdict. |
24
- | Commit provenance identity | Still a post-release maintainer follow-up rather than a release gate; unchanged from 0.3.7. |
25
-
26
- ---
27
-
28
- ## Part 1: verification (repeatable)
29
-
30
- Run against the exact final candidate with `NO_COLOR` unset and
31
- `TERM=xterm-256color`, so the color-sensitive tests see a real terminal.
32
-
33
- 1. `npm run typecheck`
34
- 2. `npm run lint` (Biome plus the hygiene checks, which include the boundary invariants and the skills pin check)
35
- 3. `npm run skills:check`
36
- 4. `npm run build`
37
- 5. `npm run test`
38
- 6. `npm run test:trace-viewer`
39
- 7. `npm run ci` (runs 1 through 6)
40
- 8. `npm run ci:release` (7 plus `scripts/check-release.mjs`: dist shebang
41
- integrity, version coherence between `package.json` and the top
42
- `CHANGELOG.md` heading, the deterministic 26-scenario behavioral machinery
43
- corpus against its checked baseline, the forbidden-file list, the required
44
- runtime resources, and the tarball and unpacked size budgets). A baseline
45
- mismatch prints reviewable evidence and names prompt- or recipe-affected
46
- corpus results. For an intentional change, inspect that diff, run
47
- `node benchmarks/eval/check-behavioral-release.mjs --update` (with `TMPDIR` on a disk-backed path if `/tmp` is a small tmpfs),
48
- review `benchmarks/eval/behavioral-machinery-baseline.json`, and commit it
49
- with the change.
50
- 9. Optional: step 8 again under Node 24. Hosted CI gates on Node 22 alone,
51
- the `engines` floor; the weekly `flake-hunt` workflow carries Node 24.
52
- Repeat locally only when the cut touches runtime-sensitive code.
53
- 10. `npm run live:smoke -- --target <id>` for one real headless turn through
54
- the built binary against a configured target, which is the one release
55
- check a deterministic suite cannot give. The packaged-install lifecycle
56
- (pack, install into a clean prefix, run the installed launcher) is
57
- `tests/smoke/pack-install.test.ts` and already ran under step 5.
58
- 11. `npm pack --dry-run`, then a real `npm pack` into a temporary directory.
59
- Inspect the complete file list: `skills/`, `docs/*.md`, the builtin
60
- agents, the model catalogs, and `damage-control-rules.yaml` are present;
61
- `docs/html/`, `apps/workbench`, `.superpowers`, `tests/`, `scripts/`,
62
- `benchmarks/`, scratch files, and source maps are absent. Record the
63
- filename, packed and unpacked sizes, integrity, and shasum.
64
- 12. Install that tarball into a clean temporary prefix with an empty
65
- `CLIO_CODER_HOME` and verify `--version`, `--help`, an empty-state non-TTY
66
- launch, `doctor`, and `uninstall --dry-run` without developer-local state.
67
- 13. Before interactive release testing, run the model-required public
68
- behavioral corpus manually against the release target and built CLI:
69
- `node dist/cli/index.js eval run --suite benchmarks/eval/behavioral-model.yaml --target mini --clio-coder-entry dist/cli/index.js`
70
- and
71
- `node dist/cli/index.js eval run --suite benchmarks/eval/behavioral-model-negative-control.yaml --target mini --clio-coder-entry dist/cli/index.js`.
72
- Retain both Artifact v4 files as release evidence. The positive corpus must
73
- report its scenario and role rows without an undeclared envelope mismatch;
74
- the negative control must still record violated exploration and safety
75
- labels. These model-dependent runs are manual and are never required by
76
- ordinary deterministic CI. Continue with interactive release testing,
77
- which this cut added because the release is
78
- almost entirely interactive surface: a tester agent drives the step-12
79
- install through real TUI sessions in a throwaway repository, one session
80
- per shipped feature, against local targets for the main session and a
81
- cloud target for council members and advice, and writes a per-feature
82
- PASS / FAIL / BLOCKED table with evidence. A FAIL on a deterministic
83
- behavior (a refusal, a file, a receipt field, CLI output) blocks the cut;
84
- a BLOCKED(model) on a model decision does not.
85
-
86
- ## Part 2: version and notes (repeatable)
87
-
88
- 14. Files carrying a version reference, to update together if the number
89
- changes: `package.json` and `package-lock.json`, the `## 0.3.8 - <date>`
90
- heading in `CHANGELOG.md`, the `(Version: 0.3.8)` markers in `docs/*.md`,
91
- the `Blueprint (v0.3.8)` titles in `docs/html/*.html`, the `--branch`
92
- pin in the README install block (the hygiene lint checks it), and the
93
- measured-at figures in `scripts/check-release.mjs` if the package size
94
- moved materially. For 0.3.7 the tarball measured 6.5 MB packed and
95
- 37.9 MB unpacked; re-measure for 0.3.8, inside the 10 MB and 50 MB ceilings set for 0.3.6.
96
- 15. Confirm the `## 0.3.8` section of `CHANGELOG.md` describes every
97
- user-visible behavior change under `### Added`, and every change to an
98
- existing behavior under `### Changed`, and carries no Workbench release
99
- narrative. The release workflow uses this section verbatim as the GitHub
100
- Release body.
101
- 16. `docs/artifact-versions.md` lists every persisted artifact this release
102
- added or re-versioned. For 0.3.8 that is run receipt integrity v20, which
103
- adds `pathProvenance` on dispatch intent and the resolved `pathScope`, and
104
- whose entry must also record that a receipt below v20 is reported as
105
- retired rather than invalid, and the durable assignment record, which now
106
- carries its owner pid, process birth token, and acquisition time.
107
- 17. Re-run `npm run ci:release` after any version edit and commit as one
108
- commit on `v0.3.8`.
109
-
110
- ## Part 3: present the gate
111
-
112
- 18. Report to the operator before touching `main`: the exact final `v0.3.8`
113
- SHA and clean status, the commits added since the handoff SHA, the gate
114
- commands with pass/fail totals, the package version and changelog heading,
115
- the tarball audit, the clean-install results, the interactive test table,
116
- and any deferred live check, confirmation that no tag, GitHub Release, or
117
- npm version exists yet, the proposed commands for Parts 4 through 6, and
118
- the npm dist-tag. The dist-tag is the operator's call; for 0.3.7 the
119
- operator chose `latest` on 2026-08-24; 0.3.8's dist-tag is undecided.
120
-
121
- ---
122
-
123
- ## AUTHORIZATION BOUNDARY
124
-
125
- Every step below leaves the local checkout, is externally visible, or cannot be
126
- undone by a local `git` command. None of them runs without the operator
127
- confirming the exact SHA and the commands.
128
-
129
- ## Part 4: fast-forward `main`
130
-
131
- 19. `git fetch origin` immediately before integrating; require `origin/main`
132
- to be an ancestor of the reviewed `v0.3.8` tip and confirm no other
133
- worktree has `main` checked out.
134
- 20. `git checkout main && git merge --ff-only v0.3.8`. No merge commit, no
135
- rebase, no reset. Verify `main` equals the reviewed SHA and is clean.
136
- 21. `git fetch origin` once more; stop on any unexpected remote movement. Then
137
- `git push origin main`. Never `--force` or `--force-with-lease`. The push
138
- closes the six milestone issues through their `Fixes` trailers.
139
-
140
- ## Part 5: exact-SHA CI, tag, GitHub Release
141
-
142
- 22. The `main` push triggers the `ci` workflow. Require that exact-SHA run to
143
- finish green before tagging; `release.yml` then runs the same gate again on
144
- the tagged tree itself. A red run blocks the cut: investigate it rather than
145
- tagging around it, and never silence a flake with an unrelated change.
146
- 23. Reconfirm that tag `v0.3.8` and the GitHub Release do not exist, then
147
- `git tag -a v0.3.8 -m "Clio Coder 0.3.8"` on the green SHA and
148
- `git push origin refs/tags/v0.3.8`.
149
- 24. The tag push triggers `.github/workflows/release.yml`, which verifies the
150
- tag matches `package.json`, runs `npm run ci:release` on the tagged tree,
151
- extracts the `## 0.3.8` section of `CHANGELOG.md` as the release body, and
152
- attaches the tarball. Do not create a release by hand. Verify the run's
153
- SHA, the notes, the attached tarball, and the URL.
154
-
155
- ## Part 6: npm publication (irreversible)
156
-
157
- 25. `npm whoami` and confirm the registry and account; reconfirm
158
- `@iowarp/clio-coder@0.3.8` is still absent.
159
- 26. Obtain the operator's explicit dist-tag decision. `latest` makes this the
160
- default install for every user; `--tag next` keeps `0.3.7` as the default.
161
- 27. Run `npm publish` once. `prepublishOnly` re-runs `ci:release` as a safety
162
- net; it is not a substitute for Part 1.
163
- 28. A published version cannot be replaced. `npm unpublish` is restricted and
164
- time-limited; a mistake is corrected by publishing a higher version.
165
-
166
- ## Part 7: post-publish verification and follow-ups
167
-
168
- 29. `npm view @iowarp/clio-coder@0.3.8` and the selected dist-tag.
169
- 30. On a clean machine, `npm install -g @iowarp/clio-coder` from the registry
170
- rather than from a local tarball, then repeat step 12 against it, plus
171
- `configure` to a real target and one real turn when one is authorized.
172
- This is the only step that tests what users actually receive.
173
- 31. From an installation of 0.3.7, verify `clio-coder upgrade` finds and
174
- applies 0.3.8.
175
- 32. Record the SHA, CI URL, tag, GitHub Release URL, npm version and dist-tag,
176
- tarball evidence, and the post-publish verification in the release report.
177
- 33. Maintainer follow-up, independent of the release: verify the commit
178
- provenance email `clio-coder@iowarp.ai` on IOWarp-controlled GitHub and
179
- GitLab identities such as `clio-coder-bot` or `iowarp-clio`, and upload
180
- `assets/clio-coder-avatar-512.png` as the account avatar where PNG is
181
- required. Commit data itself cannot carry a logo, so this affects only how
182
- those platforms render the trailers, never whether attributed commits or
183
- the release work. Clio never creates accounts or performs remote
184
- operations for this.
185
-
186
- ---
187
-
188
- ## Rollback
189
-
190
- There is no rollback for step 27. Before it, every step is reversible: steps
191
- 23 and 24 by deleting the local and remote tag and the draft release, steps 19
192
- through 21 by a new forward commit on `main` (never by rewriting it), and
193
- everything in Parts 1 and 2 by `git checkout`.
@@ -1,101 +0,0 @@
1
- # Time and Clock Conventions
2
-
3
- This document defines the canonical time and clock conventions for `clio-coder`. These policies establish consistent rules for measuring durations, recording instants, converting timezones, and managing concurrency across the codebase.
4
-
5
- This policy is promoted from Section 10 of the repository time audit conducted on 2026-08-15.
6
-
7
- ---
8
-
9
- ## 1. Which Clock for What Purpose
10
-
11
- ### Monotonic clocks for durations
12
-
13
- All durations must be measured using `performance.now()` without exception. This rule applies to latency measurements, elapsed run times, time-to-first-token (TTFT), execution budgets, timeouts, stall watchdogs, retry backoff intervals, and rendering metrics.
14
-
15
- Whenever a value answers the question "how long did this take" or "how long until", it must originate from the monotonic clock. Monotonic clocks are unaffected by Network Time Protocol (NTP) adjustments, system suspend or resume events, and Daylight Saving Time (DST) transitions.
16
-
17
- ### Wall clocks for anchored instants
18
-
19
- Wall clock reads via `Date.now()` or `new Date()` are reserved exclusively for anchoring instants that a human operator or an external machine will inspect. These include timestamps such as `startedAt`, `endedAt`, `createdAt`, and `expiresAt`. Wall clocks must never be used to measure durations or elapsed intervals.
20
-
21
- ### Combined anchor and span pattern
22
-
23
- When both an anchor instant and a duration are required, code must follow the pattern established in `src/domains/dispatch/code-step.ts:291-306`:
24
-
25
- ```ts
26
- const startedAtMs = Date.now(); // wall anchor, for the record
27
- const clock = process.hrtime.bigint(); // monotonic span
28
- const startedAt = new Date(startedAtMs).toISOString();
29
- // ... operation executes ...
30
- const durationMs = Number((process.hrtime.bigint() - clock) / 1_000_000n);
31
- const endedAt = new Date(startedAtMs + durationMs).toISOString();
32
- ```
33
-
34
- The wall clock anchors the starting instant for human correlation. The monotonic clock measures the elapsed span. The ending timestamp `endedAt` is derived by adding the monotonic span to the initial wall anchor. This derivation guarantees that `endedAt - startedAt === durationMs` remains true regardless of any wall-clock adjustments that occur during execution.
35
-
36
- ### Injectable clock seams
37
-
38
- Every module that reads a clock must accept an optional injectable clock interface in its configuration or options, defaulting to the system clock. Injectable clock seams allow test suites to run deterministically without relying on real-time passage or introducing timing races.
39
-
40
- ### Cross-host timestamp boundaries
41
-
42
- A timestamp produced on one host must never be compared directly against a clock read on another host. Systems must receive-stamp incoming events upon arrival on the local host, maintain an explicit clock offset, or order events using sequence numbers rather than timestamps. Code must never subtract timestamps across host boundaries.
43
-
44
- ### Sequence numbers over timestamps for ordering
45
-
46
- When ordering operations under concurrency, code must prefer monotonic sequence numbers over timestamps. Components such as the agent ledger (`src/domains/session/agent-ledger-store.ts`) and the execution scheduler (`src/domains/dispatch/execution-scheduler.ts`) rely on sequence numbers to remain correct by construction. Timestamps are reserved for human display and coarse windowing. Any attribution logic that relies on timestamps must report ambiguity explicitly rather than returning null.
47
-
48
- ---
49
-
50
- ## 2. Where UTC Is Converted
51
-
52
- ### Storage, transport, and comparisons in UTC
53
-
54
- The system stores UTC, transports UTC, and compares UTC. Conversion to local time occurs once, strictly at the render call site.
55
-
56
- 1. On disk and across the wire, timestamps are always represented as canonical ISO-8601 strings produced by `toISOString()`. Every store validates timestamps upon reading using the exact round-trip check from `src/domains/dispatch/capacity-lease.ts:80-84`.
57
- 2. In memory, instants are stored as epoch milliseconds or canonical ISO-8601 strings. Localized or pre-formatted date strings must not be held in memory models.
58
- 3. At the user interface render boundary, UTC instants are converted to the operator's local timezone.
59
- 4. Whenever a converted local timestamp is displayed, the underlying canonical UTC instant must remain accessible. For example, a table row displays local time while the associated detail pane preserves the exact ISO-8601 string so that the two representations can always be reconciled.
60
-
61
- ---
62
-
63
- ## 3. Formatter Policy
64
-
65
- All operator-facing time formatting is consolidated in `src/interactive/format-time.ts`. The module provides three standardized formatting functions:
66
-
67
- | Function | Output Format | Timezone and Locale Frame | Purpose |
68
- |---|---|---|---|
69
- | `clockLocal(instant)` | `HH:MM:SS` | Operator local timezone using `en-GB` locale with 24-hour cycle (`hourCycle: "h23"`) | Renders time-of-day for logs, tree selectors, and message pickers |
70
- | `dateLocal(instant)` | `YYYY-MM-DD` | Operator local timezone using `en-CA` locale | Renders calendar dates for session selectors, welcome dashboards, and export filenames |
71
- | `relative(instant, now)` | `"3m ago"` (falls back to `dateLocal`) | Operator local timezone | Renders relative recency ladders with automatic fallback to calendar dates |
72
-
73
- Both `Intl.DateTimeFormat` instances are constructed at module scope. The module automatically rebuilds formatters if `process.env.TZ` changes during runtime.
74
-
75
- Machine surfaces such as filenames, IDs, structured log fields, and receipt records bypass the formatting module entirely and use canonical `toISOString()`.
76
-
77
- ---
78
-
79
- ## 4. Test Determinism and Receipt Integrity
80
-
81
- ### Test clock harness
82
-
83
- Test suites must rely on the steppable clock helper in `tests/harness/clock.ts`. Every factory function that reads a clock must default to the harness clock in test environments. Real-time passage in tests is opt-in and requires explicit configuration.
84
-
85
- ### Receipt integrity digests
86
-
87
- Persisted fields such as `startedAt` and `endedAt` participate in receipt integrity digests (`src/domains/dispatch/receipt-integrity.ts`). Any timestamp normalization, derivation, or adjustment must occur before the receipt digest is sealed. Timestamps must never be rewritten after receipt creation.
88
-
89
- ---
90
-
91
- ## 5. State-Root and Audit-Filename Assumptions
92
-
93
- ### Host-scoped state root and coordination
94
-
95
- The state root directory is host-scoped. Durable locks and capacity leases carry a metadata payload containing `{host, pid, birthToken}`.
96
-
97
- A coordination record created by a foreign host is never adjudicated against the local process table. This follows the host-scoping pattern implemented in `src/tools/compete-worktrees.ts:207-215`, `src/domains/dispatch/orphan-recovery.ts:140-149`, and `src/core/run-identity.ts:23`.
98
-
99
- ### Audit filename semantics
100
-
101
- The date in an audit log filename (such as `audit-YYYY-MM-DD.jsonl`) is a human-facing label indicating the local calendar date on which the audit log was opened. It does not represent machine-read data. All individual audit event records contained within the file store canonical UTC ISO-8601 timestamps.
@@ -1,133 +0,0 @@
1
- ---
2
- name: clio-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.
4
- version: 0.1.4
5
- license: Apache-2.0
6
- clio:
7
- registry-id: iowarp/clio-coder
8
- source-url: https://github.com/iowarp/clio-coder/tree/main/skills/meta/clio-test
9
- audit: pass
10
- provenance: designed
11
- eval-status: scenarios-recorded
12
- model-size: any
13
- ---
14
-
15
- # Clio Test
16
-
17
- Clio's test suite has exactly three layers: **contracts**, **smoke**, and
18
- **boundaries**.
19
-
20
- For the question of whether a change may leave your machine (commit, push, PR),
21
- that is `clio-dev`, not this skill. **REQUIRED SUB-SKILL:** `clio-dev` for the
22
- local-vs-contribute boundary.
23
-
24
- ## Commands
25
-
26
- ```bash
27
- npm run typecheck # tsc -p tsconfig.tests.json (includes tests/ and benchmarks/internal/)
28
- npm run lint # biome check . && scripts/check-hygiene.ts (import boundaries, skill pins, doc drift)
29
- npm run test:file -- 'tests/contracts/**/*.test.ts' # contract tests (tsx, import src directly, no build)
30
- npm run test:file -- 'tests/smoke/**/*.test.ts' # spawn dist/cli/index.js end-to-end (NEEDS a build)
31
- npm run test # contracts + smoke, sharded across processes (the full gate)
32
- npm run build # tsup -> dist/
33
- npm run dev # tsup --watch -> rebuilds dist/ on save
34
- npm run ci # typecheck && lint && skills:check && build && test && test:trace-viewer
35
- npm run live:smoke -- --target <id> # one real turn against a configured target; never in CI
36
- ```
37
-
38
- ## Which layer catches what
39
-
40
- | Change site | Run first | Why |
41
- |---|---|---|
42
- | pure logic in `src/domains/<x>/*.ts` | `npm run test:file -- 'tests/contracts/**/*.test.ts'` | contract tests import `src` via tsx; no build |
43
- | dispatch / providers / prompts / safety / config / persistence / acp behavior | `npm run test:file -- 'tests/contracts/**/*.test.ts'` | each has a file in `tests/contracts/` |
44
- | skills loader / activation | `npm run test:file -- 'tests/contracts/**/*.test.ts'` | `tests/contracts/skills.test.ts`, `skill-activation-compaction.test.ts` |
45
- | any `src/` import edit | `npm run lint` | the hygiene check enforces rule1/2/3 |
46
- | `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` |
47
- | 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 |
48
-
49
- **See `references/test-map.md`** for exactly where each test lives and how to run
50
- a single file.
51
-
52
- ## Boundary rules you must not break
53
-
54
- `tests/boundaries/check-boundaries.ts` enforces three rules (also the Hard
55
- Invariants in `CLIO-CODER.md`), run by `scripts/check-hygiene.ts` under
56
- `npm run lint`. If it reports a violation, fix the import — never silence the
57
- check:
58
-
59
- - **rule1**: only `src/engine/**` may value-import `@earendil-works/pi-*`. Outside
60
- engine, use Clio contracts or type-only imports that erase at compile time.
61
- - **rule2**: `src/worker/**` never imports `src/domains/**`. Cross through
62
- `src/worker/spec-contract.ts`.
63
- - **rule3**: `src/domains/<x>/**` never imports `src/domains/<y>/extension.ts`.
64
- Go through the target domain's `index.ts` contract.
65
-
66
- ## The hot-reload dev loop (picking up latest code)
67
-
68
- There are two independent reload mechanisms; know which applies.
69
-
70
- **Source reload for tests.** This is the "pick up latest code" loop:
71
-
72
- - **Fast loop — no build.** The contracts glob runs `node --import tsx --test`
73
- and imports `src/**` directly, and the hygiene lint reads source statically,
74
- so both always see the latest source with zero build step. Iterate here whenever the change is pure
75
- logic or a contract.
76
- - **Full loop — needs `dist/`.** The smoke glob spawns `dist/cli/index.js`, so it
77
- only sees code that has been built. Keep `npm run dev` (`tsup --watch`) running
78
- in another pane; it rebuilds `dist/` on every save, so the smoke lane
79
- picks up your latest source without a manual `npm run build`.
80
-
81
- **Config reload for a running session.** Clio classifies a settings change
82
- (`src/domains/config/classify.ts`) into three buckets:
83
-
84
- - `hotReload` (theme, keybindings, `safetyLevel`, `defaultMode`) — applies live
85
- via the `config.hotReload` bus, no restart.
86
- - `nextTurn` (model, thinking level, budget, skills, compaction…) — applies
87
- before the next turn.
88
- - `restartRequired` (credentials, runtime enable/disable, `budget.concurrency`)
89
- — needs a process restart. Unknown fields fail closed to this bucket.
90
-
91
- **There is no in-process reload of Clio's own code in a running session.** ESM
92
- modules load once; to run changed harness code in an interactive session,
93
- restart the process (against a freshly built `dist/`).
94
-
95
- ## Iteration loop
96
-
97
- 1. Write the change.
98
- 2. `npm run typecheck` and `npm run lint`.
99
- 3. Run the narrowest layer from the table above.
100
- 4. `npm run lint` if you touched imports.
101
- 5. If you touched CLI/entry/ACP: `npm run build` (or rely on `dev` watch), then
102
- `npm run test:file -- 'tests/smoke/**/*.test.ts'`.
103
- 6. `npm run ci` before calling it done. Report exactly what ran and what is
104
- unverified.
105
-
106
- When debugging a single test:
107
-
108
- ```bash
109
- node --import tsx --test tests/contracts/<file>.test.ts # one file
110
- node --import tsx --test --test-only tests/contracts/<file>.test.ts # it.only
111
- ```
112
-
113
- ## What NOT to do
114
-
115
- - Don't reintroduce `tests/unit|integration|e2e/`; that taxonomy was
116
- deliberately removed. Don't add a second pseudo-terminal: `tests/harness/pty.ts`
117
- is the one PTY, used by the three `*-pty`/`tui-width-matrix` smoke suites and
118
- by `benchmarks/internal/pty-drive.ts`.
119
- - Don't add `scripts/diag-*.ts` or `scripts/verify-*.ts`. A test belongs in
120
- `tests/`; a one-off probe belongs in `/tmp` and gets deleted (see
121
- `references/harness.md`).
122
- - Don't silence a boundary violation with `// biome-ignore` or an exclude. Fix
123
- the import.
124
- - Don't assert against a simulated TUI. Test real commands via the spawn harness.
125
- - Don't commit with red tests. If a pre-existing test fails on state that
126
- predates your change, report it and ask — don't delete or skip it.
127
-
128
- ## Harness reference
129
-
130
- Driving the real CLI, the mock provider, ACP over stdio, and the PTY, plus the
131
- throwaway probe pattern: **see `references/harness.md`**. Driving the real
132
- binary against a real model (headless, PTY, tmux, herdr) is a different claim
133
- and lives in `benchmarks/internal/SKILL.md`.