@iowarp/clio-coder 0.4.1 → 0.4.3

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 (604) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/CONTRIBUTING.md +142 -52
  3. package/README.md +434 -473
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
  6. package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
  9. package/dist/builtins-IA7V7FUC.js +22 -0
  10. package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
  11. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  12. package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
  13. package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
  14. package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
  15. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  16. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  17. package/dist/chunk-3EBYEESD.js +314 -0
  18. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  19. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  20. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  21. package/dist/chunk-4UVU7BJ5.js +39 -0
  22. package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
  23. package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
  24. package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
  25. package/dist/chunk-5MEZN6CB.js +1334 -0
  26. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  27. package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
  28. package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
  29. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  30. package/dist/chunk-7DRAWPTZ.js +360 -0
  31. package/dist/chunk-7E7I3WLS.js +3762 -0
  32. package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
  33. package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
  34. package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
  35. package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
  36. package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
  37. package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
  38. package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
  39. package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
  40. package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
  41. package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
  42. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  43. package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
  44. package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
  45. package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
  46. package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
  47. package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
  48. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  49. package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
  50. package/dist/chunk-GYV6VZOC.js +26 -0
  51. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  52. package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
  53. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  54. package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
  55. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  56. package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
  57. package/dist/chunk-IJNZMHLA.js +101 -0
  58. package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
  59. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  60. package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
  61. package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
  62. package/dist/chunk-JEQ3XTHC.js +42 -0
  63. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  64. package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
  65. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  66. package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
  67. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  68. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
  70. package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
  71. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  72. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  73. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  74. package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
  75. package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
  76. package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
  77. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  78. package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
  79. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  80. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  81. package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
  82. package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
  83. package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
  84. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  85. package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
  86. package/dist/chunk-R6Q67RJH.js +134 -0
  87. package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
  88. package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
  89. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  90. package/dist/chunk-SKHCAU7K.js +385 -0
  91. package/dist/chunk-SZAA6XDG.js +30 -0
  92. package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
  93. package/dist/chunk-UOIZ7DA4.js +41 -0
  94. package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
  95. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  96. package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
  97. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  98. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  99. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  100. package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
  101. package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
  102. package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
  103. package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
  104. package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
  105. package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
  106. package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
  107. package/dist/chunk-XRZT5WY5.js +47 -0
  108. package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
  109. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  110. package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
  111. package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
  112. package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
  113. package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
  114. package/dist/cli/index.js +41 -39
  115. package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
  116. package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
  117. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  118. package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
  119. package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
  120. package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
  121. package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
  122. package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
  123. package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
  126. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
  127. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  128. package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
  129. package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
  130. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
  131. package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
  132. package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
  133. package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
  134. package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
  135. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
  136. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
  137. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
  138. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
  139. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
  140. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
  141. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
  142. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
  143. package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
  144. package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
  145. package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
  146. package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
  147. package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
  148. package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
  149. package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
  150. package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
  151. package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
  152. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  153. package/dist/reset-EAJFFJVB.js +344 -0
  154. package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
  155. package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
  156. package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
  157. package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
  158. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
  159. package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
  160. package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
  161. package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
  162. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  163. package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
  164. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
  165. package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
  166. package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
  167. package/dist/uninstall-5PEVOE5B.js +408 -0
  168. package/dist/upgrade-M4WXY6KN.js +303 -0
  169. package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
  170. package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
  171. package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
  172. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  173. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
  174. package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
  175. package/dist/worker/entry.js +90 -74
  176. package/docs/README.md +176 -81
  177. package/docs/{acp.md → architecture/acp.md} +36 -20
  178. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  179. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  180. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +27 -23
  181. package/docs/architecture/artifact-versions.md +90 -0
  182. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  183. package/docs/{context-engine.md → architecture/context-engine.md} +29 -25
  184. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  185. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  186. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  187. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  188. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  189. package/docs/{model-catalog.md → architecture/model-catalog.md} +61 -27
  190. package/docs/{observability.md → architecture/observability.md} +38 -14
  191. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  192. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
  193. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
  194. package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
  195. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  196. package/docs/architecture/time-conventions.md +125 -0
  197. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  198. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  199. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  200. package/docs/{built-in-agents.md → guide/built-in-agents.md} +65 -35
  201. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
  202. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
  203. package/docs/guide/configuration-reference.md +1163 -0
  204. package/docs/{environment-variables.md → guide/environment-variables.md} +33 -28
  205. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  206. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  207. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  208. package/docs/{glossary.md → guide/glossary.md} +14 -11
  209. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +81 -17
  210. package/docs/guide/panes-and-files.md +290 -0
  211. package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
  212. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  213. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -3
  214. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  215. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  216. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  217. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  218. package/docs/process/development-pipeline.md +152 -0
  219. package/docs/process/documentation-coverage.md +100 -0
  220. package/docs/process/documentation-guide.md +187 -0
  221. package/docs/{eval-runner.md → process/eval-runner.md} +108 -53
  222. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  223. package/docs/{evolution.md → process/evolution.md} +2 -2
  224. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  225. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  226. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  227. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  228. package/evals/README.md +2 -2
  229. package/evals/behavioral-model.yaml +3 -2
  230. package/package.json +10 -8
  231. package/skills/README.md +52 -41
  232. package/skills/coding/ast-grep/SKILL.md +102 -31
  233. package/skills/coding/ast-grep/evals.md +26 -0
  234. package/skills/coding/coding-standards/SKILL.md +41 -6
  235. package/skills/coding/coding-standards/evals.md +23 -0
  236. package/skills/coding/prototype/SKILL.md +88 -29
  237. package/skills/coding/prototype/evals.md +19 -0
  238. package/skills/coding/tdd/SKILL.md +81 -54
  239. package/skills/coding/tdd/evals.md +20 -0
  240. package/skills/context/context-handoff/SKILL.md +44 -3
  241. package/skills/context/context-handoff/evals.md +44 -0
  242. package/skills/context/context-prime/SKILL.md +46 -16
  243. package/skills/context/context-prime/evals.md +45 -0
  244. package/skills/git/branch-closeout/SKILL.md +132 -0
  245. package/skills/git/branch-closeout/evals.md +133 -0
  246. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  247. package/skills/git/file-ticket/SKILL.md +78 -64
  248. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  249. package/skills/git/file-ticket/evals.md +31 -26
  250. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  251. package/skills/git/fix-issue/SKILL.md +88 -65
  252. package/skills/git/fix-issue/evals.md +35 -31
  253. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  254. package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
  255. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  256. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  257. package/skills/git/ship/SKILL.md +103 -67
  258. package/skills/git/ship/assets/pr-template.md +21 -0
  259. package/skills/git/ship/evals.md +44 -28
  260. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  261. package/skills/git/worktree-create/SKILL.md +80 -50
  262. package/skills/git/worktree-create/evals.md +40 -33
  263. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  264. package/skills/git/worktree-merge/SKILL.md +112 -65
  265. package/skills/git/worktree-merge/evals.md +42 -34
  266. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  267. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  268. package/skills/meta/clio-coder-dev/evals.md +3 -2
  269. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  270. package/skills/meta/clio-coder-test/evals.md +9 -4
  271. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  272. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  273. package/skills/meta/credentials/SKILL.md +2 -2
  274. package/skills/meta/find-skills/SKILL.md +2 -2
  275. package/skills/meta/herdr/SKILL.md +2 -2
  276. package/skills/meta/skill-craft/SKILL.md +22 -16
  277. package/skills/planning/archify/SKILL.md +196 -0
  278. package/skills/planning/archify/evals.md +65 -0
  279. package/skills/planning/architecture/SKILL.md +62 -13
  280. package/skills/planning/architecture/evals.md +65 -0
  281. package/skills/planning/backlog/SKILL.md +131 -15
  282. package/skills/planning/backlog/evals.md +142 -0
  283. package/skills/planning/prd/SKILL.md +47 -7
  284. package/skills/planning/prd/evals.md +54 -0
  285. package/skills/planning/product-intent/SKILL.md +58 -3
  286. package/skills/planning/product-intent/evals.md +70 -0
  287. package/skills/planning/tech-spec/SKILL.md +54 -3
  288. package/skills/planning/tech-spec/evals.md +73 -0
  289. package/skills/registry.yaml +70 -62
  290. package/skills/remote.yaml +13 -0
  291. package/skills/research/arxiv-literature/SKILL.md +77 -19
  292. package/skills/research/arxiv-literature/evals.md +50 -0
  293. package/skills/research/experiment-protocol/SKILL.md +21 -2
  294. package/skills/research/experiment-protocol/evals.md +23 -0
  295. package/skills/research/scientific-debugging/SKILL.md +24 -2
  296. package/skills/research/scientific-debugging/evals.md +18 -0
  297. package/skills/research/scientific-modernization/SKILL.md +27 -2
  298. package/skills/research/scientific-modernization/evals.md +27 -0
  299. package/skills/skill-marketplace.json +97 -62
  300. package/skills/workflow/cut-it/SKILL.md +66 -6
  301. package/skills/workflow/cut-it/evals.md +101 -0
  302. package/skills/workflow/design-council/SKILL.md +118 -28
  303. package/skills/workflow/design-council/evals.md +161 -0
  304. package/skills/workflow/grill-me/SKILL.md +87 -11
  305. package/skills/workflow/grill-me/evals.md +153 -0
  306. package/skills/workflow/workflow-distiller/SKILL.md +77 -18
  307. package/skills/workflow/workflow-distiller/evals.md +118 -0
  308. package/src/cli/args.ts +2 -2
  309. package/src/cli/bootstrap-generate.ts +1 -1
  310. package/src/cli/config-inspect.ts +65 -12
  311. package/src/cli/configure-interop.ts +105 -13
  312. package/src/cli/configure-oauth.ts +57 -0
  313. package/src/cli/configure-onboarding.ts +980 -0
  314. package/src/cli/configure-target.ts +594 -0
  315. package/src/cli/configure.ts +1082 -532
  316. package/src/cli/context-map.ts +114 -0
  317. package/src/cli/context.ts +4 -0
  318. package/src/cli/docs.ts +22 -14
  319. package/src/cli/doctor-naming.ts +5 -5
  320. package/src/cli/doctor-toolchain.ts +3 -3
  321. package/src/cli/eval.ts +1 -2
  322. package/src/cli/extensions.ts +2 -1
  323. package/src/cli/fleet.ts +1 -1
  324. package/src/cli/index.ts +3 -1
  325. package/src/cli/internal-dispatch.ts +3 -4
  326. package/src/cli/lifecycle-presenter.ts +436 -0
  327. package/src/cli/models.ts +10 -2
  328. package/src/cli/modes/print.ts +5 -1
  329. package/src/cli/panes.ts +19 -5
  330. package/src/cli/reset.ts +228 -106
  331. package/src/cli/run.ts +9 -4
  332. package/src/cli/select.ts +664 -0
  333. package/src/cli/share.ts +5 -1
  334. package/src/cli/skills-eval.ts +3 -3
  335. package/src/cli/skills.ts +9 -2
  336. package/src/cli/targets.ts +5 -6
  337. package/src/cli/trace.ts +55 -4
  338. package/src/cli/uninstall.ts +233 -165
  339. package/src/cli/upgrade.ts +204 -149
  340. package/src/cli/usage.ts +86 -27
  341. package/src/cli/validate-model.ts +3 -3
  342. package/src/cli/wiki-generate.ts +1 -1
  343. package/src/core/artifact-paths.ts +1 -1
  344. package/src/core/bash-exec.ts +131 -86
  345. package/src/core/bus-events.ts +51 -6
  346. package/src/core/config.ts +61 -1
  347. package/src/core/defaults.ts +7 -4
  348. package/src/core/dispatch-outcome.ts +16 -0
  349. package/src/core/external-diagnostic.ts +44 -0
  350. package/src/core/gateway-routing.ts +157 -0
  351. package/src/core/guardrails.ts +10 -49
  352. package/src/core/prompt-hint.ts +9 -0
  353. package/src/core/safe-exec.ts +17 -2
  354. package/src/core/skill-activation.ts +89 -2
  355. package/src/domains/agents/builtins/architect.md +2 -3
  356. package/src/domains/agents/builtins/coder.md +3 -2
  357. package/src/domains/agents/builtins/debugger.md +2 -2
  358. package/src/domains/agents/builtins/documenter.md +2 -2
  359. package/src/domains/agents/builtins/git-master.md +1 -1
  360. package/src/domains/agents/builtins/oracle.md +1 -1
  361. package/src/domains/agents/builtins/provenance.md +1 -1
  362. package/src/domains/agents/builtins/researcher.md +1 -1
  363. package/src/domains/agents/builtins/scout.md +1 -1
  364. package/src/domains/agents/builtins/tester.md +2 -2
  365. package/src/domains/agents/builtins/verifier.md +2 -2
  366. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  367. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  368. package/src/domains/agents/catalog.ts +13 -15
  369. package/src/domains/agents/contract.ts +2 -0
  370. package/src/domains/agents/extension.ts +23 -1
  371. package/src/domains/agents/result-contract.ts +70 -0
  372. package/src/domains/config/keybindings.ts +8 -0
  373. package/src/domains/context/extension.ts +0 -3
  374. package/src/domains/context/wiki/map-seed.ts +589 -0
  375. package/src/domains/context/wiki/plan.ts +2 -2
  376. package/src/domains/context/working-set/path-index.ts +1 -0
  377. package/src/domains/dispatch/admission.ts +29 -0
  378. package/src/domains/dispatch/agent-candidates.ts +10 -0
  379. package/src/domains/dispatch/budget-envelope.ts +86 -1
  380. package/src/domains/dispatch/capability-match.ts +11 -0
  381. package/src/domains/dispatch/capacity-lease.ts +17 -0
  382. package/src/domains/dispatch/contract.ts +11 -1
  383. package/src/domains/dispatch/extension.ts +237 -49
  384. package/src/domains/dispatch/host-verification.ts +435 -39
  385. package/src/domains/dispatch/intent-requirements.ts +10 -0
  386. package/src/domains/dispatch/intent.ts +18 -1
  387. package/src/domains/dispatch/path-scope.ts +235 -24
  388. package/src/domains/dispatch/run-event-journal.ts +4 -15
  389. package/src/domains/dispatch/state.ts +2 -3
  390. package/src/domains/dispatch/transport.ts +45 -21
  391. package/src/domains/dispatch/types.ts +58 -3
  392. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  393. package/src/domains/eval/artifacts/store.ts +5 -0
  394. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  395. package/src/domains/eval/metrics/token-stream.ts +201 -31
  396. package/src/domains/eval/metrics/tracked.ts +40 -4
  397. package/src/domains/eval/runners/clio-run.ts +5 -2
  398. package/src/domains/eval/schema/suite.ts +28 -0
  399. package/src/domains/eval/schema/verdict.ts +2 -2
  400. package/src/domains/eval/store.ts +8 -1
  401. package/src/domains/eval/suites/resolve.ts +13 -1
  402. package/src/domains/eval/suites/run.ts +24 -3
  403. package/src/domains/evidence/trust-status.ts +10 -1
  404. package/src/domains/extensions/contract.ts +15 -1
  405. package/src/domains/extensions/discovery.ts +238 -41
  406. package/src/domains/extensions/extension.ts +105 -6
  407. package/src/domains/extensions/index.ts +24 -0
  408. package/src/domains/extensions/integrity.ts +189 -0
  409. package/src/domains/extensions/manager.ts +17 -1
  410. package/src/domains/extensions/resource-path.ts +27 -0
  411. package/src/domains/extensions/resources.ts +18 -38
  412. package/src/domains/extensions/snapshot-store.ts +39 -0
  413. package/src/domains/extensions/snapshot.ts +180 -0
  414. package/src/domains/extensions/state.ts +385 -57
  415. package/src/domains/extensions/types.ts +118 -1
  416. package/src/domains/interop/registry.ts +6 -2
  417. package/src/domains/interop/types.ts +4 -0
  418. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  419. package/src/domains/lifecycle/migrations/index.ts +6 -0
  420. package/src/domains/lifecycle/naming-resources.ts +19 -4
  421. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  422. package/src/domains/memory/task-memory-policy.ts +70 -26
  423. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  424. package/src/domains/middleware/contract.ts +26 -0
  425. package/src/domains/middleware/extension.ts +24 -24
  426. package/src/domains/middleware/hook-receipts.ts +27 -4
  427. package/src/domains/middleware/hooks-io.ts +65 -32
  428. package/src/domains/middleware/hooks.ts +64 -0
  429. package/src/domains/middleware/index.ts +28 -5
  430. package/src/domains/middleware/marketplace-offer.ts +3 -35
  431. package/src/domains/middleware/memory-intervention.ts +127 -32
  432. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  433. package/src/domains/middleware/registrations.ts +326 -0
  434. package/src/domains/middleware/runtime.ts +28 -0
  435. package/src/domains/middleware/skills-reminder.ts +31 -2
  436. package/src/domains/middleware/snapshot.ts +20 -7
  437. package/src/domains/mux/contract.ts +38 -0
  438. package/src/domains/mux/detect.ts +6 -13
  439. package/src/domains/mux/index.ts +1 -1
  440. package/src/domains/mux/operations.ts +44 -5
  441. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  442. package/src/domains/mux/yazi/session.ts +53 -4
  443. package/src/domains/mux/yazi/theme.ts +117 -17
  444. package/src/domains/observability/compaction-usage.ts +118 -0
  445. package/src/domains/observability/contract.ts +10 -11
  446. package/src/domains/observability/cost.ts +1 -1
  447. package/src/domains/observability/extension.ts +17 -4
  448. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  449. package/src/domains/observability/projection.ts +14 -90
  450. package/src/domains/observability/trace-store.ts +43 -7
  451. package/src/domains/prompts/compiler.ts +73 -53
  452. package/src/domains/prompts/contract.ts +15 -3
  453. package/src/domains/prompts/extension.ts +97 -9
  454. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  455. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  456. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  457. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  458. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  459. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  460. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  461. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  462. package/src/domains/providers/contract.ts +4 -1
  463. package/src/domains/providers/extension.ts +40 -9
  464. package/src/domains/providers/index.ts +1 -1
  465. package/src/domains/providers/model-capabilities.ts +9 -0
  466. package/src/domains/providers/model-discovery.ts +2 -0
  467. package/src/domains/providers/model-runtime-capabilities.ts +99 -25
  468. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
  469. package/src/domains/providers/runtime-resolution.ts +31 -0
  470. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  471. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  472. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  473. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  474. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  475. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  476. package/src/domains/providers/support.ts +11 -5
  477. package/src/domains/providers/target-model-cache.ts +25 -2
  478. package/src/domains/providers/types/capability-flags.ts +2 -0
  479. package/src/domains/providers/types/cost-provenance.ts +19 -0
  480. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  481. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  482. package/src/domains/providers/types/target-descriptor.ts +19 -0
  483. package/src/domains/resources/index.ts +3 -0
  484. package/src/domains/resources/skills/install.ts +72 -7
  485. package/src/domains/resources/skills/loader.ts +23 -19
  486. package/src/domains/resources/skills/marketplace.ts +63 -11
  487. package/src/domains/safety/autonomy.ts +15 -0
  488. package/src/domains/safety/call-target.ts +1 -1
  489. package/src/domains/safety/index.ts +1 -0
  490. package/src/domains/safety/loop-detector.ts +7 -4
  491. package/src/domains/safety/path-policy.ts +1 -1
  492. package/src/domains/safety/policy-engine.ts +34 -11
  493. package/src/domains/safety/protected-artifacts.ts +191 -88
  494. package/src/domains/safety/run-effects.ts +2 -22
  495. package/src/domains/safety/skill-authority.ts +55 -0
  496. package/src/domains/session/compaction/compact.ts +72 -22
  497. package/src/domains/session/entries.ts +6 -0
  498. package/src/domains/session/task-board.ts +10 -9
  499. package/src/domains/session/usage.ts +3 -3
  500. package/src/domains/share/archive.ts +164 -7
  501. package/src/engine/acp/server.ts +62 -9
  502. package/src/engine/agent.ts +13 -3
  503. package/src/engine/ai.ts +26 -8
  504. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  505. package/src/engine/api-registry.ts +3 -0
  506. package/src/engine/apis/llamacpp-residency.ts +3 -4
  507. package/src/engine/apis/lmstudio.ts +3 -3
  508. package/src/engine/apis/ollama-native.ts +6 -6
  509. package/src/engine/apis/openai-completions.ts +145 -39
  510. package/src/engine/apis/output-budget.ts +8 -18
  511. package/src/engine/apis/residency.ts +8 -27
  512. package/src/engine/external-subprocess.ts +114 -6
  513. package/src/engine/gemma-channel-filter.ts +19 -0
  514. package/src/engine/loop-guard.ts +92 -12
  515. package/src/engine/worker-runtime.ts +40 -11
  516. package/src/engine/worker-tools.ts +3 -1
  517. package/src/entry/background-model-metadata.ts +18 -0
  518. package/src/entry/compaction-prompt.ts +57 -0
  519. package/src/entry/extension-hook-sources.ts +28 -0
  520. package/src/entry/extension-reload.ts +309 -0
  521. package/src/entry/orchestrator.ts +464 -251
  522. package/src/entry/task-memory-lifecycle.ts +35 -0
  523. package/src/interactive/application-controller.ts +2 -1
  524. package/src/interactive/bus-notices.ts +8 -1
  525. package/src/interactive/chat-loop-messages.ts +16 -17
  526. package/src/interactive/chat-loop.ts +75 -3
  527. package/src/interactive/chat-panel.ts +36 -13
  528. package/src/interactive/chat-renderer.ts +72 -7
  529. package/src/interactive/cost-overlay.ts +26 -2
  530. package/src/interactive/dispatch-board.ts +6 -11
  531. package/src/interactive/footer/widgets.ts +13 -0
  532. package/src/interactive/interactive-application.ts +39 -4
  533. package/src/interactive/interactive-input-runtime.ts +4 -0
  534. package/src/interactive/interactive-presentation.ts +2 -2
  535. package/src/interactive/interactive-slash-runtime.ts +4 -1
  536. package/src/interactive/overlays/extensions.ts +9 -1
  537. package/src/interactive/overlays/help-reference.ts +13 -0
  538. package/src/interactive/overlays/settings.ts +27 -16
  539. package/src/interactive/panes-runtime.ts +111 -35
  540. package/src/interactive/prompt-cache-identity.ts +88 -0
  541. package/src/interactive/renderers/worker-entry.ts +32 -0
  542. package/src/interactive/slash-commands.ts +153 -20
  543. package/src/interactive/stream-pacing-policy.ts +0 -23
  544. package/src/interactive/theme/labels.ts +19 -13
  545. package/src/interactive/turn-context.ts +39 -20
  546. package/src/interactive/turn-recovery.ts +8 -0
  547. package/src/interactive/turn-runtime.ts +27 -11
  548. package/src/interactive/turn-state.ts +7 -0
  549. package/src/interactive/worker-receipts.ts +1 -0
  550. package/src/interactive/worker-stream.ts +6 -1
  551. package/src/interactive/yazi-bridge.ts +60 -6
  552. package/src/tools/agent-tools.ts +30 -1
  553. package/src/tools/artifact.ts +2 -2
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/bootstrap.ts +4 -0
  557. package/src/tools/builtin-tool-catalog.ts +52 -22
  558. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  559. package/src/tools/codewiki/code-nav.ts +99 -13
  560. package/src/tools/context/docs-engine.ts +20 -7
  561. package/src/tools/context/index.ts +59 -21
  562. package/src/tools/core-bootstrap.ts +28 -6
  563. package/src/tools/credential-present.ts +1 -2
  564. package/src/tools/dispatch-arguments.ts +6 -1
  565. package/src/tools/dispatch-event-text.ts +10 -0
  566. package/src/tools/dispatch-plan.ts +49 -4
  567. package/src/tools/dispatch-run-events.ts +1 -1
  568. package/src/tools/dispatch-runner.ts +12 -0
  569. package/src/tools/dispatch-schema.ts +338 -0
  570. package/src/tools/dispatch-types.ts +3 -0
  571. package/src/tools/dispatch.ts +9 -254
  572. package/src/tools/ledger.ts +3 -5
  573. package/src/tools/monitor-surface.ts +5 -13
  574. package/src/tools/observation.ts +4 -5
  575. package/src/tools/panes-surface.ts +4 -11
  576. package/src/tools/panes.ts +4 -2
  577. package/src/tools/policy.ts +15 -2
  578. package/src/tools/read.ts +5 -6
  579. package/src/tools/registry.ts +41 -12
  580. package/src/tools/result-shaping.ts +18 -14
  581. package/src/tools/steer-surface.ts +1 -1
  582. package/src/tools/tasks.ts +1 -1
  583. package/src/tools/truncate.ts +6 -5
  584. package/src/tools/verify/surface.ts +6 -12
  585. package/src/tools/web-fetch-surface.ts +1 -3
  586. package/src/tools/worker-evidence.ts +3 -1
  587. package/src/worker/spec-contract.ts +4 -0
  588. package/dist/builtins-UJLMOVOV.js +0 -17
  589. package/dist/chunk-5QIAJV2D.js +0 -48
  590. package/dist/chunk-JZWT5J3Y.js +0 -814
  591. package/dist/chunk-K7VKOLQQ.js +0 -15
  592. package/dist/chunk-PMZCIOCJ.js +0 -25
  593. package/dist/chunk-SUW5DORT.js +0 -819
  594. package/dist/chunk-UOV2BYIW.js +0 -107
  595. package/dist/chunk-WR6U3OVP.js +0 -45
  596. package/dist/chunk-Y45G3AXC.js +0 -1558
  597. package/dist/reset-EOLM7GVE.js +0 -230
  598. package/dist/uninstall-N34PCTGJ.js +0 -331
  599. package/dist/upgrade-H7TOM7YL.js +0 -323
  600. package/docs/artifact-versions.md +0 -67
  601. package/docs/development-pipeline.md +0 -121
  602. package/docs/documentation-coverage.md +0 -46
  603. package/docs/documentation-guide.md +0 -167
  604. package/docs/time-conventions.md +0 -101
