@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,5 +1,8 @@
1
1
  # Performance Measurement Methodology
2
2
 
3
+ > **Visual blueprint:** The source checkout includes the complete
4
+ > [Performance Measurement Methodology visual reference](https://github.com/iowarp/clio-coder/blob/main/docs/html/performance_methodology_blueprint.html).
5
+
3
6
  Clio Coder treats performance observations as diagnostic evidence, not as a
4
7
  reason to weaken behavior. Event ordering, persistence, permissions, terminal
5
8
  restoration, accessibility, output contracts, and installed-package behavior
@@ -50,10 +53,10 @@ drop count instead of growing without bound. Append failures and append
50
53
  timeouts disable tracing without failing the application. Normal shutdown
51
54
  awaits the bounded final flush.
52
55
 
53
- With the instant shell active, textual `[clio:boot]` lines retain timestamps
56
+ With the instant shell active, textual `[clio-coder:boot]` lines retain timestamps
54
57
  captured at the Stage 0 commit and Stage 1 committed hydration frame, but their
55
58
  stderr output is deliberately deferred until after the TUI stops and terminal
56
- protocols are restored. The PTY harness detects the visible Stage 0 bytes and
59
+ protocols are restored. The retired PTY harness detected the visible Stage 0 bytes and
57
60
  Stage 1 frame directly, then parses those buffered timestamps after process
58
61
  exit. This keeps diagnostic output from corrupting the temporary shell without
59
62
  changing the measured endpoints.
@@ -65,15 +68,17 @@ CLIO_CODER_INTERACTIVE=1 \
65
68
  node dist/cli/index.js
66
69
  ```
67
70
 
68
- The deterministic contracts are
69
- `tests/contracts/render-pipeline-trace.test.ts`. The real built-CLI acceptance
70
- harness is `tests/smoke/render-trace-pty.test.ts`; it covers first frame, input
71
- correlation, resize, grouped writes, paused PTY output, adaptive pacing against
72
- a chunked hermetic provider, a controlled `stdout.write() === false`/`drain`
73
- boundary, final-frame settlement, and bounded process cleanup. Set
74
- `CLIO_CODER_PERF_REPORT=1` while running that test to print its observation
75
- records. Real PTY acceptance is currently unavailable on Windows; the
76
- fake-stream frame/backpressure contracts remain cross-platform.
71
+ The measurement snapshot below was originally backed by
72
+ `tests/contracts/render-pipeline-trace.test.ts` and
73
+ `tests/smoke/render-trace-pty.test.ts`. Those harnesses and their
74
+ `CLIO_CODER_PERF_REPORT` output switch were retired with the measurement-script
75
+ suite. Their names remain in the dated command transcripts below only to make
76
+ the recorded method auditable; the commands are not current invocations.
77
+ Current correctness coverage lives in
78
+ `tests/contracts/rendering-invariants.test.ts`, and
79
+ `tests/smoke/real-binary-boot.test.ts` exercises the built binary. Neither is a
80
+ replacement glass-latency benchmark. `CLIO_CODER_RENDER_TRACE` remains the
81
+ supported way to capture a live render trace for a fresh measurement campaign.
77
82
 
78
83
  ## Import-graph method
79
84
 
@@ -118,7 +123,7 @@ With `NODE_DISABLE_COMPILE_CACHE=1`, five real-PTY samples produced:
118
123
  | 22.22.3 | 1013.9 / 1120.3 ms | 1030.615 / 1136.960 ms | 7.068 ms | 3 |
119
124
  | 24.9.0 | 1061.5 / 1082.3 ms | 1079.001 / 1102.019 ms | 6.549 ms | 3 |
120
125
 
121
- The corresponding command was:
126
+ The corresponding historical command was:
122
127
 
123
128
  ```bash
124
129
  NODE_DISABLE_COMPILE_CACHE=1 CLIO_CODER_PERF_REPORT=1 \
@@ -156,13 +161,22 @@ The former 1,054 ms “first TUI paint” figure is not a before value: that mar
156
161
  was taken before `startInteractive()` and therefore did not measure a frame.
157
162
  It must not be compared numerically with this corrected baseline.
158
163
 
159
- ## Graph-cut observations
164
+ ## Historical graph-cut observations
165
+
166
+ Each graph reduction below was measured and committed independently. The
167
+ runtime-graph and V8 harnesses cited throughout this section were later retired,
168
+ so their absence and presence claims are dated evidence from the recorded cuts,
169
+ not maintained release gates. Counts used the import-graph method above with V8
170
+ compile caching disabled and a warm operating-system page cache. An unchanged
171
+ translated-module count could still hide a meaningful bundled-code reduction:
172
+ esbuild represented all bundled sources in one translated Clio chunk.
160
173
 
161
- Each graph reduction is measured and committed independently. Counts below use
162
- the import-graph method above with V8 compile caching disabled and a warm
163
- operating-system page cache. An unchanged translated-module count can still
164
- hide a meaningful bundled-code reduction: esbuild represents all bundled
165
- sources in one translated Clio chunk.
174
+ Current installed-package smoke coverage is narrower. It packs Clio, runs
175
+ `code_nav` from a foreign working directory, and verifies that a real context
176
+ index evaluates the tree-sitter chunk. It does not reproduce the former
177
+ all-four or all-seven lazy-tool graph checks, Pi closure checks, or worker graph
178
+ exclusion proof. Re-establish those properties with a fresh explicit
179
+ measurement campaign before using them as current release evidence.
166
180
 
167
181
  ### Node built-in fetch
168
182
 
@@ -181,11 +195,11 @@ Ten full-entry imports changed as follows:
181
195
  | 22.22.3 | 670.680 / 803.053 ms | 605.907 / 646.730 ms | lower in this sample |
182
196
  | 24.9.0 | 656.781 / 674.592 ms | 668.652 / 896.238 ms | no reproducible timing improvement; host noise dominated |
183
197
 
184
- The cut is justified by the deterministic graph and package-size reduction,
198
+ At that cut, the justification was the deterministic graph and package-size reduction,
185
199
  not by claiming a universal boot saving. Localhost transport contracts cover
186
200
  methods, headers, bodies, redirects, streamed UTF-8 truncation and cancellation,
187
201
  external abort, timeout, HTTP preview errors, binary rejection, and transport
188
- errors on Node 22 and Node 24. The packed-install test invokes `web_fetch`
202
+ errors on Node 22 and Node 24. The then-current packed-install test invoked `web_fetch`
189
203
  through a real installed headless tool turn from a foreign working directory
190
204
  and asserts that neither the packed chunks nor the installed dependency tree
191
205
  contains userland Undici.
@@ -203,12 +217,12 @@ per-workspace FIFO plus a cross-process file lease. The artifact and its state
203
217
  metadata commit under that lease, shutdown drains admitted session work, and a
204
218
  reset cannot be overtaken by an older build.
205
219
 
206
- The deterministic runtime-graph test locates the generated tree-sitter chunk by
207
- its bundled source marker, never its hash. V8 coverage proves that nested
220
+ The retired deterministic runtime-graph test located the generated tree-sitter chunk by
221
+ its bundled source marker, never its hash. V8 coverage proved that nested
208
222
  `context index --help` reaches the built index command without evaluating that
209
223
  chunk or creating `.clio-coder`, while a real one-file build evaluates it and
210
224
  extracts a generator declaration the regex fallback does not recognize. The
211
- same proof runs against an installed tarball from a foreign working directory.
225
+ same proof ran against an installed tarball from a foreign working directory.
212
226
 
213
227
  The after-Undici graph was the before point for this cut. The translated module
214
228
  count changed from 1,332 files (54 Clio chunks) to 1,336 (58 Clio chunks): the
@@ -233,7 +247,7 @@ operating-system page cache on the same WSL2 host, produced:
233
247
  These are local import observations, not a universal startup saving or a CI
234
248
  threshold. `npm pack --dry-run --json` at this slice reports 6.08 MB packed,
235
249
  36.65 MB unpacked, and 1,095 entries. The independently blocking
236
- evidence is the source-built and installed runtime-coverage contract plus the
250
+ evidence at that cut was the source-built and installed runtime-coverage contract plus the
237
251
  coordinator's generation-order, reset-resurrection, lease-failure, demand,
238
252
  incremental, wiki, refresh, and shutdown suites.
239
253
 
@@ -241,16 +255,16 @@ incremental, wiki, refresh, and shutdown suites.
241
255
 
242
256
  `context`, `code_nav`, `verify`, and `web_fetch` now register immutable schema
243
257
  and policy surfaces while importing their implementations only after registry
244
- admission. The runtime-graph harness makes a real tool-capable provider request
245
- and asserts that all four schemas were serialized while every implementation
246
- file stayed absent from V8 coverage. Four fresh processes then invoke one tool
247
- each, assert its implementation is covered and its semantic result reaches the
248
- provider, and assert the other three remain absent. The exact same harness runs
249
- against an installed tarball from a foreign working directory. A second copied
250
- install deletes the emitted `web_fetch` implementation by stable behavior
251
- provenance and proves the resulting tool error names the missing chunk and the
252
- two standard reinstall commands. No hash, size, source-map, or timing value is
253
- used as a correctness assertion.
258
+ admission. The retired runtime-graph harness made a real tool-capable provider
259
+ request and asserted that all four schemas were serialized while every
260
+ implementation file stayed absent from V8 coverage. Four fresh processes then
261
+ invoked one tool each, asserted its implementation was covered and its semantic
262
+ result reached the provider, and asserted the other three remained absent. The
263
+ same harness ran against an installed tarball from a foreign working directory.
264
+ A second copied install deleted the emitted `web_fetch` implementation by
265
+ stable behavior provenance and proved the resulting tool error named the
266
+ missing chunk and the two standard reinstall commands. No hash, size,
267
+ source-map, or timing value was used as a correctness assertion.
254
268
 
255
269
  The after-codewiki graph is the before point for this cut. Translated modules
256
270
  changed from 1,336 files (58 Clio chunks) to 1,357 files (79 Clio chunks), as
@@ -258,7 +272,7 @@ the split surfaces and dynamic-import boundaries create more, smaller generated
258
272
  modules. The evaluated Clio JavaScript nevertheless fell from 5,015,343 to
259
273
  4,929,030 bytes. The four discoverable implementation entries total 104,804
260
274
  bytes (`context` 33,919; `web_fetch` 24,979; `verify` 24,063; `code_nav`
261
- 21,843) and are absent until invoked. Total built JavaScript rose from 99 files
275
+ 21,843) and were absent until invoked. Total built JavaScript rose from 99 files
262
276
  and 5,812,402 bytes to 125 files and 5,840,309 bytes because the package must
263
277
  ship every first-use path. `npm pack --dry-run --json` reports approximately
264
278
  6.09 MB packed, 36.69 MB unpacked, and 1,127 entries, versus the previous
@@ -272,12 +286,12 @@ operating-system page cache on the same WSL2 host, produced:
272
286
  | 22.22.3 | 525.656 / 539.633 ms | 545.576 / 565.551 ms | no timing improvement in this sample |
273
287
  | 24.9.0 | 539.056 / 574.139 ms | 553.733 / 582.703 ms | no timing improvement in this sample |
274
288
 
275
- The cut is justified by the deterministic absence/presence contract and the
276
- smaller evaluated graph, not by a startup-time claim. Registration, listing,
277
- provider serialization, and a safety-rejected call are separately held against
278
- loading in the registry contract; surface parity, single-flight first use,
279
- ordinary exception semantics, and Clio-owned versus external missing-module
280
- diagnostics are covered there as well.
289
+ At that cut, the justification was the deterministic absence/presence contract
290
+ and the smaller evaluated graph, not a startup-time claim. Separate registry
291
+ contracts then held registration, listing, provider serialization, and a
292
+ safety-rejected call against loading; they also covered surface parity,
293
+ single-flight first use, ordinary exception semantics, and Clio-owned versus
294
+ external missing-module diagnostics.
281
295
 