@@ -1,69 +1,96 @@
1
1
  # Where Clio's tests live
2
2
 
3
- Three layers under `tests/`. Add a new test next to the closest existing file;
4
- create a new file only for a genuinely new domain cluster.
3
+ The root repository has contract and smoke tests under `tests/`; import
4
+ boundaries run through the lint hygiene checker. Add a test beside the closest
5
+ current behavior, and create a new file only for a genuinely new cluster.
5
6
 
6
7
  ## Layout
7
8
 
8
- | Layer | Path | Runner | Build needed |
9
+ | Lane | Path | Runner | Build needed |
9
10
  |---|---|---|---|
10
- | contracts | `tests/contracts/*.test.ts` | `npm run test:file -- <glob>` (tsx + scratch root) | no (imports `src`) |
11
- | smoke | `tests/smoke/*.test.ts` | `npm run test:file -- <glob>` | **yes** (spawns `dist/`) |
12
- | boundaries | `tests/boundaries/check-boundaries.ts` | `npm run lint` (hygiene) | no |
13
- | harness (not tests) | `tests/harness/*.ts` | imported by contracts and smoke | |
11
+ | Contracts | `tests/contracts/*.test.ts` | `npm run test:file -- <file-or-files>` through tsx and the temp-root preload | No; imports `src/` |
12
+ | Smoke | `tests/smoke/*.test.ts` | `npm run test:file -- <file-or-files>` | Yes; spawns `dist/cli/index.js` |
13
+ | Boundaries | `tests/boundaries/check-boundaries.ts` | `npm run lint` through `scripts/check-hygiene.ts` | No |
14
+ | Root full suite | Contract and smoke files | `npm run test` | Yes for current smoke behavior |
15
+ | Trace viewer | `apps/trace-viewer/tests/*.test.mjs` | `npm run test:trace-viewer` | No |
16
+ | Workbench | `apps/workbench/tests/` | `deno task verify` from `apps/workbench` | The command builds the app |
14
17
 