282
296
  ### Narrow Pi API registration and dispatch
283
297
 
@@ -293,14 +307,14 @@ Bedrock ambient credentials. A configured external runtime activates a dynamic
293
307
  bridge before plugin evaluation; it deliberately restores the shared Pi
294
308
  registry universe only for that plugin-bearing process.
295
309
 
296
- The source-built and installed-tarball foreign-working-directory harness runs
297
- real OpenAI-compatible turns under V8 coverage. It proves `compat.js` and
298
- `legacy-api-aliases.js` are absent, the invoked OpenAI implementation is
299
- present, and unrelated Anthropic, Bedrock, Google, Mistral, OAuth, and image
300
- implementation files remain absent. It also proves `providers/all` and sample
301
- unconfigured provider catalogs remain absent. A separate fresh-process contract
302
- registers a known-API override from an out-of-tree module and proves its result
303
- wins after the bridge; the installed-tarball lane repeats that semantic and
310
+ The retired source-built and installed-tarball foreign-working-directory
311
+ harness ran real OpenAI-compatible turns under V8 coverage. It proved
312
+ `compat.js` and `legacy-api-aliases.js` were absent, the invoked OpenAI
313
+ implementation was present, and unrelated Anthropic, Bedrock, Google, Mistral, OAuth, and image
314
+ implementation files remained absent. It also proved `providers/all` and sample
315
+ unconfigured provider catalogs remained absent. A separate retired
316
+ fresh-process contract registered a known-API override from an out-of-tree
317
+ module and proved its result won after the bridge; the installed-tarball lane repeated that semantic and
304
318
  coverage proof from a foreign working directory.
305
319
 
306
320
  The after-lazy-tools graph is the before point for this cut. Translated modules
@@ -322,9 +336,9 @@ operating-system page cache, and the same WSL2 host as the preceding cuts:
322
336
  | 24.9.0 | 553.733 / 582.703 ms | 522.001 / 554.388 ms | lower in this sample |
323
337
 
324
338
  These are local import observations, not a startup guarantee or CI threshold.
325
- The independently blocking evidence is the absence/presence graph contract,
326
- credential parity, plugin registry identity, provider behavior suites, and the
327
- installed foreign-cwd turn.
339
+ The independently blocking evidence at that cut was the absence/presence graph
340
+ contract, credential parity, plugin registry identity, provider behavior
341
+ suites, and the installed foreign-cwd turn.
328
342
 
329
343
  ### Lazy orchestrator controls and worker graph separation
330
344
 
@@ -345,18 +359,18 @@ settlement. Monitor and steer use the same immutable-surface loader as the
345
359
  earlier four lazy tools. The worker entry imports the core bootstrap directly
346
360
  and therefore never registers or evaluates these orchestrator-only runners.
347
361
 
348
- The V8 coverage harness now advertises all seven lazy tool schemas in one real
349
- provider request, proves every implementation root absent, and invokes each in
350
- a fresh process. For the three orchestrator controls it recursively follows the
351
- emitted static-import graph, classifies the surface/worker-shared closure, and
352
- proves the whole runner-exclusive closure absent before admission and present
353
- after invocation. The three discoverable runner entries total 113,983 bytes
362
+ The retired V8 coverage harness advertised all seven lazy tool schemas in one
363
+ real provider request, proved every implementation root absent, and invoked
364
+ each in a fresh process. For the three orchestrator controls it recursively
365
+ followed the emitted static-import graph, classified the surface/worker-shared closure, and
366
+ proved the whole runner-exclusive closure absent before admission and present
367
+ after invocation. The three discoverable runner entries totaled 113,983 bytes
354
368
  (`dispatch` 83,800; `monitor` 27,209; `steer` 2,974). A separate run of the real
355
- built worker entry proves both those roots and their runner-exclusive closures
356
- absent. The complete proof repeats from an installed tarball in a foreign
369
+ built worker entry proved both those roots and their runner-exclusive closures
370
+ absent. The complete proof repeated from an installed tarball in a foreign
357
371
  working directory; stable behavior markers, rather than chunk hashes or file