15
- The harness modules: `spawn.ts` (run the built CLI with pipes), `scratch-env.ts`
16
- (isolated Clio home), `pty.ts` (a real pseudo-terminal), `openai-compat-fixture.ts`
17
- and `fake-lmstudio-server.ts` (stub providers), `fake-ssh.ts` (stub fleet node),
18
- `clock.ts` (steppable clock), plus dispatch, receipt, and module-graph helpers.
19
- Everything under `tests/` stubs the model. Real-model runs are
20
- `benchmarks/internal/` and never run under `npm test`.
18
+ `npm run ci` orders typecheck, lint, skill-pin verification, build, the root
19
+ suite, and trace-viewer tests. `npm run ci:release` adds the release audit. The
20
+ Workbench gate is separate.
21
21
 
22
- ## Contract test files
22
+ ## Contract files
23
23
 
24
- | Area | File |
24
+ | Area | Current files under `tests/contracts/` |
25
25
  |---|---|
26
- | ACP contract | `tests/contracts/acp.test.ts` |
27
- | context bootstrap / CLIO-CODER.md parse+render | `tests/contracts/bootstrap.test.ts` |
28
- | config schema + hot-reload classification | `tests/contracts/config.test.ts` |
29
- | dispatch (validation / admission / ledger) | `tests/contracts/dispatch.test.ts` |
30
- | session / memory / evidence persistence | `tests/contracts/persistence.test.ts` |
31
- | prompt fragments + hashing | `tests/contracts/prompts.test.ts` |
32
- | provider catalog / matcher / resolver | `tests/contracts/providers.test.ts` |
33
- | safety classification | `tests/contracts/safety.test.ts` |
34
- | skills loader / collisions / provenance | `tests/contracts/skills.test.ts` |
35
- | skill activation + compaction interplay | `tests/contracts/skill-activation-compaction.test.ts` |
36
- | tool registry / names / profiles | `tests/contracts/tools.test.ts` |
37
-
38
- ## Smoke + boundaries
39
-
40
- | Area | File |
26
+ | Authentication | `auth-login-write-failure`, `auth-storage-durability` |
27
+ | Context, session, and state | `context-lifecycle`, `memory-scope`, `project-bootstrap`, `session-durability`, `state-file-lock`, `task-board-done`, `working-set-core` |
28
+ | Config, routing, and presentation | `footer-context-window`, `knob-aliases`, `pane-remedies`, `rendering-invariants`, `route-identity-keying`, `settings-migration` |
29
+ | Dispatch, fleet, and workers | `dispatch-admission`, `dispatch-lifecycle`, `dispatch-schema`, `fleet-lifecycle`, `host-verification-batch`, `intent-requirements`, `worker-attestation-surface`, `worker-boundary` |
30
+ | Prompts, engine loop, and middleware | `compact-prompt-contracts`, `engine-lifecycle`, `loop-detector`, `loop-guard-epoch`, `middleware-hooks`, `prompt-cache-correctness`, `prompt-prefix-layout`, `prompt-role-routing`, `prompt-session-snapshot`, `prompt-tool-hints` |
31
+ | Providers and model policy | `gemma-channel-filter`, `llamacpp-router-probe`, `local-model-family-resolution`, `provider-context-boundary`, `provider-transport`, `synthesis-lock`, `thinking-off-wire` |
32
+ | Safety and tools | `bash-exec-settlement`, `rejection-feedback`, `safe-resource-write`, `safety-gates`, `tool-boundaries` |
33
+ | Evidence, eval, and release | `eval-boundary`, `evidence-integrity`, `metering-integrity`, `release-boundary` |
34
+ | Extensions, interop, and skills | `extension-compatibility`, `extension-reload-coordinator`, `extension-reload-slash`, `extension-resources`, `extension-snapshot`, `interop-boundary`, `marketplace-offer`, `skill-install` |
35
+ | Documentation server | `docs-server` |
36
+
37
+ Append `.test.ts` to every stem in the table. Use `rg` over the files before
38
+ choosing a lane; related behavior can span more than one focused contract.
39
+
40
+ ## Smoke files
41
+
42
+ | Boundary | File under `tests/smoke/` |
43
+ |---|---|
44
+ | ACP v1 over JSON-RPC stdio, permission requests, and text/image content | `acp-boundary.test.ts` |
45
+ | Core CLI health, local-provider run, receipts, events, and autonomy | `cli-core.test.ts` |
46
+ | `npm pack`, installed resources, and installed codewiki navigation | `installed-package.test.ts` |
47
+ | Signal propagation through a real tool child | `process-lifecycle.test.ts` |
48
+ | Real-binary setup, onboarding, migration, and launch behavior | `real-binary-boot.test.ts` |
49
+
50
+ The smoke files own their child-process helpers. There is no shared
51
+ `tests/harness/spawn.ts` and no PTY smoke lane in the current tree.
52
+
53
+ ## Harness and fixture modules
54
+
55
+ | File | Purpose |
41
56
  |---|---|