358
- sizes, identify each entry. Shared dispatch-domain modules are reported as
359
- shared and are not misrepresented as runner-exclusive savings.
372
+ sizes, identified each entry. Shared dispatch-domain modules were reported as
373
+ shared and were not misrepresented as runner-exclusive savings.
360
374
 
361
375
  The after-Pi graph is the before point for this cut. Translated modules changed
362
376
  from 1,289 files (80 evaluated Clio chunks) to 1,307 files (98 Clio chunks), as
@@ -383,7 +397,11 @@ and the dispatch reservation, approval, gate, detach, monitor, and steer suites.
383
397
 
384
398
  ## Adaptive stream-pacer observations
385
399
 
386
- `terminal.smoothStreaming` is presentation-only. `off` is the exact existing
400
+ This subsection preserves the dated results and method of the retired
401
+ fake-clock and PTY performance harnesses. It does not describe a currently
402
+ runnable test command.
403
+
404
+ `interface.smoothStreaming` is presentation-only. `off` is the exact existing
387
405
  16 ms coalescer and remains the 0.3.3 default. `auto` uses the pacer only on a
388
406
  capable local TTY with no accessibility, remote/multiplexer, CI, or observed
389
407
  backpressure signal. `on` requests pacing, but frame construction still stops
@@ -392,13 +410,13 @@ event bus: canonical events, persistence, replay/export, tool formation, and
392
410
  cumulative tool state remain synchronous while one presentation queue owns
393
411
  only derived visible text/thinking mutations.
394
412
 
395
- The deterministic fake-clock contracts cover semantic classification, FIFO
413
+ The deterministic fake-clock contracts covered semantic classification, FIFO
396
414
  generation/epoch ordering, abort and stale-admission rejection, grapheme
397
415
  clusters, fractional arrival credit, event-loop suspension, catch-up, the
398
416
  oldest-visible deadline, absolute queue byte/grapheme bounds, idle shutdown,
399
417
  folded-thinking fidelity, reset/discard accounting, mode changes, final-frame
400
418
  settlement, fullscreen frozen scrolling through resize, and bounded no-drain
401
- cleanup. The PTY arm uses a built CLI, a four-delta localhost provider, a
419
+ cleanup. The PTY arm used a built CLI, a four-delta localhost provider, a
402
420
  4 KiB reply, an 80x24 `xterm-256color` PTY whose reader is paused, and a
403
421
  test-only writable shim that makes exactly one real child `stdout.write()`
404
422
  return `false` before emitting a delayed `drain`. This is deterministic
@@ -414,7 +432,7 @@ five observations; they are diagnostic observations, not timing gates.
414
432
  | 22.22.3 | 5.530 / 8.896 ms | 62.909 / 70.274 ms | 37.798 / 56.412 ms | 403.809 / 426.570 ms |
415
433
  | 24.9.0 | 5.468 / 7.225 ms | 67.878 / 74.021 ms | 27.901 / 35.750 ms | 402.582 / 418.783 ms |
416
434
 
417
- The command was:
435
+ The historical command was:
418
436
 
419
437
  ```bash
420
438
  NODE_DISABLE_COMPILE_CACHE=1 CLIO_CODER_PERF_REPORT=1 \
@@ -455,7 +473,7 @@ the same compile-cache-disabled, warm-page-cache method. Stage 1 remains a full
455
473
  hydration endpoint; the earlier visible/editor-ready Stage 0 does not erase or
456
474
  rename that work.
457
475
 
458
- The command was run five times for each explicit Node binary:
476
+ The historical command was run five times for each explicit Node binary:
459
477
 
460
478
  ```bash
461
479
  NODE_DISABLE_COMPILE_CACHE=1 CLIO_CODER_PERF_REPORT=1 \
@@ -464,13 +482,13 @@ NODE_DISABLE_COMPILE_CACHE=1 CLIO_CODER_PERF_REPORT=1 \
464
482
  tests/smoke/render-trace-pty.test.ts