42
- | non-interactive CLI + ACP-over-stdio end-to-end | `tests/smoke/cli.test.ts` |
43
- | the package as installed from `npm pack` | `tests/smoke/pack-install.test.ts` |
44
- | TUI at real terminal sizes, NO_COLOR, Ctrl-C teardown (PTY) | `tests/smoke/tui-width-matrix.test.ts` |
45
- | instant shell before hydration, SIGTERM through the lease (PTY) | `tests/smoke/instant-shell-pty.test.ts` |
46
- | committed-frame render trace under PTY backpressure (PTY) | `tests/smoke/render-trace-pty.test.ts` |
47
- | import boundary rules (rule1/2/3), run under `npm run lint` | `tests/boundaries/check-boundaries.ts` |
57
+ | `tests/harness/tmp-root.ts` | Preloaded guarded temp root and cleanup for every root test run |
58
+ | `tests/harness/tmp-git-guard.ts` | Prevents accidental `.git` creation in the system or test temp root |
59
+ | `tests/harness/scratch-env.ts` | Child-process and in-process Clio state isolation |
60
+ | `tests/harness/dispatch.ts` | Dispatch bundle, fast reproducibility, isolated state, and event-loop helpers |
61
+ | `tests/harness/dispatch-stub-context.ts` | Minimal domain context for dispatch contracts |
62
+ | `tests/harness/receipt.ts` | Typed run-envelope and receipt fixtures |
63
+ | `tests/harness/openai-compat-fixture.ts` | Loopback OpenAI-compatible server and target seeders |
64
+
65
+ Child fixtures in `tests/fixtures/` are
66
+ `capacity-lease-child.ts`, `codewiki-coordinator-child.ts`, and
67
+ `evidence-index-writer.ts`.
48
68
 