465
483
  ```
466
484
 
467
- The built-CLI PTY suite additionally covers immediate typing, multiple
485
+ The retired built-CLI PTY suite additionally covered immediate typing, multiple
468
486
  submit-before-hydration admissions, a retained post-submit draft, resize across
469
487
  hydration, Ctrl+C on both sides of attachment, SIGTERM during hydration,
470
488
  injected Stage 1 failure, protocol-query single execution, raw-mode
471
489
  restoration, diagnostics, and bounded process cleanup. The fake lease contract
472
490
  checks object identity, FIFO admission, epoch rejection, signal-delegate
473
- transfer, and idempotent close. PTY receipt is still not literal glass latency.
491
+ transfer, and idempotent close. PTY receipt was still not literal glass latency.
474
492
 
475
493
  ## Reporting checklist
476
494
 
@@ -1,11 +1,11 @@
1
1
  # Clio Coder Scientific Validation Contracts
2
2
 
3
- > [!TIP]
4
- > **Interactive Spec Available:** An interactive numerical tolerance calculator and HPC queue execution simulator is located at [docs/html/validation_blueprint.html](html/validation_blueprint.html) (Version: 0.4.0).
3
+ > **Visual blueprint:** The source checkout includes the complete
4
+ > [Clio Coder Scientific Validation Contracts visual reference](https://github.com/iowarp/clio-coder/blob/main/docs/html/validation_blueprint.html).
5
5
 
6
6
  Scientific software development cannot treat simple file presence as proof of correctness. A simulation script that crashes on rank 48, or writes out NetCDF arrays filled with `NaN`s, may still successfully write a file to the disk.
7
7
 
8
- Clio Coder recognizes **scientific validation contract files** as an opt-in signal for a higher evidence bar. In v0.4.0, the session rigor resolver does not parse or enforce a scientific contract schema. The presence of `.clio-coder/validation.yaml`, `.clio-coder/validation.yml`, `validation.yaml`, `validation.yml`, or `VALIDATION.md` at the workspace root raises the default rigor level to `high`; the file contents are advisory material for developers, project agents, and external validators.
8
+ Clio Coder recognizes **scientific validation contract files** as an opt-in signal for a higher evidence bar. Currently, the session rigor resolver does not parse or enforce a scientific contract schema. The presence of `.clio-coder/validation.yaml`, `.clio-coder/validation.yml`, `validation.yaml`, `validation.yml`, or `VALIDATION.md` at the workspace root raises the default rigor level to `high`; the file contents are advisory material for developers, project agents, and external validators.
9
9
 
10
10
  This advisory convention is separate from the executable project verifier catalog at `.clio-coder/verifiers.yaml`. The verifier catalog has a strict version-1 schema and admits exact argv vectors to the `verify` tool. Scientific validation contracts and handbook expectations do not grant command authority: prose such as `validators: ["python tools/check_grid.py"]` remains guidance until the project owner confirms the equivalent argv, cwd, timeout, and tags in `verifiers.yaml`. The executable catalog does not interpret numerical tolerances or artifact expectations; it only runs the explicitly declared process vector through safe-exec.
11
11
 
@@ -95,7 +95,7 @@ Comparing floating-point values in scientific computations must accommodate roun
95
95
 
96
96
  ## Common Scientific Artifact Families
97
97
 
98
- The following labels are useful project conventions for validation contracts and reports. They are not a closed, core-enforced enum in v0.4.0:
98
+ The following labels are useful project conventions for validation contracts and reports. They are not a closed, core-enforced enum in the current source tree:
99
99
 
100
100
  - **`HDF5` / `NetCDF` / `Zarr`:** Multi-dimensional scientific array files.
101
101
  - **`FITS`:** Flexible Image Transport System (used in astrophysics).
package/evals/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Reference evals
2
2
 
3
- These suites exercise Clio's one evaluation engine: run the deterministic built-in authority corpus with `clio-coder eval run --suite evals/behavioral-machinery.yaml`, or select a configured model target for `behavioral-model.yaml`, `behavioral-model-negative-control.yaml`, and `tracked-metrics-baseline.yaml`. The graders and fixtures beside the suites are versioned inputs; `behavioral-machinery-baseline.json` is retained as reference evidence, not as a release gate.
3
+ These suites exercise Clio's one evaluation engine from a source checkout: run the deterministic built-in authority corpus with `node dist/cli/index.js eval run --suite evals/behavioral-machinery.yaml --clio-coder-entry dist/cli/index.js`, or select a configured model target for `behavioral-model.yaml`, `behavioral-model-negative-control.yaml`, and `tracked-metrics-baseline.yaml`. The npm archive keeps these inputs for inspection and reproducibility, but the deterministic TypeScript driver uses the repository development toolchain. The graders and fixtures beside the suites are versioned inputs; `behavioral-machinery-baseline.json` is retained as reference evidence, not as a release gate.
4
4
 
5
- The single-system boundary is the engine under `src/domains/eval`: suites, verdict validation, artifact envelopes, comparison, and reporting belong there, while `evals/` contains only runnable reference inputs and their deterministic drivers. In v0.5.0, external-benchmark adapters such as SWE-bench and Terminal-Bench should translate their cases and grader observations into this engine's suite, execution, and verdict contracts, then consume its artifacts and comparison reports instead of adding a parallel harness.
5
+ The single-system boundary is the engine under `src/domains/eval`: suites, verdict validation, artifact envelopes, comparison, and reporting belong there, while `evals/` contains source-checkout reference inputs and deterministic drivers. In v0.5.0, external-benchmark adapters such as SWE-bench and Terminal-Bench should translate their cases and grader observations into this engine's suite, execution, and verdict contracts, then consume its artifacts and comparison reports instead of adding a parallel harness.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iowarp/clio-coder",
3
- "version": "0.4.1",
4
- "description": "Coding agent for HPC and scientific-software developers, part of IOWarp's CLIO ecosystem of agentic science.",
3
+ "version": "0.4.2",
4
+ "description": "The terminal coding agent for people who maintain the code that science runs on, with user-chosen models and inspectable evidence.",
5
5
  "keywords": [
6
6
  "ai",
7
7
  "agentic-ai",
@@ -52,7 +52,8 @@
52
52
  "src/**",
53
53
  "skills/**",
54
54
  "evals/**",
55
- "docs/*.md",
55
+ "docs/**/*.md",
56
+ "!docs/html/**",
56
57
  "README.md",
57
58
  "CHANGELOG.md",
58
59
  "CONTRIBUTING.md",
@@ -82,7 +83,8 @@
82
83
  "ci": "npm run typecheck && npm run lint && npm run skills:check && npm run build && npm run test && npm run test:trace-viewer",
83
84
  "ci:release": "npm run ci && node scripts/check-release.mjs",
84
85
  "install:local": "bash scripts/install-local.sh",
85
- "prepublishOnly": "npm run ci:release",
86
+ "smoke:real-home": "bash scripts/smoke-real-home.sh",
87
+ "prepublishOnly": "CLIO_CODER_RELEASE_CONTEXT=publish npm run ci:release",
86
88
  "skills:pin": "node --import tsx scripts/pin-skills.ts",
87
89
  "skills:check": "node --import tsx scripts/pin-skills.ts --check"
88
90
  },
@@ -90,9 +92,9 @@
90
92
  "@anthropic-ai/claude-agent-sdk": "0.3.186"
91
93
  },
92
94
  "dependencies": {
93
- "@earendil-works/pi-agent-core": "0.84.0",
94
- "@earendil-works/pi-ai": "0.84.0",
95
- "@earendil-works/pi-tui": "0.84.0",
95
+ "@earendil-works/pi-agent-core": "0.84.4",
96
+ "@earendil-works/pi-ai": "0.84.4",
97
+ "@earendil-works/pi-tui": "0.84.4",
96
98
  "@silvia-odwyer/photon-node": "^0.3.4",
97
99
  "grok-mermaid": "0.2.2",
98
100
  "ollama": "0.6.3",
package/skills/README.md CHANGED
@@ -12,7 +12,7 @@ Clio's engine discovers *runtime* skills from these roots (see
12
12
  - extension roots
13
13
  - `~/.agents`, `~/.claude`, `~/.codex`, `~/.config/opencode`, `~/.copilot` → their `skills/` subdir
14
14
  - `<clio-config>/skills` (per-user)
15
- - project `.agents` / `.claude` / `.codex` / `.opencode` / `.github` → their `skills/` subdir (model-visible only with `CLIO_CODER_TRUST_PROJECT_SKILLS=1`; untrusted by default)
15
+ - project `.agents` / `.claude` / `.codex` / `.opencode` / `.github` → their `skills/` subdir (model-visible only when `integrations.projectResources.trustProjectImports` is true; untrusted by default)
16
16
  - `.clio-coder/skills` (per-project)
17
17
 
18
18
  This repo's `skills/` directory is **not** one of those roots, so nothing here
@@ -22,10 +22,10 @@ auto-loads. That gap is deliberate.
22
22
  |---|---|---|
23
23
  | Location | a discovery root above | `skills/<category>/<name>/` in this repo |
24
24
  | Author | any user or harness | Clio authors, reviewed |
25
- | Provenance | none required | `clio:` block with `registry-id` + `source-url` + `audit: pass` |
25
+ | Provenance | none required | `clio-coder:` block with `registry-id` + `source-url` + `audit: pass` |
26
26
  | Auto-loaded | yes | no, as it must be installed |
27
27
 
28
- "Approved" is visible in the frontmatter: a maintainer set `clio.audit: pass`
28
+ "Approved" is visible in the frontmatter: a maintainer set `clio-coder.audit: pass`
29
29
  and a `version`. A skill a user wrote themselves carries none of those fields.
30
30
 
31
31
  ## Catalog
@@ -105,7 +105,8 @@ loads, Clio enforces that declaration at tool admission until the turn (or
105
105
  worker run) ends: calls outside the merged surface are blocked with reason
106
106
  code `skill_surface`, with `context` and `ask_user` always admitted. A
107
107
  skill can narrow its tool surface but never grant tools the host would not
108
- allow. Full semantics: docs/safety-model.md, "Skill tool surface narrowing".
108
+ allow. See [Skill tool surface narrowing](../docs/architecture/safety-model.md#skill-tool-surface-narrowing)
109
+ for the full semantics.
109
110
 
110
111
  ## Install (activate a marketplace skill)
111
112
 
@@ -140,8 +141,8 @@ teammate cloning it gets the same behavior.
140
141
 
141
142
  | Set | Scope | Why |
142
143
  |---|---|---|
143
- | `context-prime`, `context-handoff` | user | Session boundaries follow the operator across every repo; a handoff written in one project is read at the start of the next. |
144
- | `find-skills`, `skill-craft` | user | Discovery and authoring are things you do to your toolkit, not things a project does. Installing `find-skills` at user scope is also what makes the Clio copy outrank the compat-root one. |
144
+ | `context-prime`, `context-handoff` | user | The workflow is useful in every repo, while each handoff remains scoped to the project where it was written. |
145
+ | `find-skills`, `skill-craft` | user | Discovery and authoring are things you do to your toolkit, not things a project does. A user install outranks copies in shared user compatibility roots. |
145
146
  | `credentials` | user | Credential handling is a personal-machine discipline; a repo does not get to define it. |
146
147
  | `clio-coder-dev`, `clio-coder-test` | project, in this repo only | They describe Clio's own source tree. Elsewhere they are noise. |
147
148
  | `--category git` | project, where `git-master` is used | Branch, PR, and worktree conventions are the repository's, and the recipe binds them by name. |
@@ -150,8 +151,11 @@ teammate cloning it gets the same behavior.
150
151
  | `--category coding` | project | `tdd` and `coding-standards` follow the language and the test seams of the checkout. |
151
152
  | `--category workflow` | either | `grill-me` and `cut-it` travel with the operator; `design-council` is worth pinning per project when the project has recurring design forks. |
152
153
 
153
- When both scopes carry the same name, project wins: `.clio-coder/skills` outranks the
154
- user root, which outranks every compat root.
154
+ Collision precedence from lowest to highest is extension, shared user
155
+ compatibility roots, the Clio user root, project compatibility roots,
156
+ `.clio-coder/skills`, then an explicit CLI skill path. Project compatibility
157
+ roots are model-visible only after the project-import trust opt-in; their
158
+ collision rank is still above the user root.
155
159
 
156
160
  After install, confirm Clio sees it:
157
161
 
@@ -176,21 +180,23 @@ both route through `clio-coder skills`. A community skill of the same name is
176
180
  commonly present in the compat roots (`~/.agents/skills`,
177
181
  `~/.claude/skills`) and drives the external `npx skills` installer, which
178
182
  bypasses Clio. Compat roots stay enabled, and the loader resolves name
179
- collisions by precedence: the Clio user root and `.clio-coder/skills` outrank the
180
- compat roots. Install the catalog copy so it wins:
183
+ collisions by the precedence above. A user install beats the shared user
184
+ compatibility copy. A project install beats both project and user
185
+ compatibility copies. Install at the scope where the catalog copy must win:
181
186
 
182
187
  ```bash
183
- clio-coder skills install find-skills --user # or --project for one repo
188
+ clio-coder skills install find-skills --user
189
+ clio-coder skills install find-skills --project # strongest discovered project copy
184
190
  ```
185
191
 
186
192
  ## Publishing: the marketplace index
187
193
 
188
194
  `npm run skills:pin` writes two files. `registry.yaml` pins content hashes and
189
195
  is what drift is measured against. `skill-marketplace.json` is the published
190
- index: one entry per skill with `name`, `description`, `sourceUrl` (the
191
- skill's own `clio.source-url`), `version`, `audit`, and `category`. It carries
192
- no hashes, because duplicating them into a second published artifact only
193
- creates a way for the two to disagree.
196
+ index: one entry per skill with `name`, `description`, optional `triggers`,
197
+ `sourceUrl` (the skill's own `clio-coder.source-url`), `version`, `audit`, and
198
+ `category`. It carries no hashes, because duplicating them into a second
199
+ published artifact only creates a way for the two to disagree.
194
200
 
195
201
  A Clio install anywhere points at it and gets bare-name installs from this
196
202
  catalog:
@@ -216,12 +222,12 @@ The frontmatter contract has two layers, and the split is the point:
216
222
  - **Core keys stay community-standard.** `name`, `description`, `version`,
217
223
  `license`, and `allowed-tools` mean exactly what Claude Code and other agent
218
224
  loaders expect. No Clio-specific key ever lives at the top level.
219
- - **Everything Clio-specific nests under one reserved `clio:` mapping.**
225
+ - **Everything Clio-specific nests under one reserved `clio-coder:` mapping.**
220
226
  Registry identity, provenance, audit and eval status, agent bindings, model
221
227
  guidance — all of it.
222
228
 
223
229
  The invariant this buys: a Clio skill dropped into any `.claude/skills`
224
- directory loads and works in Claude Code, which ignores the `clio:` block as
230
+ directory loads and works in Claude Code, which ignores the `clio-coder:` block as
225
231
  an unknown key. Loaded by Clio Coder, the same file carries its full
226
232
  marketplace metadata. One file, no forks, no lossy export.
227
233
 
@@ -230,7 +236,9 @@ Required shape for every catalog skill:
230
236
  ```yaml