49
69
  ## Running a subset
50
70
 
51
71
  ```bash
52
- # all contracts
53
- npm run test:file -- 'tests/contracts/**/*.test.ts'
54
- # one file
55
- npm run test:file -- tests/contracts/skills.test.ts
56
- # only it.only / describe.only within a file
57
- npm run test:file -- --test-only tests/contracts/skills.test.ts
72
+ # all contracts (the shell expands the file pattern)
73
+ npm run test:file -- tests/contracts/*.test.ts
74
+
75
+ # one contract or smoke file
76
+ npm run test:file -- tests/contracts/skill-install.test.ts
77
+ npm run build
78
+ npm run test:file -- tests/smoke/cli-core.test.ts
79
+
80
+ # only it.only or describe.only within one file
81
+ npm run test:file -- --test-only tests/contracts/skill-install.test.ts
58
82
  ```
59
83
 
60
84
  ## Writing tests
61
85
 
62
- - `node:test` + `node:assert/strict`. Group with `describe` / `it`.
63
- - Local imports end in `.js` (NodeNext), e.g. `from "../../src/domains/x/y.js"`.
64
- - `tsconfig.tests.json` is strict with `noUncheckedIndexedAccess` and
65
- `exactOptionalPropertyTypes`; narrow array access before use.
66
- - Biome rejects `delete obj.key`; use `Reflect.deleteProperty(obj, "key")` when
67
- cleaning env maps or object keys.
68
- - Filesystem tests use a scratch home via `makeScratchHome()` (smoke) or the
69
- `CLIO_CODER_HOME` / `CLIO_CODER_*_DIR` env overrides (contracts); clean up in `finally`.
86
+ - Use `node:test` and `node:assert/strict`.
87
+ - End local TypeScript import specifiers in `.js` for NodeNext resolution.
88
+ - Keep `tsconfig.tests.json` strict, including `noUncheckedIndexedAccess` and
89
+ `exactOptionalPropertyTypes`; narrow indexed values before use.
90
+ - Let the package script preload `tmp-root.ts`. Tests that mutate Clio state or
91
+ `process.env` should use `scratch-env.ts` and restore in teardown.
92
+ - Use a loopback fixture for provider behavior. Do not contact a configured or
93
+ public model from a deterministic test.
94
+ - Build before a focused smoke run. `npm run ci` already builds before testing.
95
+ - Keep a smoke process driver local to the boundary it exercises unless a
96
+ genuinely shared contract appears.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: credentials
3
- description: Use before running any tool or script that needs an API key, token, or other credential, when a command fails with an auth error, when the user must supply a new secret, or when a secret may have leaked into output. Covers facility surfaces such as kerberos tickets, globus and scheduler tokens, ssh agents, and netrc. Triggers on "API key", "credential", "token", "auth error", "permission denied", "add a secret", "leaked". Not for provider target configuration; use clio-coder auth and target settings.
3
+ description: Handles API keys, tokens, and facility credentials (kerberos tickets, globus and scheduler tokens, ssh agents, netrc) before a tool needs one, after an auth error, when a new secret is supplied, or when one may have leaked. Not for provider target configuration; use clio-coder auth and target settings.
4
4
  triggers:
5
5
  - API key
6
6
  - credential missing
@@ -8,7 +8,7 @@ triggers:
8
8
  - permission denied
9
9
  - add a secret
10
10
  - secret leaked
11
- version: 0.1.3
11
+ version: 0.2.0
12
12
  license: Apache-2.0
13
13
  allowed-tools:
14
14
  - read
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: find-skills
3
- description: Use when the user asks "is there a skill for X", "find a skill", "install a skill", "add a skill", asks whether a capability exists as an installable skill, or wants to extend the agent with functionality that might already be published. Searches with `clio-coder skills search`, browses the ecosystem read-only, and installs only through `clio-coder skills install`. Not for authoring a new skill; use skill-craft.
3
+ description: Finds and installs published skills when the user asks whether a capability exists as a skill, searching with clio-coder skills search and installing only through clio-coder skills install. Not for authoring a new skill; use skill-craft.
4
4
  triggers:
5
5
  - find a skill
6
6
  - is there a skill for this
7
7
  - install a skill
8
8
  - add an agent skill
9
9
  - search the skills marketplace
10
- version: 0.1.2
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - bash
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: herdr
3
- description: Use when the user explicitly mentions Herdr or asks to launch, drive, or inspect another agent or command in a Herdr pane, tab, or workspace including starting a second Clio Coder instance and delegating work to it. Requires HERDR_ENV=1. Not for background work a plain shell or dispatch already covers; do not activate merely because a task could benefit from parallelism.
3
+ description: Launches, drives, or inspects another agent or command in a Herdr pane, tab, or workspace, including a second Clio Coder instance; requires HERDR_ENV=1. Not for background work a plain shell or dispatch already covers.
4
4
  triggers:
5
5
  - use Herdr
6
6
  - launch an agent in a Herdr pane
7
7
  - inspect a Herdr agent
8
8
  - start a second Clio Coder instance
9
9
  - drive a command in a Herdr workspace
10
- version: 0.1.1
10
+ version: 0.2.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - bash
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: skill-craft
3
- description: Use when writing, reviewing, or pruning a SKILL.md — authoring a new skill, editing an installed one, or judging whether a skill's description, body, or length is earning its cost. Triggers on "write a skill", "improve this skill", "why isn't this skill firing", "is this skill too long".
3
+ description: Writes, reviews, or prunes a SKILL.md, judging whether its description, body, and length earn their cost. Not for packaging a workflow that just happened; use workflow-distiller.
4
4
  triggers:
5
5
  - write a SKILL.md
6
6
  - create a new skill
7
7
  - improve this skill
8
8
  - why isn't this skill firing
9
9
  - prune a skill body
10
- version: 0.1.3
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
12
  allowed-tools:
13
13
  - read
@@ -36,11 +36,14 @@ tool. Project skills live in `.clio-coder/skills/<name>/`; user skills in the Cl
36
36
  config dir under `skills/<name>/`. The loader validates on load; check work
37
37
  with `clio-coder skills validate`. Frontmatter contract (Agent Skills compatible):
38
38
 
39
- - `name`: lowercase-hyphen, ≤64 chars, must match the folder.
39
+ - `name`: lowercase-hyphen, ≤64 chars. Catalog convention requires it to match
40
+ the folder; the runtime loader warns on a mismatch and uses the frontmatter
41
+ name.
40
42
  - `description`: required, ≤1024 chars; its craft is the section below. Quote
41
43
  it when it contains ` #` — an unquoted YAML scalar is truncated there.
42
- - `version` and `license`: required for catalog publication; bump the version
43
- on any name or description change so drift detection can tell copies apart.
44
+ - `version` and `license`: required for catalog publication. Follow the
45
+ marketplace versioning policy for body, trigger-surface, and sibling-file
46
+ changes; the normalized `SKILL.md` hash handles drift separately.
44
47
  - `disable-model-invocation: true`: hides the skill from the agent; only the
45
48
  user can activate it.
46
49
  - `allowed-tools` / `disallowed-tools`: a *narrowing* declaration, not a