231
237
  ---
232
238
  name: <name> # lowercase, hyphens, matches the folder
233
- description: Use when ... # triggers only, third person, <=1024 chars
239
+ description: <one sentence> # what it does, plus "Not for X; use Y" routing, <=1024 chars
240
+ triggers: # the phrases a user types that should reach it
241
+ - <phrase>
234
242
  version: 0.1.0
235
243
  license: Apache-2.0
236
244
  allowed-tools: # optional; community-standard tool narrowing
@@ -248,7 +256,7 @@ clio-coder:
248
256
  ---
249
257
  ```
250
258
 
251
- Field semantics inside `clio:`:
259
+ Field semantics inside `clio-coder:`:
252
260
 
253
261
  - `registry-id` names the audited catalog a skill claims membership of; it is
254
262
  content, participates in the pinned hash, and survives installs.
@@ -280,16 +288,16 @@ Field semantics inside `clio:`:
280
288
  `requires: [skill:<name>, ...]` stays top-level: Clio's loader consumes it for
281
289
  dependency warnings, and other harnesses ignore it like any unknown key.
282
290
 
283
- Legacy flat keys (`registry-id`, `source-url`, `audit` at the top level) are
284
- still read by the loader as a fallback for copies installed before the nested
285
- form existed; the catalog itself must use the nested form, and `npm run
291
+ The deprecated nested `clio:` mapping and legacy flat keys (`registry-id`,
292
+ `source-url`, `audit` at the top level) are still read as fallbacks for older
293
+ installed copies. The catalog itself must use `clio-coder:`, and `npm run
286
294
  skills:check` enforces that.
287
295
 
288
296
  ### Versioning policy
289
297
 
290
- `version` describes the skill as a working instrument, and the pinned hash
291
- already records every byte, so the version only moves when the thing an
292
- operator runs changes:
298
+ `version` describes the skill as a working instrument. The registry separately
299
+ hashes the normalized contents of `SKILL.md`; it does not hash sibling files.
300
+ Move the version whenever the workflow an operator runs changes:
293
301
 