@@ -50,7 +53,7 @@ with `clio-coder skills validate`. Frontmatter contract (Agent Skills compatible
50
53
  names only (see skills/README.md, "Claude Code interop").
51
54
  - `requires`: `skill:<name>` dependencies; the loader warns when one is
52
55
  missing. Reference an installed skill by name instead of restating its job.
53
- - `clio:`: the reserved publication block (`registry-id`, `source-url`,
56
+ - `clio-coder:`: the reserved publication block (`registry-id`, `source-url`,
54
57
  `audit`, `provenance` designed|adapted|imported with `origin` when not
55
58
  designed, `eval-status`, optional `model-size` and `agents`). Required for
56
59
  catalog skills; approval is judged against it (skills/README.md).
@@ -66,17 +69,19 @@ but the user must remember it exists: cognitive load. Keep a description only
66
69
  when the agent must reach the skill on its own or another skill requires it;
67
70
  if it only ever fires by hand, set `disable-model-invocation: true`.
68
71
 
69
- ## Description: Triggers, Not Identity
72
+ ## Description and Triggers
70
73
 
71
- The description is the skill's trigger surface, so every word competes with
72
- every other skill's description:
74
+ Two frontmatter fields share the trigger surface, and every word in both
75
+ competes with every other skill's:
73
76
 
74
- - Front-load the strongest trigger word.
75
- - One trigger per distinct branch. Synonyms restating one branch ("API key",
76
- "credential", "token") are duplication; keep the strongest.
77
- - Cut identity the body already states; keep triggers, plus one "Not for X;
78
- use <other-skill>" clause per real boundary.
79
- - Word triggers with the language the user actually types.
77
+ - `triggers`: the phrases a user actually types, one per distinct branch.
78
+ Synonyms restating one branch ("API key", "credential", "token") are
79
+ duplication; keep the strongest.
80
+ - `description`: one lead sentence saying what the skill does, then one
81
+ "Not for X; use <other-skill>" clause per real boundary. It is what the
82
+ agent reads in the `context(scope="skills")` listing on every skill-shaped
83
+ turn, so it carries no trigger list and no identity the body already
84
+ states.
80
85
 
81
86
  ## Body: Steps and Reference
82
87
 
@@ -113,7 +118,8 @@ Before finishing any skill, pass the body line by line:
113
118
  or split the skill; a split description must earn its permanent context
114
119
  load.
115
120
 
116
- Done when: description is triggers-only, every step has a checkable
121
+ Done when: the description is one sentence plus routing clauses and the
122
+ triggers carry the phrases, every step has a checkable
117
123
  completion criterion, no line fails the relevance/duplication/no-op pass, and
118
124
  an `evals.md` records at least one RED-GREEN scenario distinguishing
119
125
  with-skill from without.
@@ -0,0 +1,196 @@
1
+ ---
2
+ name: archify
3
+ description: "Validated interactive system maps and diagrams as standalone HTML from a typed JSON spec, for one of five diagram types (architecture, workflow, sequence, dataflow, lifecycle). Use when the user asks to visualize architecture, a workflow, a call sequence, a data pipeline, or a state machine, or to map this repository. Not for ad hoc drawings or slide art, and not for Mermaid output; use the artifact tool for plain Markdown."
4
+ triggers:
5
+ - architecture diagram
6
+ - system map
7
+ - map this repository
8
+ - sequence diagram
9
+ - data flow diagram
10
+ - state machine diagram
11
+ - visualize the architecture
12
+ version: 0.1.0
13
+ license: MIT
14
+ allowed-tools:
15
+ - bash
16
+ - read
17
+ - write
18
+ - edit
19
+ - ls
20
+ - grep
21
+ - find
22
+ - code_nav
23
+ - verify
24
+ - context
25
+ clio-coder:
26
+ registry-id: iowarp/clio-coder
27
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/archify
28
+ audit: pass
29
+ provenance: adapted
30
+ origin: https://github.com/tt-a1i/archify/tree/v2.16.0/archify
31
+ eval-status: scenarios-recorded
32
+ model-size: any
33
+ agents:
34
+ - main
35
+ - architect
36
+ - documenter
37
+ - wiki-writer
38
+ ---
39
+
40
+ # Archify
41
+
42
+ Create a self-contained interactive HTML diagram from a small typed JSON
43
+ specification. The renderer is the upstream archify package installed
44
+ beside this file; the skill base directory is the directory that holds
45
+ `bin/`. Every command below runs as
46
+ `node .clio-coder/skills/archify/bin/archify.mjs ...` for a project-scope
47
+ install, or `node <clio config dir>/skills/archify/bin/archify.mjs ...` for a
48
+ user-scope install. No install step, no network, and no dependencies beyond
49
+ Node 18 or later.
50
+
51
+ ## Fast authoring path
52
+
53
+ 1. Choose `architecture`, `workflow`, `sequence`, `dataflow`, or `lifecycle`
54
+ from the question. When ambiguous, run
55
+ `node <skill>/bin/archify.mjs guide "<scenario>" --json`.
56
+ 2. Read one matching schema in `schemas/`, `schemas/common.schema.json`, and
57
+ one matching example in `examples/`. Read only those files. The example
58
+ supplies field shape, never facts: author new stable ids, domain wording,
59
+ and layout. New workflows use `schema_version: 2`.
60
+ 3. Write the candidate JSON as the very next action. Do not plan coordinates
61
+ in prose. Start with one clear main path, short side branches, sparse
62
+ labels, and at most 12 primary nodes. Set `meta.quality_profile` to
63
+ `"showcase"` unless the user asks for a dense `standard` map. Start with
64
+ automatic routes and labels; add `via`, `channelX`, `channelY`, or
65
+ `labelAt` only when a diagnostic asks for one, and at most one per repair.
66
+ 4. Validate after every edit and immediately before delivery:
67
+
68
+ ```bash
69
+ node <skill>/bin/archify.mjs validate <type> <candidate.json> --quality showcase --json
70
+ ```
71
+
72
+ A showcase pass reports all artifact checks with 0 composition errors
73
+ and 0 warnings. If validation fails, change only the diagnosed `subject`,
74
+ verify `evidence`, choose from `supportedFixes`, and rerun. Stop and report
75
+ the unresolved diagnostics truthfully when two consecutive rounds do not
76
+ lower the error count.
77
+ 5. Deliver once, as the final acceptance command:
78
+
79
+ ```bash
80
+ node <skill>/bin/archify.mjs deliver <type> <candidate.json> <output.html> --quality showcase --json
81
+ ```
82
+
83
+ A non-zero exit is never success. A failed delivery preserves any previous
84
+ output at that path.
85
+
86
+ Do not read renderer, validator, or geometry source before the first
87
+ candidate exists. Inspect implementation only for an unsupported internal
88
+ diagnostic or after two focused repairs fail.
89
+
90
+ ## Type router
91
+
92
+ | Type | Use for |
93
+ |---|---|
94
+ | `architecture` | Components, services, boundaries, infrastructure, repository maps |
95
+ | `workflow` | Processes, approval gates, tool calls, runbooks, CI/CD |
96
+ | `sequence` | API call chains, request lifecycles, async traces, returns |
97
+ | `dataflow` | Pipelines, ETL/ELT, lineage, consumers |
98
+ | `lifecycle` | State transitions, retries, waiting and terminal states |
99
+
100
+ Pasted Mermaid is read for topology and meaning, then re-authored as fresh
101
+ archify JSON: `flowchart` becomes `workflow` (or `architecture` for a
102
+ component map), `sequenceDiagram` becomes `sequence`, `stateDiagram` becomes
103
+ `lifecycle`.
104
+
105
+ ## Authoring invariants
106
+
107
+ - One obvious main path; side branches leave the nearest main-path node.
108
+ Remove low-value edges before adding routing controls.
109
+ - Omit `meta.visual_preset`, `meta.subtitle`, `meta.legend`, and
110
+ `meta.engineering_profile` by default. Set a visual preset only when the
111
+ user names that style.
112
+ - Component types are `frontend`, `backend`, `database`, `cloud`,
113
+ `security`, `messagebus`, and `external`. Variants are `default`,
114
+ `emphasis`, `security`, and `dashed`.
115
+ - Relationship labels are semantic data. When one collides, move the label
116
+ or adjust spacing first, then shorten wording while preserving meaning.
117
+ Deleting a label is not a geometry repair.
118
+ - Preserve exact product names, identifiers, commands, protocols, and paths.
119
+ `meta.locale` is `"en"` or `"zh-CN"`; omit it for any other language and
120
+ say that the viewer chrome falls back to English.
121
+ - Brand identity is explicit. Put a canonical built-in id in `brand` only
122
+ when the node names that real product; query
123
+ `node <skill>/bin/archify.mjs brands "<name>" --json`. Never infer a brand
124
+ from a role such as "database".
125
+ - Never accept an edge crossing an unrelated opaque node, an ambiguous shared
126
+ corridor, or a label masking another route.
127
+
128
+ Read `references/authoring-contract.md` only when you need field enums,
129
+ spacing math, geometry repair rules, or mode-specific placement.
130
+
131
+ ## Placement
132
+
133
+ Write `<name>.<type>.json` and `<name>.html` to `.clio-coder/artifacts/maps/`
134
+ unless the user names an output path. Create the directory first. An
135
+ operator-named path is a human deliverable and lands in the working tree
136
+ where they said. Archify creates `.archify-delivery-*` staging directories
137
+ beside the output during `deliver`, so the output directory must be a
138
+ writable directory inside the workspace, never a read-only or external
139
+ location.
140
+
141
+ ## Repository evidence
142
+
143
+ When asked to map a repository, do not author from scratch. First run:
144
+
145
+ ```bash
146
+ clio-coder context map --json
147
+ ```
148
+
149
+ It reads the codewiki index and writes
150
+ `.clio-coder/artifacts/maps/<repo>.architecture.json`: an architecture spec
151
+ whose components are the repository's largest directory areas and whose
152
+ connections are collapsed import edges. When the origin remote is a GitHub
153
+ URL and `HEAD` is a full revision, the seed also carries `meta.repository`
154
+ and per-component `sources` pointing at real files and lines; otherwise it
155
+ carries neither, because archify accepts source citations only against a
156
+ pinned revision. If it reports that no index exists, run
157
+ `clio-coder context index` and retry. Then refine the seed: rename labels to
158
+ what the areas mean, drop noise edges, and keep `meta.repository` and every
159
+ `sources` entry that came from the seed. Cite additional line ranges only
160
+ from `code_nav mode=outline` results, never from memory, and only when
161
+ `meta.repository` is present. Keep at most 12 primary components; fold
162
+ smaller areas into their parent rather than adding nodes. When the seed
163
+ carries `meta.repository`, pass `--repo-root .` to both `validate` and
164
+ `deliver` so the source paths and line numbers are verified against the
165
+ working tree; without it, run both commands without `--repo-root`.
166
+
167
+ ## Delivery and verification
168
+
169
+ `validate` during repair, `deliver` once for acceptance. Delivery freezes the
170
+ exact spec bytes into a same-directory snapshot, renders and checks it,
171
+ atomically commits the HTML, and reports SHA-256 plus byte counts for both
172
+ spec and artifact. That is deterministic artifact evidence; it does not
173
+ exercise the viewer in a browser.
174
+
175
+ After `deliver` exits 0, run the Clio-side check on the committed file:
176
+
177
+ ```
178
+ verify(check="frontend", path="<output.html>")
179
+ ```
180
+
181
+ That validates structure, local references, and syntax, and loads the page
182
+ in a headless browser when one is on PATH. Archify's own
183
+ `node <skill>/bin/archify.mjs visual-check <output.html> --json` is optional:
184
+ it needs a system Chrome and fails with `viewer/chrome-unavailable` on
185
+ headless nodes. Report that outcome as what it is, never as a pass.
186
+
187
+ Keep the three claims separate: `deliver` proves deterministic artifact
188
+ checks, a browser load proves bounded behavior in a real browser, and
189
+ perceptual visual review requires a human or an image-capable reviewer.
190
+
191
+ ## Output
192
+
193
+ Return the HTML path, the diagram type, the validation summary, the
194
+ spec and artifact receipt, the `verify` result, and the visual-review
195
+ status. Do not claim success for a non-zero command or claim inspection you
196
+ did not perform.
@@ -0,0 +1,65 @@
1
+ # Evals — archify
2
+
3
+ RED-GREEN scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
4
+ bullet. Status: scenarios recorded, not yet executed against a model
5
+ (`eval-status: scenarios-recorded`).
6
+
7
+ Both scenarios assume the skill is installed at project scope
8
+ (`.clio-coder/skills/archify/`) and run from the project root.
9
+
10
+ ## S1 — describe a system
11
+
12
+ Setup: empty git repository. Prompt: "Draw the architecture: a browser
13
+ talks to an API, the API uses Redis as a cache and PostgreSQL as its
14
+ store."
15
+
16
+ Expected:
17
+ - Chooses `architecture` and reads exactly one schema plus one example
18
+ before writing.
19
+ - The very next tool action writes
20
+ `.clio-coder/artifacts/maps/<name>.architecture.json` with four
21
+ components (`frontend`, `backend`, `database`, `database`), three
22
+ connections, and `meta.quality_profile: "showcase"`.
23
+ - Runs `validate architecture ... --quality showcase --json`; the receipt
24
+ reports 0 errors and 0 warnings.
25
+ - Runs `deliver` once; exit 0; `.clio-coder/artifacts/maps/<name>.html`
26
+ exists and the receipt carries a SHA-256 for both spec and artifact.
27
+ - Runs `verify(check="frontend", path=<html>)` and reports its result.
28
+ - Never invokes `scripts/check-update.mjs` and never runs `visual-check`
29
+ unless asked; if it does run it on a node without Chrome, reports
30
+ `viewer/chrome-unavailable` as a skipped check, not a pass.
31
+
32
+ RED (baseline without the skill): draws Mermaid or ASCII in the reply,
33
+ never writes a JSON spec, never validates, and claims a diagram that does
34
+ not exist on disk.
35
+
36
+ ## S2 — map this repository
37
+
38
+ Setup: a small fixture repository (about 15 TypeScript files across
39
+ `src/cli`, `src/domains/store`, and `src/domains/api`) with a GitHub
40
+ `origin` remote, a committed `HEAD`, and a codewiki index already built by
41
+ `clio-coder context index`. Prompt: "Map this repository."
42
+
43
+ Expected:
44
+ - Runs `clio-coder context map --json` before authoring anything.
45
+ - Keeps `meta.repository` (when present) and every seeded `sources` entry;
46
+ adds line ranges only from `code_nav mode=outline`.
47
+ - Component count stays at or below 12; the `store` area carries
48
+ `type: "database"`.
49
+ - Runs `validate architecture <seed> --repo-root . --quality standard
50
+ --json`; 0 errors.
51
+ - Runs `deliver ... --repo-root .`; exit 0; the HTML exists under
52
+ `.clio-coder/artifacts/maps/`.
53
+ - If the index is missing, tells the user to run `clio-coder context
54
+ index` instead of inventing components.
55
+
56
+ RED (baseline without the skill): lists directories from `ls` as
57
+ components with invented edges, no line evidence, no `--repo-root`
58
+ verification, and no delivered HTML.
59
+
60
+ ## Baseline failure modes to watch for
61
+
62
+ - Authoring coordinates in prose before the first candidate.
63
+ - Reading renderer source before the first candidate.
64
+ - Editing the spec after the final passing validation.
65
+ - Reporting a non-zero `deliver` or a missing Chrome as success.