294
302
  | Change | Version |
295
303
  |---|---|
@@ -305,11 +313,11 @@ a broken link or a typo in a step. Nothing in this catalog is 1.0: a major bump
305
313
  is reserved for a skill whose triggers change enough that an operator relying on
306
314
  the old one would be surprised.
307
315
 
308
- Metadata changes do not bump because `registry.yaml` pins a
309
- provenance-stripped hash, so content edits are already caught byte-exactly, and
310
- raising a version for an `eval-status` line would make the number mean two
311
- different things at once. The trade is deliberate: the version is coarse, the
312
- hash is exact, and drift detection uses the hash.
316
+ Lifecycle metadata changes do not bump the workflow version. The normalized
317
+ `SKILL.md` hash catches non-stripped frontmatter and body edits; install fields
318
+ such as `source-url` and `audit` are stripped. A sibling `references/`,
319
+ `scripts/`, or `evals.md` change is represented by the required version change
320
+ inside `SKILL.md`, because sibling bytes are not hashed directly.
313
321
 
314
322
  ## Claude Code interop
315
323
 
@@ -317,7 +325,7 @@ The invariant is that a catalog skill dropped unmodified into `.claude/skills`
317
325
  loads and runs in Claude Code. Verified against Claude Code 2.1.231:
318
326
  `skills/git/ship` copied into a scratch project's
319
327
  `.claude/skills/`, invoked headlessly, loaded through the `Skill` tool and
320
- answered a question about its own body. The `clio:` block is an unknown
328
+ answered a question about its own body. The `clio-coder:` block is an unknown
321
329
  frontmatter key there and is ignored.
322
330
 
323
331
  **`allowed-tools` means the opposite thing in each harness, and that is the one
@@ -353,7 +361,7 @@ The rest of the surface, read from the same build:
353
361
  | `allowed-tools` | Grants, as above. Accepts a YAML list or one comma/space-separated string, same as Clio. |
354
362
  | `disallowed-tools` | Not read. A Clio denial is not enforced there. |
355
363
  | `requires:` | Not read; ignored as an unknown key, so a dependency warning is Clio-only. |
356
- | `clio:` | Not read; ignored as an unknown key. This is the invariant. |
364
+ | `clio-coder:` | Not read; ignored as an unknown key. This is the invariant. |
357
365
  | Unparseable frontmatter | The per-skill load is wrapped in a bare catch: the skill is skipped silently, with no diagnostic. Clio warns instead. |
358
366
  | Size | No cap on SKILL.md. Clio rejects over 1 MiB and warns over 50 KiB, the activation delivery cap. |
359
367
  | `references/`, `scripts/` subfolders | Not enumerated at load time; they are files the body tells the model to read, which works in both. |
@@ -370,7 +378,7 @@ A skill is "approved for the marketplace" when a maintainer:
370
378
  1. Reviews `SKILL.md` against [`skill-craft`](meta/skill-craft/) (trigger-only
371
379
  description, checkable completion criteria, progressive disclosure, pruning
372
380
  pass, evals present).
373
- 2. Confirms it carries the frontmatter spec above with `clio.audit: pass`.
381
+ 2. Confirms it carries the frontmatter spec above with `clio-coder.audit: pass`.
374
382
  3. Sets / bumps `version`.
375
383
 
376
384
  Each skill ships an `evals.md` recording the baseline scenarios it was tested
@@ -396,10 +404,11 @@ catalog where any skill is missing the required frontmatter, `audit: pass`, or
396
404
  its `evals.md`, declares a tool name Clio does not have, or carries a
397
405
  `source-url` that no longer ends with its catalog path. `npm run skills:check`
398
406
  (run in CI) fails on any drift between the catalog and either generated file,
399
- `registry.yaml` or `skill-marketplace.json`. Pinned hashes are provenance-stripped
400
- (install-lifecycle stamps like `installed-at` do not count as drift; content
401
- and registry-identity edits do), so a copy installed via `clio-coder skills install`
402
- still verifies against its audited source at activation.
407
+ `registry.yaml` or `skill-marketplace.json`. Each pin covers the normalized
408
+ `SKILL.md`, not the whole skill directory. Install-lifecycle stamps such as
409
+ `installed-at` do not count as drift; body, version, and registry-identity
410
+ edits do. A copy installed via `clio-coder skills install` therefore still
411
+ verifies against its audited source at activation.
403
412
 
404
413
  A skill may declare typed dependencies with `requires: [skill:<name>, ...]`
405
414
  frontmatter; the loader warns at load time when a required skill is not
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: ast-grep
3
- description: Use when a code search needs structure, not text "find all async functions without error handling", "find calls with this argument shape", "find X inside Y" — or when grep returns too much noise to filter. Writes and tests ast-grep rules, then scans the codebase. Search only; never rewrites code. Not for plain string or filename lookups; use grep or find.
3
+ description: "Structural code search with ast-grep rules: finds code by shape when grep on text is too noisy, and never rewrites it. Not for plain string or filename lookups; use grep or find."
4
4
  triggers:
5
5
  - structural code search
6
6
  - ast-grep rule
7
7
  - find calls with this argument shape
8
8
  - find code inside a function
9
9
  - grep returns too much noise
10
- version: 0.1.1
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - bash