@iowarp/clio-coder 0.4.6 → 0.4.7

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 (657) hide show
  1. package/.claude-plugin/marketplace.json +283 -0
  2. package/CHANGELOG.md +50 -0
  3. package/CONTRIBUTING.md +102 -29
  4. package/NOTICE +8 -0
  5. package/README.md +37 -5
  6. package/dist/{acp-UVEVWSDL.js → acp-W3Y3TRHD.js} +12 -12
  7. package/dist/{agents-VWY37DTK.js → agents-J4ICNLQ3.js} +52 -52
  8. package/dist/assets/codewiki.json +1 -1
  9. package/dist/assets/tui-notices/get-east-asian-width-LICENSE +9 -0
  10. package/dist/assets/tui-notices/marked-LICENSE +44 -0
  11. package/dist/assets/tui-notices/pi-tui-LICENSE +21 -0
  12. package/dist/{auth-PCV2XQDV.js → auth-X2UJUMOC.js} +24 -24
  13. package/dist/{builtins-PD652MTK.js → builtins-XLXWWSRF.js} +6 -6
  14. package/dist/{chunk-DZK63TZJ.js → chunk-24S3DN22.js} +336 -612
  15. package/dist/{chunk-NTK3WTHM.js → chunk-24TOGHPO.js} +2 -2
  16. package/dist/{chunk-M6TAYK66.js → chunk-2O2LVQQK.js} +11 -4
  17. package/dist/{chunk-OQM5IVJY.js → chunk-34XHRVKG.js} +3 -3
  18. package/dist/{chunk-LY4N4TTL.js → chunk-3LXJOICS.js} +2 -2
  19. package/dist/{chunk-3BJGMT2D.js → chunk-3XE4NRLF.js} +1 -1
  20. package/dist/{chunk-N2OKBREN.js → chunk-4MFBBY2Z.js} +3 -3
  21. package/dist/{chunk-5VTJP36Q.js → chunk-4N2RZ4TO.js} +2 -2
  22. package/dist/{chunk-WNGF5AJX.js → chunk-4QKAITQT.js} +3 -3
  23. package/dist/chunk-4UHVS5T7.js +207 -0
  24. package/dist/{chunk-GLYBJ4RQ.js → chunk-5AJPUR72.js} +6 -6
  25. package/dist/{chunk-5CY4Q6QI.js → chunk-5EQO5NWP.js} +105 -3
  26. package/dist/{chunk-6HAO6X5B.js → chunk-65BGHOUR.js} +8 -5
  27. package/dist/{chunk-6VRRJT7L.js → chunk-6CA2BHOR.js} +2 -2
  28. package/dist/{chunk-HL26ADLH.js → chunk-6CB2IL4N.js} +2 -1
  29. package/dist/{chunk-E7RF4KBO.js → chunk-6LRLOJHQ.js} +3 -3
  30. package/dist/{chunk-HXHFDHB6.js → chunk-6TAATXXH.js} +6 -6
  31. package/dist/{chunk-P6M7RKMI.js → chunk-6YHPAAZR.js} +3 -3
  32. package/dist/{chunk-5QRX7SLS.js → chunk-7EEGBKV4.js} +7 -7
  33. package/dist/{chunk-BS4GAMUB.js → chunk-A67NR5AT.js} +2 -2
  34. package/dist/{chunk-WJIMKGD6.js → chunk-BAU36233.js} +8 -8
  35. package/dist/{chunk-PZN2LQY6.js → chunk-BO4XV5VX.js} +4 -4
  36. package/dist/{chunk-I2K2NCZQ.js → chunk-BQQ5MXUC.js} +6 -6
  37. package/dist/{chunk-X3BI7HTV.js → chunk-C3G5PNUO.js} +21 -21
  38. package/dist/{chunk-SRZOW5L2.js → chunk-C6GEXX4L.js} +1 -1
  39. package/dist/{chunk-6RYDAVQT.js → chunk-CE64C5K5.js} +219 -64
  40. package/dist/chunk-CP3HIR5H.js +2119 -0
  41. package/dist/{chunk-BBV5TKE6.js → chunk-CPXGJI2A.js} +2 -2
  42. package/dist/{chunk-IGLVVNEG.js → chunk-CULVKYTK.js} +4 -4
  43. package/dist/{chunk-DXLUVUD4.js → chunk-D2T66PDV.js} +5 -5
  44. package/dist/{chunk-NF3BK5WR.js → chunk-DACXIVVF.js} +5 -5
  45. package/dist/{chunk-IKRWLEDA.js → chunk-DLIYANB7.js} +20 -15
  46. package/dist/{chunk-RGZNQ5CT.js → chunk-DO7M3LSX.js} +9 -9
  47. package/dist/{chunk-2QPI3TR3.js → chunk-DVJL77SO.js} +2 -2
  48. package/dist/{chunk-ODUTYZIU.js → chunk-EUEXGXXR.js} +5 -5
  49. package/dist/{chunk-WKUYQBCG.js → chunk-EUZRMP4Y.js} +18 -16
  50. package/dist/{chunk-JMPL7NUB.js → chunk-G4LGUTOE.js} +4 -4
  51. package/dist/{chunk-CBSKDFWL.js → chunk-GEVQNST4.js} +2 -2
  52. package/dist/{chunk-NNWJYUNO.js → chunk-GFQ7P2UF.js} +7 -7
  53. package/dist/{chunk-SXQKNKRA.js → chunk-GI5RRMAH.js} +14 -14
  54. package/dist/{chunk-HPTJF6DG.js → chunk-GVZFCJHE.js} +336 -83
  55. package/dist/{chunk-ACCKVSHU.js → chunk-GXIWHXDB.js} +3 -3
  56. package/dist/{chunk-LUL5Z66S.js → chunk-HOX4YZ2K.js} +6 -5
  57. package/dist/chunk-HRAKUPIH.js +57 -0
  58. package/dist/{chunk-F5Z7EWMN.js → chunk-IJMW64DX.js} +50 -50
  59. package/dist/{chunk-QNWRHOMF.js → chunk-IMOD2YPV.js} +16 -9
  60. package/dist/{chunk-HZ2T2YED.js → chunk-IQCNVLO6.js} +28 -8
  61. package/dist/{chunk-HZFBVU5X.js → chunk-ISNCCX42.js} +8 -8
  62. package/dist/{chunk-7JSSKXG2.js → chunk-IZYTT3CD.js} +7 -3
  63. package/dist/chunk-KKEYGFX4.js +915 -0
  64. package/dist/{chunk-HHVJNVUJ.js → chunk-KS7ETA3P.js} +2 -2
  65. package/dist/{chunk-BLTEAUCB.js → chunk-L3Z5ANCV.js} +7 -7
  66. package/dist/{chunk-4VMV6OS6.js → chunk-LBFQMYS3.js} +2 -2
  67. package/dist/{chunk-URBGEOH3.js → chunk-M6Z2V6YU.js} +5 -5
  68. package/dist/{chunk-BT7HGDOX.js → chunk-MBJO5VNZ.js} +12 -12
  69. package/dist/chunk-MNQN3X6Y.js +595 -0
  70. package/dist/{chunk-3QKXHCGS.js → chunk-MZHXENL7.js} +5 -5
  71. package/dist/chunk-MZNWZUJM.js +1801 -0
  72. package/dist/{chunk-7YJWEF2L.js → chunk-N37QC5FV.js} +5 -5
  73. package/dist/{chunk-TJFDL26W.js → chunk-NCCQ6DVS.js} +7 -7
  74. package/dist/{chunk-P5JMBPDJ.js → chunk-NO7J45X6.js} +162 -47
  75. package/dist/chunk-OH3YYA3B.js +15 -0
  76. package/dist/{chunk-22PQ4TX4.js → chunk-P4DL2LM5.js} +16 -77
  77. package/dist/{chunk-LIN2K3EL.js → chunk-PFLOULP3.js} +4 -4
  78. package/dist/{chunk-QXFBABFJ.js → chunk-QKWL7SYE.js} +11 -11
  79. package/dist/chunk-RFCKPS2V.js +26 -0
  80. package/dist/{chunk-ZS43Y2FT.js → chunk-RTLNFZMD.js} +12 -4
  81. package/dist/{chunk-U7H5WRG5.js → chunk-RXFPB32E.js} +8 -6
  82. package/dist/{chunk-Q7NNUHQV.js → chunk-SEDI5K5B.js} +16 -16
  83. package/dist/{chunk-WV6TDAPN.js → chunk-SELG4SUR.js} +7 -7
  84. package/dist/{chunk-3WBALRQH.js → chunk-SER7RRAE.js} +27 -832
  85. package/dist/{chunk-K2HL3GBL.js → chunk-T4TY5GG3.js} +165 -15
  86. package/dist/chunk-T7QQBNLH.js +691 -0
  87. package/dist/{chunk-6OII3LOK.js → chunk-TLTGZTXI.js} +3 -3
  88. package/dist/chunk-TZ6UVP2H.js +637 -0
  89. package/dist/{chunk-3JLFK5MW.js → chunk-TZHN5ITX.js} +13 -41
  90. package/dist/{chunk-VANN3GDP.js → chunk-U3TPUXOQ.js} +399 -234
  91. package/dist/{chunk-VHMX7SXF.js → chunk-UA3W4FGC.js} +6 -6
  92. package/dist/{chunk-3O2ZAUGQ.js → chunk-UA6W4XFJ.js} +2 -2
  93. package/dist/chunk-UWD3JD5X.js +709 -0
  94. package/dist/chunk-V4ZKOKRB.js +13433 -0
  95. package/dist/{chunk-NC4KV7EL.js → chunk-VCRVEDUC.js} +5 -5
  96. package/dist/{chunk-4DU2TVI4.js → chunk-VMATUZB6.js} +12 -10
  97. package/dist/{chunk-J2FYEQ5L.js → chunk-VTYHHQ57.js} +2 -2
  98. package/dist/chunk-WB7POC6M.js +891 -0
  99. package/dist/{chunk-3HQVBIKD.js → chunk-WBVKKTUT.js} +2 -2
  100. package/dist/{chunk-EHOSNVVM.js → chunk-WLHX3MM5.js} +6 -2
  101. package/dist/{chunk-24T2YZ7A.js → chunk-WN552PKN.js} +553 -298
  102. package/dist/{chunk-4U4TKZFR.js → chunk-WT5TRMO4.js} +51 -26
  103. package/dist/{chunk-XWMSPJYN.js → chunk-WURGVOZJ.js} +56 -12
  104. package/dist/{chunk-7WUZEB2M.js → chunk-XR3XJN2M.js} +2 -2
  105. package/dist/chunk-XW2UZICE.js +372 -0
  106. package/dist/{chunk-2AKYFREM.js → chunk-XZ6UFQ52.js} +11 -11
  107. package/dist/chunk-Y3JU5RPK.js +8 -0
  108. package/dist/chunk-YKRJTYNP.js +1143 -0
  109. package/dist/{chunk-PWWSIB2A.js → chunk-ZGIGW4ZG.js} +5 -5
  110. package/dist/cli/index.js +34 -36
  111. package/dist/{clio-QQCMTUZE.js → clio-L2P7S2R2.js} +9 -9
  112. package/dist/{code-nav-GUPM6766.js → code-nav-B5LNX4KU.js} +25 -25
  113. package/dist/{components-TNIKXCBH.js → components-63MMQKUT.js} +6 -6
  114. package/dist/{config-IIM7YOD3.js → config-YXARKGTX.js} +70 -67
  115. package/dist/{configure-4ZM5HWJX.js → configure-LMVQJ46J.js} +47 -35
  116. package/dist/{context-OL5P3HEP.js → context-7HJEWTTP.js} +87 -44
  117. package/dist/{context-44BZLJ3J.js → context-XSZKKFBW.js} +14 -14
  118. package/dist/{context-AIDVQKMW.js → context-YG2LZDYZ.js} +60 -58
  119. package/dist/{context-clear-OQV76MYP.js → context-clear-AC5NXHM2.js} +57 -55
  120. package/dist/{context-index-HP2JFUWA.js → context-index-KKTPRV5G.js} +3 -3
  121. package/dist/{context-map-INTXD54D.js → context-map-T7ROR5D5.js} +4 -4
  122. package/dist/{context-working-set-ZUW3EGLS.js → context-working-set-F4Q4J3NS.js} +12 -10
  123. package/dist/{detail-UXPWRANG.js → detail-H73BEF2N.js} +58 -56
  124. package/dist/{dispatch-runner-P3ZW6G77.js → dispatch-runner-3RY5FSJC.js} +74 -72
  125. package/dist/{doctor-JJVGPZWT.js → doctor-EQYJOGUG.js} +44 -30
  126. package/dist/{eval-V2RTN3UH.js → eval-4P7O6CCE.js} +109 -46
  127. package/dist/{evidence-35PYWGSO.js → evidence-D6GUSYJW.js} +57 -55
  128. package/dist/{evidence-CIGGKI6J.js → evidence-O76QF7TZ.js} +62 -59
  129. package/dist/{evolve-33SM3NJP.js → evolve-H47BCETS.js} +58 -56
  130. package/dist/{extensions-YVRHX6ZI.js → extensions-NNL3ZOCU.js} +98 -20
  131. package/dist/{fleet-LFO7SIPC.js → fleet-KMNS6NOM.js} +106 -99
  132. package/dist/{fleet-commands-RLK72GU3.js → fleet-commands-DOWSYCBX.js} +14 -14
  133. package/dist/{fleet-decisions-3SBSCTCW.js → fleet-decisions-S3PTZV2D.js} +9 -9
  134. package/dist/{fleet-graph-JZIBCGMW.js → fleet-graph-F2DE2TME.js} +26 -24
  135. package/dist/{fleet-inspect-2L5YGGZJ.js → fleet-inspect-EN2Q6IVB.js} +60 -57
  136. package/dist/{fleet-preflight-QRSHIIDE.js → fleet-preflight-FRLETDD3.js} +3 -3
  137. package/dist/{fleet-validate-LIAVKDUU.js → fleet-validate-B2XDLS57.js} +28 -29
  138. package/dist/{fleet-verify-JIK3OQZR.js → fleet-verify-4JKUWGJ7.js} +57 -55
  139. package/dist/{fleet-view-IWHYGQKK.js → fleet-view-BHJFW26B.js} +60 -57
  140. package/dist/{init-NJEDOTQW.js → init-XAT5N5YM.js} +79 -74
  141. package/dist/interop-FVECHFKG.js +246 -0
  142. package/dist/{inventory-74UL7UHU.js → inventory-7KFQGLCV.js} +60 -57
  143. package/dist/library-NY2XOT75.js +492 -0
  144. package/dist/library-QAPAO23R.js +306 -0
  145. package/dist/library-import-5Y6MAS3R.js +183 -0
  146. package/dist/library-inventory-JT6HWITQ.js +56 -0
  147. package/dist/library-validation-EQUH25DC.js +42 -0
  148. package/dist/{memory-I76I5VUH.js → memory-DYVTTCP6.js} +58 -56
  149. package/dist/{models-D4YDIQZQ.js → models-MASFJ6Y2.js} +48 -36
  150. package/dist/{monitor-NKVD55HX.js → monitor-YMP4NXJJ.js} +64 -61
  151. package/dist/{orchestrator-I6OATVPK.js → orchestrator-AFQRRTEI.js} +3685 -1841
  152. package/dist/{panes-7BTYH3XQ.js → panes-D3Y2KFG5.js} +4 -4
  153. package/dist/{panes-WPOMEMRH.js → panes-NICTHQCV.js} +7 -7
  154. package/dist/{paths-J3KN7UAO.js → paths-PSFAUIGO.js} +5 -5
  155. package/dist/{preload-EJAWJEIO.js → preload-5Q7VXRFJ.js} +57 -55
  156. package/dist/{reset-4XMQKDNZ.js → reset-7NKZK7JN.js} +9 -9
  157. package/dist/{resources-TVYVXK3Q.js → resources-NILSIZAT.js} +94 -38
  158. package/dist/{run-OWQNNSJU.js → run-BPZGEBZV.js} +121 -105
  159. package/dist/{share-NPZZMUXG.js → share-EZ6ERBMH.js} +31 -28
  160. package/dist/skills-BTVVNYVM.js +100 -0
  161. package/dist/{skills-eval-J5TCKSJA.js → skills-eval-UY34MNK7.js} +110 -72
  162. package/dist/{skills-inventory-7II4DM57.js → skills-inventory-JDHSIA7I.js} +30 -25
  163. package/dist/{slash-commands-MDSDSWYF.js → slash-commands-K4FNQ2AT.js} +49 -46
  164. package/dist/{steer-S7D7IKPU.js → steer-2B3EQGFH.js} +4 -4
  165. package/dist/{support-5VAEC32W.js → support-L2SOL3IE.js} +7 -7
  166. package/dist/{targets-KILZEOCE.js → targets-44VKGFLN.js} +64 -58
  167. package/dist/{tasks-R6P6OV22.js → tasks-3KODKFU7.js} +12 -12
  168. package/dist/{terminal-lease-LZCG2KN3.js → terminal-lease-LXA7MMPO.js} +32 -19
  169. package/dist/{tools-6OCQ6SVB.js → tools-3UB7TEVR.js} +7 -7
  170. package/dist/{trace-JHLXWUMN.js → trace-TAMIU4OJ.js} +5 -4
  171. package/dist/{tui-primitives-RCY2HN7G.js → tui-primitives-A6MUW32V.js} +3 -2
  172. package/dist/{uninstall-FXYMFFRT.js → uninstall-QYVRPEM4.js} +9 -9
  173. package/dist/{upgrade-D2OZH6IQ.js → upgrade-7PMKM2JH.js} +15 -16
  174. package/dist/{usage-PIASNUS4.js → usage-6EQV7EQK.js} +70 -67
  175. package/dist/{verifiers-LTHUY2PX.js → verifiers-JLITWSHU.js} +15 -15
  176. package/dist/{verify-HYF7KBVE.js → verify-T7NAEVIG.js} +13 -13
  177. package/dist/{web-fetch-MQN4FH3X.js → web-fetch-W4TNW4Q7.js} +4 -4
  178. package/dist/{wiki-generate-RK7JQ5NP.js → wiki-generate-T2TJQJUA.js} +81 -76
  179. package/dist/{with-panes-OFTNAR4Y.js → with-panes-CHFC7HGI.js} +4 -4
  180. package/dist/worker/entry.js +283 -76
  181. package/docs/README.md +43 -0
  182. package/docs/architecture/architecture.md +8 -7
  183. package/docs/architecture/artifact-versions.md +3 -3
  184. package/docs/architecture/context-engine.md +35 -1
  185. package/docs/architecture/library.md +32 -0
  186. package/docs/architecture/middleware-and-components.md +1 -1
  187. package/docs/architecture/model-catalog.md +21 -1
  188. package/docs/architecture/pi-boundary.md +18 -0
  189. package/docs/architecture/prompt-envelope-and-tools.md +5 -5
  190. package/docs/architecture/safety-model.md +21 -2
  191. package/docs/architecture/session-lifecycle.md +12 -1
  192. package/docs/architecture/tui-design.md +108 -9
  193. package/docs/architecture/worker-context.md +106 -0
  194. package/docs/guide/authoring-plugins.md +160 -0
  195. package/docs/guide/built-in-agents.md +5 -5
  196. package/docs/guide/commands-and-modes.md +161 -56
  197. package/docs/guide/configuration-and-targets.md +1 -1
  198. package/docs/guide/configuration-reference.md +27 -34
  199. package/docs/guide/environment-variables.md +2 -2
  200. package/docs/guide/exit-codes-and-output.md +1 -1
  201. package/docs/guide/extensions-and-sharing.md +93 -53
  202. package/docs/guide/fleet-dispatch.md +31 -4
  203. package/docs/guide/glossary.md +1 -1
  204. package/docs/guide/harness-extensions.md +291 -0
  205. package/docs/guide/installation-and-lifecycle.md +9 -9
  206. package/docs/guide/interop.md +243 -0
  207. package/docs/guide/panes-and-files.md +3 -3
  208. package/docs/guide/plugins.md +80 -0
  209. package/docs/guide/resource-library.md +111 -45
  210. package/docs/guide/skills-marketplace.md +35 -72
  211. package/docs/guide/tool-usage.md +19 -7
  212. package/docs/guide/troubleshooting.md +1 -1
  213. package/docs/process/development-pipeline.md +14 -14
  214. package/docs/process/documentation-coverage.md +28 -1
  215. package/docs/process/documentation-guide.md +15 -7
  216. package/docs/process/eval-runner.md +8 -3
  217. package/docs/process/performance-methodology.md +1 -1
  218. package/docs/process/release-cut-checklist.md +4 -0
  219. package/docs/process/scientific-validation.md +23 -0
  220. package/evals/scalar-decision-machinery.ts +1 -1
  221. package/examples/extensions/README.md +67 -0
  222. package/examples/extensions/lab-status/clio-coder-extension.json +14 -0
  223. package/examples/extensions/lab-status/extension.mjs +68 -0
  224. package/examples/extensions/lab-status/jobs.synthetic.json +9 -0
  225. package/examples/extensions/measurements/clio-coder-extension.json +28 -0
  226. package/examples/extensions/measurements/summarize.cjs +23 -0
  227. package/library/README.md +109 -0
  228. package/library/_authoring/templates/agent/README.md +28 -0
  229. package/library/_authoring/templates/agent/agents/benchmark-scout.md +30 -0
  230. package/library/_authoring/templates/agent/plugin.json +23 -0
  231. package/library/_authoring/templates/fleet/README.md +29 -0
  232. package/library/_authoring/templates/fleet/fleets/pipeline-review.md +31 -0
  233. package/library/_authoring/templates/fleet/plugin.json +23 -0
  234. package/library/_authoring/templates/plugin/README.md +37 -0
  235. package/library/_authoring/templates/plugin/agents/data-curator.md +31 -0
  236. package/library/_authoring/templates/plugin/assets/curation-guide.md +22 -0
  237. package/library/_authoring/templates/plugin/plugin.json +42 -0
  238. package/library/_authoring/templates/plugin/prompts/inspect-dataset.md +15 -0
  239. package/library/_authoring/templates/plugin/skills/dataset-curation/SKILL.md +36 -0
  240. package/library/_authoring/templates/plugin/skills/dataset-curation/evals.md +17 -0
  241. package/library/_authoring/templates/prompt/README.md +28 -0
  242. package/library/_authoring/templates/prompt/plugin.json +23 -0
  243. package/library/_authoring/templates/prompt/prompts/paper-summary.md +26 -0
  244. package/library/_authoring/templates/skill/README.md +24 -0
  245. package/library/_authoring/templates/skill/SKILL.md +39 -0
  246. package/library/_authoring/templates/skill/evals.md +30 -0
  247. package/library/_authoring/templates/skill/plugin.json +23 -0
  248. package/library/agents/README.md +7 -0
  249. package/library/fleets/README.md +7 -0
  250. package/library/plugins/materio/README.md +137 -0
  251. package/library/plugins/materio/ai.iowarp.clio/agents/materio-lab-definer.md +208 -0
  252. package/library/plugins/materio/ai.iowarp.clio/agents/materio-literature-reviewer.md +308 -0
  253. package/library/plugins/materio/ai.iowarp.clio/agents/materio-research-explorer.md +249 -0
  254. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-executor.md +416 -0
  255. package/library/plugins/materio/ai.iowarp.clio/agents/materio-task-verifier.md +60 -0
  256. package/library/plugins/materio/ai.iowarp.clio/agents/materio-workflow-planner.md +238 -0
  257. package/library/plugins/materio/ai.iowarp.clio/fleets/materio-execute-task.md +50 -0
  258. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/add-task.md +66 -0
  259. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/archive-task.md +65 -0
  260. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/checkpoint.md +26 -0
  261. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-research-tasks.md +230 -0
  262. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/define-virtual-lab.md +181 -0
  263. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/execute-task.md +292 -0
  264. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/help.md +129 -0
  265. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/identify-research.md +206 -0
  266. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/literature-review.md +201 -0
  267. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/pause-research.md +12 -0
  268. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/progress.md +105 -0
  269. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/remove-task.md +63 -0
  270. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/resume-research.md +64 -0
  271. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/settings.md +16 -0
  272. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/status.md +92 -0
  273. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/upload-data.md +104 -0
  274. package/library/plugins/materio/ai.iowarp.clio/prompts/materio/wtfp.md +145 -0
  275. package/library/plugins/materio/ai.iowarp.clio/references/execution.md +56 -0
  276. package/library/plugins/materio/ai.iowarp.portability/provenance.json +9 -0
  277. package/library/plugins/materio/assets/actions/add-task.md +86 -0
  278. package/library/plugins/materio/assets/actions/archive-task.md +84 -0
  279. package/library/plugins/materio/assets/actions/checkpoint.md +47 -0
  280. package/library/plugins/materio/assets/actions/define-research-tasks.md +228 -0
  281. package/library/plugins/materio/assets/actions/define-virtual-lab.md +179 -0
  282. package/library/plugins/materio/assets/actions/execute-task.md +290 -0
  283. package/library/plugins/materio/assets/actions/help.md +140 -0
  284. package/library/plugins/materio/assets/actions/identify-research.md +204 -0
  285. package/library/plugins/materio/assets/actions/literature-review.md +199 -0
  286. package/library/plugins/materio/assets/actions/pause-research.md +34 -0
  287. package/library/plugins/materio/assets/actions/progress.md +125 -0
  288. package/library/plugins/materio/assets/actions/remove-task.md +82 -0
  289. package/library/plugins/materio/assets/actions/resume-research.md +84 -0
  290. package/library/plugins/materio/assets/actions/settings.md +38 -0
  291. package/library/plugins/materio/assets/actions/status.md +112 -0
  292. package/library/plugins/materio/assets/actions/upload-data.md +123 -0
  293. package/library/plugins/materio/assets/actions/wtfp.md +179 -0
  294. package/library/plugins/materio/assets/references/research-domains.md +134 -0
  295. package/library/plugins/materio/assets/references/research-policy.md +77 -0
  296. package/library/plugins/materio/assets/references/traditional-workflows.md +146 -0
  297. package/library/plugins/materio/assets/scripts/check_physics.py +271 -0
  298. package/library/plugins/materio/assets/scripts/check_scripts.py +248 -0
  299. package/library/plugins/materio/assets/scripts/project_plugin.py +165 -0
  300. package/library/plugins/materio/assets/scripts/research_state.py +400 -0
  301. package/library/plugins/materio/assets/scripts/verify_citations.py +616 -0
  302. package/library/plugins/materio/assets/templates/RESEARCH.md +39 -0
  303. package/library/plugins/materio/assets/templates/VIRTUAL-LAB.md +120 -0
  304. package/library/plugins/materio/assets/templates/WORKFLOW.md +42 -0
  305. package/library/plugins/materio/assets/templates/config.json +5 -0
  306. package/library/plugins/materio/evals/scripts.yaml +29 -0
  307. package/library/plugins/materio/plugin.json +530 -0
  308. package/library/plugins/materio/skills/materio-lab-definer/SKILL.md +74 -0
  309. package/library/plugins/materio/skills/materio-literature-reviewer/SKILL.md +64 -0
  310. package/library/plugins/materio/skills/materio-research-explorer/SKILL.md +74 -0
  311. package/library/plugins/materio/skills/materio-task-executor/SKILL.md +214 -0
  312. package/library/plugins/materio/skills/materio-task-verifier/SKILL.md +46 -0
  313. package/library/plugins/materio/skills/materio-workflow-planner/SKILL.md +79 -0
  314. package/library/plugins/materio/tests/test_check_physics.py +139 -0
  315. package/library/plugins/materio/tests/test_check_scripts.py +140 -0
  316. package/library/plugins/materio/tests/test_research_state.py +291 -0
  317. package/library/plugins/materio/tests/test_verify_citations.py +337 -0
  318. package/library/prompts/README.md +7 -0
  319. package/library/registry.yaml +921 -0
  320. package/library/skills/README.md +120 -0
  321. package/{skills → library/skills}/coding/ast-grep/SKILL.md +1 -1
  322. package/{skills → library/skills}/coding/ast-grep/evals.md +1 -1
  323. package/library/skills/coding/ast-grep/plugin.json +23 -0
  324. package/{skills → library/skills}/coding/coding-standards/SKILL.md +1 -1
  325. package/{skills → library/skills}/coding/coding-standards/evals.md +1 -1
  326. package/library/skills/coding/coding-standards/plugin.json +23 -0
  327. package/{skills → library/skills}/coding/prototype/SKILL.md +1 -1
  328. package/{skills → library/skills}/coding/prototype/evals.md +1 -1
  329. package/library/skills/coding/prototype/plugin.json +23 -0
  330. package/{skills → library/skills}/coding/tdd/SKILL.md +1 -1
  331. package/{skills → library/skills}/coding/tdd/evals.md +1 -1
  332. package/library/skills/coding/tdd/plugin.json +23 -0
  333. package/{skills → library/skills}/context/context-handoff/SKILL.md +1 -1
  334. package/{skills → library/skills}/context/context-handoff/evals.md +1 -1
  335. package/library/skills/context/context-handoff/plugin.json +23 -0
  336. package/{skills → library/skills}/context/context-prime/SKILL.md +1 -1
  337. package/{skills → library/skills}/context/context-prime/evals.md +1 -1
  338. package/library/skills/context/context-prime/plugin.json +23 -0
  339. package/{skills → library/skills}/git/branch-closeout/SKILL.md +1 -1
  340. package/library/skills/git/branch-closeout/plugin.json +23 -0
  341. package/{skills → library/skills}/git/file-ticket/SKILL.md +1 -1
  342. package/library/skills/git/file-ticket/plugin.json +23 -0
  343. package/{skills → library/skills}/git/fix-issue/SKILL.md +1 -1
  344. package/library/skills/git/fix-issue/plugin.json +23 -0
  345. package/{skills → library/skills}/git/resolve-merge-conflicts/SKILL.md +1 -1
  346. package/{skills → library/skills}/git/resolve-merge-conflicts/evals.md +1 -1
  347. package/library/skills/git/resolve-merge-conflicts/plugin.json +23 -0
  348. package/{skills → library/skills}/git/ship/SKILL.md +1 -1
  349. package/library/skills/git/ship/plugin.json +23 -0
  350. package/{skills → library/skills}/git/worktree-create/SKILL.md +1 -1
  351. package/library/skills/git/worktree-create/plugin.json +23 -0
  352. package/{skills → library/skills}/git/worktree-merge/SKILL.md +1 -1
  353. package/library/skills/git/worktree-merge/plugin.json +23 -0
  354. package/{skills → library/skills}/meta/clio-coder-dev/SKILL.md +1 -1
  355. package/{skills → library/skills}/meta/clio-coder-dev/evals.md +1 -1
  356. package/library/skills/meta/clio-coder-dev/plugin.json +23 -0
  357. package/{skills → library/skills}/meta/clio-coder-test/SKILL.md +1 -1
  358. package/{skills → library/skills}/meta/clio-coder-test/evals.md +1 -1
  359. package/library/skills/meta/clio-coder-test/plugin.json +23 -0
  360. package/{skills → library/skills}/meta/credentials/SKILL.md +1 -1
  361. package/{skills → library/skills}/meta/credentials/evals.md +1 -1
  362. package/library/skills/meta/credentials/plugin.json +23 -0
  363. package/library/skills/meta/find-skills/SKILL.md +85 -0
  364. package/library/skills/meta/find-skills/evals.md +65 -0
  365. package/library/skills/meta/find-skills/plugin.json +23 -0
  366. package/{skills → library/skills}/meta/herdr/SKILL.md +1 -1
  367. package/{skills → library/skills}/meta/herdr/evals.md +1 -1
  368. package/library/skills/meta/herdr/plugin.json +23 -0
  369. package/{skills → library/skills}/meta/skill-craft/SKILL.md +23 -9
  370. package/{skills → library/skills}/meta/skill-craft/evals.md +11 -3
  371. package/library/skills/meta/skill-craft/plugin.json +23 -0
  372. package/{skills → library/skills}/planning/archify/SKILL.md +13 -13
  373. package/library/skills/planning/archify/plugin.json +23 -0
  374. package/{skills → library/skills}/planning/architecture/SKILL.md +1 -1
  375. package/{skills → library/skills}/planning/architecture/evals.md +1 -1
  376. package/library/skills/planning/architecture/plugin.json +23 -0
  377. package/{skills → library/skills}/planning/backlog/SKILL.md +1 -1
  378. package/{skills → library/skills}/planning/backlog/evals.md +1 -1
  379. package/library/skills/planning/backlog/plugin.json +23 -0
  380. package/{skills → library/skills}/planning/prd/SKILL.md +1 -1
  381. package/{skills → library/skills}/planning/prd/evals.md +1 -1
  382. package/library/skills/planning/prd/plugin.json +23 -0
  383. package/{skills → library/skills}/planning/product-intent/SKILL.md +1 -1
  384. package/{skills → library/skills}/planning/product-intent/evals.md +1 -1
  385. package/library/skills/planning/product-intent/plugin.json +23 -0
  386. package/{skills → library/skills}/planning/tech-spec/SKILL.md +1 -1
  387. package/{skills → library/skills}/planning/tech-spec/evals.md +1 -1
  388. package/library/skills/planning/tech-spec/plugin.json +23 -0
  389. package/{skills → library/skills}/registry.yaml +7 -7
  390. package/{skills → library/skills}/remote.yaml +1 -1
  391. package/{skills → library/skills}/research/arxiv-literature/SKILL.md +1 -1
  392. package/{skills → library/skills}/research/arxiv-literature/evals.md +1 -1
  393. package/library/skills/research/arxiv-literature/plugin.json +23 -0
  394. package/{skills → library/skills}/research/experiment-protocol/SKILL.md +1 -1
  395. package/{skills → library/skills}/research/experiment-protocol/evals.md +1 -1
  396. package/library/skills/research/experiment-protocol/plugin.json +23 -0
  397. package/{skills → library/skills}/research/scientific-debugging/SKILL.md +1 -1
  398. package/{skills → library/skills}/research/scientific-debugging/evals.md +1 -1
  399. package/library/skills/research/scientific-debugging/plugin.json +23 -0
  400. package/{skills → library/skills}/research/scientific-modernization/SKILL.md +1 -1
  401. package/{skills → library/skills}/research/scientific-modernization/evals.md +1 -1
  402. package/library/skills/research/scientific-modernization/plugin.json +23 -0
  403. package/{skills → library/skills}/skill-marketplace.json +37 -37
  404. package/{skills → library/skills}/workflow/cut-it/SKILL.md +1 -1
  405. package/{skills → library/skills}/workflow/cut-it/evals.md +1 -1
  406. package/library/skills/workflow/cut-it/plugin.json +23 -0
  407. package/{skills → library/skills}/workflow/design-council/SKILL.md +1 -1
  408. package/{skills → library/skills}/workflow/design-council/evals.md +1 -1
  409. package/library/skills/workflow/design-council/plugin.json +23 -0
  410. package/{skills → library/skills}/workflow/grill-me/SKILL.md +1 -1
  411. package/{skills → library/skills}/workflow/grill-me/evals.md +1 -1
  412. package/library/skills/workflow/grill-me/plugin.json +23 -0
  413. package/{skills → library/skills}/workflow/workflow-distiller/SKILL.md +14 -11
  414. package/{skills → library/skills}/workflow/workflow-distiller/evals.md +14 -6
  415. package/library/skills/workflow/workflow-distiller/plugin.json +23 -0
  416. package/package.json +12 -5
  417. package/src/cli/agents.ts +1 -1
  418. package/src/cli/config-inspect.ts +1 -1
  419. package/src/cli/configure.ts +2 -2
  420. package/src/cli/eval.ts +40 -6
  421. package/src/cli/extensions.ts +74 -8
  422. package/src/cli/fleet-preflight.ts +2 -0
  423. package/src/cli/fleet.ts +2 -0
  424. package/src/cli/index.ts +1 -3
  425. package/src/cli/interop-inspect.ts +61 -33
  426. package/src/cli/interop.ts +79 -9
  427. package/src/cli/library-import.ts +139 -0
  428. package/src/cli/library.ts +418 -120
  429. package/src/cli/run.ts +26 -9
  430. package/src/cli/skills-eval.ts +43 -6
  431. package/src/cli/skills-inventory.ts +6 -2
  432. package/src/cli/skills.ts +44 -491
  433. package/src/core/bus-events.ts +5 -0
  434. package/src/core/defaults.ts +1 -1
  435. package/src/core/recent-models.ts +2 -2
  436. package/src/core/session-routing.ts +3 -3
  437. package/src/core/state-file-lock.ts +1 -1
  438. package/src/core/tool-names.ts +5 -0
  439. package/src/domains/agents/extension.ts +42 -6
  440. package/src/domains/agents/fleet-commands.ts +92 -1
  441. package/src/domains/agents/fleet-contract.ts +87 -19
  442. package/src/domains/agents/recipe.ts +5 -4
  443. package/src/domains/agents/registry.ts +80 -24
  444. package/src/domains/config/keybindings.ts +155 -95
  445. package/src/domains/context/worker/contract.ts +91 -0
  446. package/src/domains/context/worker/pressure.ts +120 -0
  447. package/src/domains/context/worker/recall.ts +62 -0
  448. package/src/domains/context/worker/select.ts +164 -0
  449. package/src/domains/context/worker/snapshot.ts +35 -0
  450. package/src/domains/context/worker/store.ts +16 -0
  451. package/src/domains/context/working-set/replay/synthetic.ts +2 -1
  452. package/src/domains/dispatch/active-route-planner.ts +2 -0
  453. package/src/domains/dispatch/backoff.ts +1 -0
  454. package/src/domains/dispatch/code-step.ts +12 -2
  455. package/src/domains/dispatch/contract.ts +3 -0
  456. package/src/domains/dispatch/execution-plan.ts +2 -0
  457. package/src/domains/dispatch/extension.ts +109 -27
  458. package/src/domains/dispatch/fleet-plan.ts +10 -0
  459. package/src/domains/dispatch/fleet-run.ts +1 -0
  460. package/src/domains/dispatch/orphan-recovery.ts +1 -0
  461. package/src/domains/dispatch/receipt-integrity.ts +4 -0
  462. package/src/domains/dispatch/state.ts +1 -0
  463. package/src/domains/dispatch/types.ts +5 -0
  464. package/src/domains/dispatch/validation.ts +12 -0
  465. package/src/domains/dispatch/workspace-checkpoint.ts +1 -1
  466. package/src/domains/evidence/failure-attribution.ts +1 -0
  467. package/src/domains/evidence/trust-status.ts +22 -3
  468. package/src/domains/extensions/command-schema.ts +145 -0
  469. package/src/domains/extensions/command-tools.ts +15 -0
  470. package/src/domains/extensions/compatibility.ts +7 -0
  471. package/src/domains/extensions/contract.ts +0 -4
  472. package/src/domains/extensions/discovery.ts +69 -205
  473. package/src/domains/extensions/extension.ts +0 -4
  474. package/src/domains/extensions/index.ts +1 -5
  475. package/src/domains/extensions/manager.ts +1 -6
  476. package/src/domains/extensions/operator-commands.ts +29 -0
  477. package/src/domains/extensions/operator-runtime.ts +483 -0
  478. package/src/domains/extensions/public-api.ts +53 -0
  479. package/src/domains/extensions/runtime-child.mjs +114 -0
  480. package/src/domains/extensions/runtime-process.ts +306 -0
  481. package/src/domains/extensions/runtime-schema.ts +146 -0
  482. package/src/domains/extensions/{resources.ts → snapshot-access.ts} +1 -17
  483. package/src/domains/extensions/snapshot.ts +4 -32
  484. package/src/domains/extensions/state.ts +5 -83
  485. package/src/domains/extensions/types.ts +33 -34
  486. package/src/domains/interop/adopt.ts +546 -0
  487. package/src/domains/interop/detect.ts +50 -12
  488. package/src/domains/interop/foreign.ts +554 -0
  489. package/src/domains/interop/import.ts +277 -0
  490. package/src/domains/interop/index.ts +24 -0
  491. package/src/domains/interop/install.ts +6 -0
  492. package/src/domains/interop/inventory.ts +351 -0
  493. package/src/domains/interop/projection.ts +360 -0
  494. package/src/domains/interop/registry.ts +106 -3
  495. package/src/domains/interop/types.ts +51 -0
  496. package/src/domains/lifecycle/migrations/index.ts +0 -2
  497. package/src/domains/lifecycle/naming-resources.ts +1 -1
  498. package/src/domains/middleware/marketplace-offer.ts +1 -1
  499. package/src/domains/mux/contract.ts +1 -1
  500. package/src/domains/plugins/catalog.ts +204 -0
  501. package/src/domains/plugins/contract.ts +24 -0
  502. package/src/domains/plugins/discovery.ts +316 -0
  503. package/src/domains/plugins/extension.ts +40 -0
  504. package/src/domains/plugins/index.ts +77 -0
  505. package/src/domains/plugins/integrity.ts +6 -0
  506. package/src/domains/plugins/manifest.ts +3 -0
  507. package/src/domains/plugins/resources.ts +102 -0
  508. package/src/domains/plugins/state.ts +753 -0
  509. package/src/domains/plugins/types.ts +217 -0
  510. package/src/domains/prompts/extension.ts +9 -2
  511. package/src/domains/prompts/fragments/operating/skills.md +10 -10
  512. package/src/domains/resources/common-loader.ts +9 -6
  513. package/src/domains/resources/index.ts +67 -0
  514. package/src/domains/resources/library-actions.ts +836 -0
  515. package/src/domains/resources/library-evals.ts +38 -0
  516. package/src/domains/resources/library-inventory.ts +1048 -0
  517. package/src/domains/resources/library-types.ts +50 -0
  518. package/src/domains/resources/library-validation.ts +634 -0
  519. package/src/domains/resources/library.ts +437 -156
  520. package/src/domains/resources/package-references.ts +66 -0
  521. package/src/domains/resources/prompts/loader.ts +75 -41
  522. package/src/domains/resources/skills/install.ts +2 -2
  523. package/src/domains/resources/skills/loader.ts +77 -22
  524. package/src/domains/resources/skills/marketplace.ts +48 -57
  525. package/src/domains/resources/skills/promotion.ts +2 -2
  526. package/src/domains/resources/skills/provenance-pin.ts +17 -4
  527. package/src/domains/safety/action-classifier.ts +2 -2
  528. package/src/domains/safety/default-path-policy.ts +3 -1
  529. package/src/domains/safety/policy-engine.ts +1 -1
  530. package/src/domains/safety/protected-artifacts.ts +21 -5
  531. package/src/domains/safety/skill-authority.ts +5 -2
  532. package/src/domains/share/archive.ts +1 -1
  533. package/src/engine/apis/openai-completions.ts +52 -2
  534. package/src/engine/notices/pi-tui-LICENSE +21 -0
  535. package/src/engine/tui.ts +3 -0
  536. package/src/engine/worker-runtime.ts +58 -14
  537. package/src/engine/worker-tools.ts +5 -0
  538. package/src/entry/orchestrator.ts +26 -5
  539. package/src/entry/plugin-reload.ts +18 -0
  540. package/src/interactive/application-controller.ts +67 -21
  541. package/src/interactive/chat-loop.ts +32 -5
  542. package/src/interactive/chat-panel.ts +5 -1
  543. package/src/interactive/clio-editor.ts +53 -21
  544. package/src/interactive/command-output.ts +56 -1
  545. package/src/interactive/editor-submit.ts +65 -28
  546. package/src/interactive/fleet-run-preview.ts +2 -0
  547. package/src/interactive/follow-up-queue-panel.ts +3 -3
  548. package/src/interactive/footer/dashboard.ts +4 -1
  549. package/src/interactive/footer/notifications.ts +2 -2
  550. package/src/interactive/footer/widgets.ts +2 -2
  551. package/src/interactive/interactive-application.ts +209 -21
  552. package/src/interactive/interactive-input-runtime.ts +254 -7
  553. package/src/interactive/interactive-presentation.ts +41 -12
  554. package/src/interactive/interactive-slash-runtime.ts +37 -8
  555. package/src/interactive/keybinding-manager.ts +156 -79
  556. package/src/interactive/keyboard-owner.ts +37 -0
  557. package/src/interactive/leader-key.ts +49 -102
  558. package/src/interactive/leader-menu.ts +45 -0
  559. package/src/interactive/overlay-ask-user-lifecycle.ts +9 -1
  560. package/src/interactive/overlay-frame.ts +15 -0
  561. package/src/interactive/overlay-key-routing.ts +46 -47
  562. package/src/interactive/overlay-lifecycle.ts +30 -15
  563. package/src/interactive/overlay-resource-openers.ts +56 -46
  564. package/src/interactive/overlays/ask-user.ts +630 -556
  565. package/src/interactive/overlays/extension-panel.ts +70 -0
  566. package/src/interactive/overlays/extensions.ts +28 -5
  567. package/src/interactive/overlays/fleet-run-approval.ts +7 -3
  568. package/src/interactive/overlays/help-reference.ts +89 -40
  569. package/src/interactive/overlays/interop.ts +122 -3
  570. package/src/interactive/overlays/keybinding-detail.ts +2 -2
  571. package/src/interactive/overlays/library-lifecycle.ts +90 -0
  572. package/src/interactive/overlays/library-model.ts +574 -0
  573. package/src/interactive/overlays/library-review.ts +557 -0
  574. package/src/interactive/overlays/library-tabs.ts +3 -15
  575. package/src/interactive/overlays/library.ts +602 -0
  576. package/src/interactive/overlays/list-overlay.ts +218 -39
  577. package/src/interactive/overlays/model-selector.ts +28 -25
  578. package/src/interactive/overlays/session-selector.ts +9 -3
  579. package/src/interactive/overlays/settings.ts +25 -18
  580. package/src/interactive/overlays/tree-selector.ts +16 -11
  581. package/src/interactive/permission-hint.ts +13 -0
  582. package/src/interactive/permission-overlay.ts +77 -28
  583. package/src/interactive/prompt-source-label.ts +21 -0
  584. package/src/interactive/renderers/reference-card.ts +35 -0
  585. package/src/interactive/renderers/worker-entry.ts +35 -3
  586. package/src/interactive/slash-autocomplete.ts +99 -1
  587. package/src/interactive/slash-commands.ts +390 -67
  588. package/src/interactive/slash-spec.ts +0 -1
  589. package/src/interactive/terminal-lease.ts +44 -12
  590. package/src/interactive/turn-queues.ts +8 -7
  591. package/src/interactive/turn-runtime.ts +1 -1
  592. package/src/interactive/view/view-overlay.ts +19 -14
  593. package/src/interactive/welcome-dashboard.ts +525 -408
  594. package/src/tools/bootstrap.ts +8 -0
  595. package/src/tools/builtin-tool-catalog.ts +7 -2
  596. package/src/tools/context/index.ts +58 -5
  597. package/src/tools/context/library.ts +465 -0
  598. package/src/tools/context/surface.ts +20 -6
  599. package/src/tools/core-bootstrap.ts +3 -0
  600. package/src/tools/dispatch-admission.ts +24 -1
  601. package/src/tools/dispatch-arguments.ts +8 -0
  602. package/src/tools/dispatch-plan.ts +32 -0
  603. package/src/tools/dispatch-schema.ts +31 -1
  604. package/src/tools/dispatch-types.ts +3 -0
  605. package/src/tools/dispatch.ts +1 -1
  606. package/src/tools/harness-extensions.ts +169 -0
  607. package/src/tools/observation.ts +4 -0
  608. package/src/tools/policy.ts +7 -1
  609. package/src/tools/registry.ts +19 -1
  610. package/src/tools/worker-evidence.ts +5 -0
  611. package/src/worker/context-seed.ts +192 -0
  612. package/src/worker/entry.ts +1 -0
  613. package/src/worker/spec-contract.ts +8 -1
  614. package/dist/chunk-3UW3KU4A.js +0 -21
  615. package/dist/chunk-536HXRFE.js +0 -1257
  616. package/dist/chunk-B3MOMLJ4.js +0 -433
  617. package/dist/chunk-CXQ37WJH.js +0 -45
  618. package/dist/chunk-KTFSFCVN.js +0 -46
  619. package/dist/chunk-QCOV5DFY.js +0 -911
  620. package/dist/chunk-QRFXEO6Y.js +0 -17
  621. package/dist/chunk-VAHLPXPY.js +0 -399
  622. package/dist/interop-RVCAYECG.js +0 -115
  623. package/dist/library-CTKZA7K3.js +0 -226
  624. package/dist/skills-OXFEAWMT.js +0 -510
  625. package/skills/README.md +0 -418
  626. package/skills/meta/find-skills/SKILL.md +0 -78
  627. package/skills/meta/find-skills/evals.md +0 -47
  628. package/src/domains/extensions/resource-path.ts +0 -27
  629. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +0 -27
  630. package/src/interactive/overlays/agents.ts +0 -70
  631. package/src/interactive/overlays/library-install-confirm.ts +0 -152
  632. package/src/interactive/overlays/prompts.ts +0 -89
  633. package/src/interactive/overlays/skills-hub.ts +0 -615
  634. /package/{skills → library/skills}/coding/ast-grep/references/rule_reference.md +0 -0
  635. /package/{skills → library/skills}/coding/prototype/references/LOGIC.md +0 -0
  636. /package/{skills → library/skills}/coding/prototype/references/UI.md +0 -0
  637. /package/{skills → library/skills}/coding/tdd/references/mocking.md +0 -0
  638. /package/{skills → library/skills}/coding/tdd/references/tests.md +0 -0
  639. /package/{skills → library/skills}/context/context-handoff/scripts/new-handoff.sh +0 -0
  640. /package/{skills → library/skills}/git/branch-closeout/evals.md +0 -0
  641. /package/{skills → library/skills}/git/branch-closeout/references/closeout-checklist.md +0 -0
  642. /package/{skills → library/skills}/git/file-ticket/assets/issue-template.md +0 -0
  643. /package/{skills → library/skills}/git/file-ticket/evals.md +0 -0
  644. /package/{skills → library/skills}/git/file-ticket/references/issue-discovery.md +0 -0
  645. /package/{skills → library/skills}/git/fix-issue/evals.md +0 -0
  646. /package/{skills → library/skills}/git/fix-issue/references/diagnosis-and-rca.md +0 -0
  647. /package/{skills → library/skills}/git/resolve-merge-conflicts/references/conflict-matrix.md +0 -0
  648. /package/{skills → library/skills}/git/ship/assets/pr-template.md +0 -0
  649. /package/{skills → library/skills}/git/ship/evals.md +0 -0
  650. /package/{skills → library/skills}/git/ship/references/remote-and-branch-policy.md +0 -0
  651. /package/{skills → library/skills}/git/worktree-create/evals.md +0 -0
  652. /package/{skills → library/skills}/git/worktree-create/references/worktree-setup.md +0 -0
  653. /package/{skills → library/skills}/git/worktree-merge/evals.md +0 -0
  654. /package/{skills → library/skills}/git/worktree-merge/references/merge-strategies.md +0 -0
  655. /package/{skills → library/skills}/meta/clio-coder-test/references/harness.md +0 -0
  656. /package/{skills → library/skills}/meta/clio-coder-test/references/test-map.md +0 -0
  657. /package/{skills → library/skills}/planning/archify/evals.md +0 -0
@@ -18,27 +18,27 @@ under pressure; git mechanics alone never justify a stage.
18
18
 
19
19
  | Stage | Skill | Output |
20
20
  | --- | --- | --- |
21
- | 1. File | [`file-ticket`](../../skills/git/file-ticket/) | A labeled GitHub issue with evidence and acceptance criteria |
22
- | 2. Fix | [`fix-issue`](../../skills/git/fix-issue/) | An uncommitted, verified change where failing tests preceded the fix, self-reviewed against the issue's acceptance criteria |
23
- | 3. Ship | [`ship`](../../skills/git/ship/) | An atomic conventional commit referencing the issue (`fixes #N`); contributors push it to their fork and open a PR, while maintainer work stays local for gated integration; merge is a human decision |
21
+ | 1. File | [`file-ticket`](../../library/skills/git/file-ticket/) | A labeled GitHub issue with evidence and acceptance criteria |
22
+ | 2. Fix | [`fix-issue`](../../library/skills/git/fix-issue/) | An uncommitted, verified change where failing tests preceded the fix, self-reviewed against the issue's acceptance criteria |
23
+ | 3. Ship | [`ship`](../../library/skills/git/ship/) | An atomic conventional commit referencing the issue (`fixes #N`); contributors push it to their fork and open a PR, while maintainer work stays local for gated integration; merge is a human decision |
24
24
 
25
25
  Releases follow [release-cut-checklist.md](release-cut-checklist.md) as a
26
26
  human-gated checklist, not a skill. Worktrees
27
- ([`worktree-create`](../../skills/git/worktree-create/),
28
- [`worktree-merge`](../../skills/git/worktree-merge/)),
29
- [`branch-closeout`](../../skills/git/branch-closeout/),
30
- [`resolve-merge-conflicts`](../../skills/git/resolve-merge-conflicts/), and
31
- [`tdd`](../../skills/coding/tdd/) are à-la-carte tools reached for when the
27
+ ([`worktree-create`](../../library/skills/git/worktree-create/),
28
+ [`worktree-merge`](../../library/skills/git/worktree-merge/)),
29
+ [`branch-closeout`](../../library/skills/git/branch-closeout/),
30
+ [`resolve-merge-conflicts`](../../library/skills/git/resolve-merge-conflicts/), and
31
+ [`tdd`](../../library/skills/coding/tdd/) are à-la-carte tools reached for when the
32
32
  situation calls for them, not stages every change passes through. An RCA
33
33
  written as the closing comment on the issue (`rca` label) is an artifact of
34
34
  hard bugs, not a mandatory toll booth. Batch ticket creation from a PRD
35
- bypasses stage 1 and uses [`backlog`](../../skills/planning/backlog/)
35
+ bypasses stage 1 and uses [`backlog`](../../library/skills/planning/backlog/)
36
36
  instead; everything downstream is identical.
37
37
 
38
38
  ## Closeout
39
39
 
40
40
  A merged PR is not operationally finished until its local scaffolding is
41
- closed. The reusable [`branch-closeout`](../../skills/git/branch-closeout/) skill automates this verification and teardown safely. After the human merge decision:
41
+ closed. The reusable [`branch-closeout`](../../library/skills/git/branch-closeout/) skill automates this verification and teardown safely. After the human merge decision:
42
42
 
43
43
  1. Fetch and prune, confirm the PR's merged state, and identify the resulting
44
44
  commit on `origin/main`. Direct ancestry proves an ordinary merge; a squash
@@ -142,13 +142,13 @@ or bumped; the milestone closes when the tag is published.
142
142
 
143
143
  ## Dogfooding setup
144
144
 
145
- The marketplace copy under `skills/git/` is the committed source of truth,
146
- pinned in `skills/registry.yaml` by `pnpm run skills:pin`. Runtime roots are
145
+ The marketplace copy under `library/skills/git/` is the committed source of truth,
146
+ pinned in `library/skills/registry.yaml` by `pnpm run skills:pin`. Runtime roots are
147
147
  gitignored, so each developer installs locally:
148
148
 
149
149
  ```bash
150
- cp -r skills/git/file-ticket .clio-coder/skills/ # Clio Coder
151
- cp -r skills/git/file-ticket .claude/skills/ # Claude Code
150
+ cp -r library/skills/git/file-ticket .clio-coder/skills/ # Clio Coder
151
+ cp -r library/skills/git/file-ticket .claude/skills/ # Claude Code
152
152
  ```
153
153
 
154
154
  The other pipeline skills are model-invoked from the marketplace catalog the
@@ -12,7 +12,7 @@ treated as current operator guidance.
12
12
  ## Headline
13
13
 
14
14
  - Markdown pages audited: **51**.
15
- - Dedicated HTML blueprints now present: **51**.
15
+ - Dedicated HTML blueprints present after that audit: **51**.
16
16
  - Pages without a blueprint: **0**. Every Markdown page has one visual
17
17
  counterpart, so there are no exception reasons to record.
18
18
  - Pages with one or more source disagreements at `ff56ea3e`: **42**.
@@ -98,3 +98,30 @@ The source-alignment pass corrected all findings across the 42 affected
98
98
  Markdown pages. The table preserves what the audit found at `ff56ea3e`; it does
99
99
  not describe outstanding Markdown debt. Every HTML blueprint now renders the
100
100
  complete corrected counterpart and identifies its Markdown source explicitly.
101
+
102
+ ## Clio Coder 0.4.7 documentation refresh
103
+
104
+ The 0.4.7 pass was a source-alignment pass, not a re-measurement of the 0.4.2
105
+ audit above, whose table stands as the historical record.
106
+
107
+ Pages carrying new or rewritten sections in this pass: `README.md`,
108
+ `architecture/context-engine.md`, `architecture/library.md`,
109
+ `architecture/model-catalog.md`, `architecture/pi-boundary.md`,
110
+ `architecture/safety-model.md`, `architecture/session-lifecycle.md`,
111
+ `architecture/tui-design.md`, `architecture/worker-context.md`,
112
+ `guide/commands-and-modes.md`, `guide/configuration-reference.md`,
113
+ `guide/extensions-and-sharing.md`, `guide/harness-extensions.md`,
114
+ `guide/interop.md`, `guide/plugins.md`, `guide/resource-library.md`,
115
+ `guide/skills-marketplace.md`, and `process/scientific-validation.md`, each with
116
+ its paired blueprint.
117
+
118
+ Two standing rules this pass reaffirmed. Every asserted behavior is anchored to
119
+ the function or contract that implements it, named inline, rather than inferred
120
+ from a UI label or a neighbouring paragraph. And a value that appears only in a
121
+ test fixture is not a product default: the compiled defaults in
122
+ `src/core/defaults.ts` are the authority for what ships unset.
123
+
124
+ Per-run verification evidence for the refresh lives with the maintenance records
125
+ for that sprint, not in this page. This page tracks documentation coverage, and
126
+ run logs age out of usefulness faster than the docs they checked.
127
+
@@ -46,7 +46,8 @@ Classify claims clearly:
46
46
  | [configuration-reference.md](../guide/configuration-reference.md) | `src/core/defaults.ts`, `src/cli/**`, `src/tools/**`, `src/domains/agents/recipe-schema.ts`, `src/domains/providers/models/local-models/**` | Audited inventory of every settings key, environment variable, CLI flag, project-file key, frontmatter key, tool argument, and model tag with defaults and precedence. |
47
47
  | [safety-model.md](../architecture/safety-model.md) | `src/domains/safety/**`, `src/tools/registry.ts`, `src/tools/policy.ts`, `src/tools/verify/**`, `src/entry/orchestrator.ts`, `src/domains/dispatch/write-boundary.ts` | Operating posture, `resolveEffectiveAutonomy` / `resolveBaselineAutonomy`, detect-and-rollback write boundaries, approval axes, damage control, typed validation. |
48
48
  | [prompt-envelope-and-tools.md](../architecture/prompt-envelope-and-tools.md) | `src/domains/prompts/compiler.ts`, `src/interactive/chat-loop.ts`, `src/core/tool-names.ts`, `src/tools/registry.ts`, `src/tools/observation.ts`, `src/tools/agent-tools.ts` | Prompt envelope reuse, canonical tool delivery via single `agent-tools.ts` adapter, seven-plane tool surface, observation envelope, strict `ToolName` keying. |
49
- | [tool-usage.md](../guide/tool-usage.md) | `src/tools/agent-tools.ts`, `src/tools/registry.ts`, `src/tools/observation.ts` | In-depth reference for all 21 canonical tools, including conditional registration, parameters, typical payloads, normalizers, and error examples. |
49
+ | [tool-usage.md](../guide/tool-usage.md) | `src/tools/agent-tools.ts`, `src/tools/registry.ts`, `src/tools/observation.ts` | In-depth reference for all 24 canonical tools, including conditional registration, parameters, typical payloads, normalizers, and error examples. |
50
+ | [panes-and-files.md](../guide/panes-and-files.md) | `src/interactive/panes-runtime.ts`, `src/interactive/yazi-bridge.ts`, `src/domains/mux/operations.ts`, `src/domains/mux/yazi/theme.ts`, `src/cli/panes.ts` | Operator path to panes and the files pane: install, settings, doctor rows, `/files` and `Alt+E`, presets, what `/quit` closes, theme boundary, troubleshooting. |
50
51
  | [provider-adapter-cookbook.md](../architecture/provider-adapter-cookbook.md) | `src/domains/providers/registry.ts`, `src/domains/providers/types/runtime-descriptor.ts` | RuntimeDescriptor, probe(), probeReasoning(), synthesizeModel(), thinking mechanisms. |
51
52
  | [pi-boundary.md](../architecture/pi-boundary.md) | `src/engine/**`, `src/tools/truncate.ts`, `tests/boundaries/check-boundaries.ts` | Which Pi SDK capabilities Clio delegates to, which Clio-specific adapters remain, and the boundary tests that keep the split explicit. |
52
53
  | [alcf-provider.md](../architecture/alcf-provider.md) | `src/domains/providers/runtimes/cloud/alcf.ts`, `src/engine/alcf-oauth.ts` | Globus PKCE OAuth, openAuthStorage(), Sophia vLLM, Metis API, chatTemplateKwargsUnsupported. |
@@ -55,6 +56,7 @@ Classify claims clearly:
55
56
  | [fleet-dispatch.md](../guide/fleet-dispatch.md) | `src/domains/dispatch/**` | Multi-node SSH dispatch: process-safe admission, capacity leases, fleet contracts v1 through v5, v4 write boundaries, v5 plan and gate steps, bounded check/repair loops (`loop_bound_exhausted`), deterministic code steps, attestation, and receipts v20. |
56
57
  | [capacity-and-scheduling.md](../architecture/capacity-and-scheduling.md) | `src/domains/scheduling/**`, `src/domains/dispatch/capacity-lease.ts`, `src/domains/dispatch/reservation-store.ts` | Multi-process capacity leases (`dispatch-admission.json`), heartbeat TTLs, cross-process transaction locks (`dispatch-admission.json.lock`), and cluster drain controls. |
57
58
  | [worker-dispatch-mechanics.md](../architecture/worker-dispatch-mechanics.md) | `src/worker/**` | NDJSON parent-child socket protocols, control/bulk lane demuxing, watchdog timers, worker attestation (13 protocol fields), permission parking, exit codes. |
59
+ | [worker-context.md](../architecture/worker-context.md) | `src/worker/spec-contract.ts`, `src/domains/dispatch/**`, `src/worker/**` | Worker context inheritance: isolated, fork, and splice context modes for native workers, historical message selection, and token limits. |
58
60
  | [fleet-demo-runbook.md](fleet-demo-runbook.md) | `src/domains/dispatch/**` | Multi-node fleet demo: SSH setup, C++ build/repair workflow, reviewer gates, and receipt verification v20. |
59
61
  | [session-lifecycle.md](../architecture/session-lifecycle.md) | `src/engine/session.ts`, `src/domains/session/**` | Session lifecycle, on-disk ledger format v4 (`current.jsonl`), tree branching (`tree.json`), active-path lineage selection, `/fork`, `/resume`, checkpoints, and write-ahead protected-artifact journal. |
60
62
  | [acp.md](../architecture/acp.md) | `src/engine/acp/**`, `src/cli/acp.ts` | Agent Client Protocol (ACP) server over stdio, tool mediation, non-stall permission handling, timeout bounds, and error taxonomy. |
@@ -65,19 +67,25 @@ Classify claims clearly:
65
67
  | [documentation-coverage.md](documentation-coverage.md) | `src/**` | Complete source-to-documentation mapping matrix and subsystem coverage status. |
66
68
  | [tui-design.md](../architecture/tui-design.md) | `src/interactive/theme/tokens.ts`, `src/interactive/theme/glyphs.ts` | TUI color system, glyph vocabulary (`contextReserve`), structural layouts, state choreography, code ink. |
67
69
  | [installation-and-lifecycle.md](../guide/installation-and-lifecycle.md) | `src/cli/paths.ts`, `src/cli/doctor.ts`, `src/cli/uninstall.ts`, `src/cli/removal.ts` | Installation, upgrade, reset, uninstallation, launcher ownership and what `--remove-binary` will and will not remove, partial-failure behavior, configuration folders (`credentials.yaml` `0o600`), and permissions. |
68
- | [release-cut-checklist.md](../history/release-cut-checklist.md) | `scripts/check-release.mjs`, `tests/smoke/installed-package.test.ts`, `.github/workflows/`, `package.json` | Historical v0.4.1 release procedure retained as evidence; future releases must draft and verify their own checklist. |
69
- | [development-pipeline.md](development-pipeline.md) | `skills/git/**`, `.github/**`, `scripts/check-release.mjs`, `package.json` | Issue-to-PR development lifecycle, validation, release inheritance, and the human merge boundary. |
70
+ | [release-cut-checklist.md](release-cut-checklist.md) | `scripts/check-release.mjs`, `tests/smoke/installed-package.test.ts`, `.github/workflows/`, `package.json` | Standard release procedure: local candidate preparation, release gate verification, fast-forward landing on main, annotated tag publication, and npm publish. |
71
+ | [release-cut-checklist.md (v0.4.1)](../history/release-cut-checklist.md) | `scripts/check-release.mjs`, `tests/smoke/installed-package.test.ts`, `.github/workflows/`, `package.json` | Historical v0.4.1 release procedure retained as evidence; future releases must draft and verify their own checklist. |
72
+ | [development-pipeline.md](development-pipeline.md) | `library/skills/git/**`, `.github/**`, `scripts/check-release.mjs`, `package.json` | Issue-to-PR development lifecycle, validation, release inheritance, and the human merge boundary. |
70
73
  | [git-commit-provenance.md](git-commit-provenance.md) | `src/core/commit-attribution.ts`, `src/core/git-commit-attribution.ts`, `src/domains/dispatch/fleet-commit-attribution.ts` | Evidence-aware commit roles, trailers, managed hook chaining, and receipt v20 attribution. |
71
74
  | [observability.md](../architecture/observability.md) | `src/domains/observability/**`, `src/interactive/view/**`, `src/domains/dispatch/**`, `src/core/bus-events.ts` | `/view` artifact browsing, receipt verification, worker diagnostics, event routing, and cost snapshots. |
72
75
  | [performance-methodology.md](performance-methodology.md) | `src/interactive/render-trace.ts`, `src/interactive/**`, `tests/contracts/rendering-invariants.test.ts`, `tests/smoke/real-binary-boot.test.ts` | Reproducible terminal and model-path performance endpoints, trace interpretation, measurement controls, and reporting rules. |
73
76
  | [evidence-and-memory.md](../architecture/evidence-and-memory.md) | `src/domains/evidence/**`, `src/domains/memory/**`, `src/cli/evidence.ts`, `src/cli/memory.ts` | Evidence corpus layout, findings, memory lifecycle and prompt injection. |
74
77
  | [proactive-memory.md](../guide/proactive-memory.md) | `src/domains/memory/**` | Proactive task memory architecture, session task bank, intervention rules, and handoff carrying. |
75
- | [trace-store.md](../architecture/trace-store.md) | `src/cli/trace.ts`, `src/domains/observability/trace-store.ts` | WAL SQLite trace mirror database schema, rowid cursor queries, rebuildability, and eight `clio-coder trace` subcommands: `runs`, `phases`, `tail`, `procs`, `inspect`, `prune`, read-only `sql`, and `ui`. |
78
+ | [trace-store.md](../architecture/trace-store.md) | `src/cli/trace.ts`, `src/domains/observability/trace-store.ts` | WAL SQLite trace mirror database schema, rowid cursor queries, rebuildability, and nine `clio-coder trace` subcommands: `runs`, `phases`, `tail`, `procs`, `code-steps`, `inspect`, `prune`, read-only `sql`, and `ui`. |
76
79
  | [eval-runner.md](eval-runner.md) | `src/domains/eval/**`, `src/cli/eval.ts` | Local YAML eval tasks, dual token accountings (`tokens.*` wire vs `receiptUsage.*` journal), fail-closed null totals, EvalArtifactV4 format, `verify.measure` task outcome recording. |
77
80
  | [evals-internal.md](evals-internal.md) | `src/domains/eval/**`, `evals/**` | Private suite handling, measurement design, and the boundary between shipped reference inputs and external campaigns. |
78
81
  | [extensions-and-sharing.md](../guide/extensions-and-sharing.md) | `src/domains/extensions/**`, `src/domains/resources/**`, `src/domains/share/**`, `src/cli/extensions.ts`, `src/cli/share.ts` | Prompt, skill, agent, fleet, and reserved theme resources; extension manifests; portable share archives. |
82
+ | [library.md](../architecture/library.md) | `src/domains/plugins/**`, `src/domains/resources/library.ts`, `src/cli/library.ts` | Package kinds, catalog resolution, integrity, scope selection, and trust. |
79
83
  | [resource-library.md](../guide/resource-library.md) | `src/domains/resources/library.ts`, `src/cli/library.ts` | Catalog schemas, private and remote source policy, checksum pins, resource installation, and update checks. |
80
- | [skills-marketplace.md](../guide/skills-marketplace.md) | `src/interactive/overlays/skills-hub.ts`, `src/domains/resources/skills/marketplace.ts` | Skills Hub marketplace discovery through the install resolver, empty state, install actions, publishing flow. |
84
+ | [skills-marketplace.md](../guide/skills-marketplace.md) | `src/interactive/overlays/library.ts`, `src/interactive/overlays/library-tabs.ts`, `src/domains/resources/skills/marketplace.ts` | Skills marketplace discovery through library overlays, catalog inspection, install actions, publishing flow. |
85
+ | [plugins.md](../guide/plugins.md) | `src/domains/plugins/**`, `src/domains/resources/library.ts`, `src/cli/library.ts` | Portable domain bundles, library installation, enable/disable states, drift detection, pins, and package lifecycle. |
86
+ | [authoring-plugins.md](../guide/authoring-plugins.md) | `library/**`, `src/domains/plugins/**`, `src/domains/resources/library-validation.ts` | Plugin and package structure, root plugin.json manifests, resource mapping, validation, and authoring guidelines. |
87
+ | [harness-extensions.md](../guide/harness-extensions.md) | `src/domains/extensions/**`, `src/domains/plugins/**`, `src/interactive/**` | Harness extension lifecycle, command handlers, dynamic reload, and interaction with the Clio execution environment. |
88
+ | [interop.md](../guide/interop.md) | `src/cli/interop.ts`, `src/domains/interop/**`, `src/interactive/overlays/interop.ts` | External coding agent interoperability: host discovery, resource inspection, safe adoption of prompts and skills into the library. |
81
89
  | [model-catalog.md](../architecture/model-catalog.md) | `src/domains/providers/catalog.ts`, `src/domains/providers/models/**`, `src/domains/providers/probe/**`, `src/domains/providers/model-capabilities.ts` | Model catalog, live probes (`--offline` toggle), exact-id selector `probeCapabilitiesForModel`, field-note promotion. |
82
90
  | [middleware-and-components.md](../architecture/middleware-and-components.md) | `src/domains/components/**`, `src/domains/middleware/**`, `src/cli/components.ts` | Active component snapshots, phase-aware middleware hook budgets (`DEFAULT_MIDDLEWARE_HOOK_BUDGETS_MS`). |
83
91
  | [scientific-validation.md](scientific-validation.md) | `src/domains/safety/rigor.ts`, `src/domains/safety/finish-contract.ts` | Advisory validation-contract patterns for scientific artifacts and HPC assumptions. |
@@ -133,8 +141,8 @@ Clio Coder maintains two complementary documentation formats:
133
141
 
134
142
  Blueprint coverage is explicit rather than inferred from document style. The
135
143
  page-level audit lives in
136
- [`documentation-coverage.md`](documentation-coverage.md). All 51 Markdown pages
137
- have a dedicated blueprint. `docs/html/index.html` groups those counterparts by
144
+ [`documentation-coverage.md`](documentation-coverage.md). Every canonical Markdown page
145
+ has a dedicated blueprint. Recheck the complete inventory during each release cut. `docs/html/index.html` groups those counterparts by
138
146
  the same Guide, Architecture, Process, and History tree, while a source meta tag
139
147
  provides the one-to-one machine-readable mapping. Every mapping must remain
140
148
  unique, complete, and free of orphaned Markdown or HTML pages.
@@ -14,6 +14,9 @@ Source of truth: [src/domains/eval/](../../src/domains/eval/) and [src/cli/eval.
14
14
  The CLI commands under `clio-coder eval` support running, validating, reporting, comparing, and gating evaluation suites.
15
15
 
16
16
  ```bash
17
+ clio-coder eval validate --package <path|kind:name> [--eval <name>] [--user|--project]
18
+ clio-coder eval run --package <path|kind:name> [--eval <name>] [--user|--project] [--out <path>]
19
+ clio-coder eval skill <name|path> [--scenario <id>] [--json]
17
20
  clio-coder eval validate --suite <suite.yaml>
18
21
  clio-coder eval run --suite <suite.yaml> [--trials <n>] [--target <id>] [--model <id>] [--out <path>] [--clio-coder-entry <path>]
19
22
  clio-coder eval run --task-file <tasks.yaml> [--repeat <n>] [--out <path>] [--clio-coder-entry <path>]
@@ -24,8 +27,9 @@ clio-coder eval inventory --json
24
27
  ```
25
28
 
26
29
  ### Command Roles
27
- * **`validate`**: Validates the structure and constraints of a Suite v2 YAML file without executing it.
28
- * **`run`**: Runs a Suite v2 (via `--suite`) or a compatibility v1 task file (via `--task-file`). Outputs a text summary and writes an eval artifact under `<dataDir>/evals/` and evidence under `<dataDir>/evidence/eval-<evalId>/`.
30
+ * **`validate`**: Validates the structure and constraints of a Suite v2 YAML file (via `--suite`) or package evaluations (via `--package <path|kind:name> [--eval <name>]`) without executing them.
31
+ * **`run`**: Runs a Suite v2 (via `--suite`), a compatibility v1 task file (via `--task-file`), or a packaged evaluation (via `--package <path|kind:name> [--eval <name>]`). Outputs a text summary and writes an eval artifact under `<dataDir>/evals/` and evidence under `<dataDir>/evidence/eval-<evalId>/`.
32
+ * **`skill`**: Evaluates an individual skill directory or catalog entry against its baseline scenarios declared in `evals.md`.
29
33
  * **`report`**: Formats and prints a report from a saved `evalId`. Supports multiple `--format` outputs:
30
34
  * `text` (default): Human-readable stdout summary.
31
35
  * `json`: Raw JSON structure of the artifact.
@@ -41,7 +45,8 @@ Exit codes:
41
45
  | Command | Success | Failure |
42
46
  | --- | --- | --- |
43
47
  | `eval validate` | `0` when validation passes | `2` for validation issues |
44
- | `eval run` | `0` when all task repetitions pass | `1` when any task fails, `2` for invalid configs |
48
+ | `eval run` | `0` when all task repetitions pass | `1` when any task/gate fails (including package evals), `2` for invalid configs or load errors |
49
+ | `eval skill` | `0` when all scenarios pass | `1` for failures/regressions, `3` for unmeasured harness state or evidence errors, `2` for invalid arguments |
45
50
  | `eval report` | `0` when artifact loads | `1` if artifact cannot be read, `2` for invalid ID |
46
51
  | `eval compare` | `0` when both artifacts compare and the behavioral hard gate passes | `1` for a hard regression or unreadable artifact, `2` for invalid ID |
47
52
  | `eval gate` | `0` when correctness, safety, and hard threshold assertions pass | `1` for hard failures, unreadable inputs, and malformed threshold files; `2` for an invalid eval ID or usage error |
@@ -62,7 +62,7 @@ exit. This keeps diagnostic output from corrupting the temporary shell without
62
62
  changing the measured endpoints.
63
63
 
64
64
  ```bash
65
- CLIO_CODER_RENDER_TRACE=/tmp/clio-render.jsonl \
65
+ CLIO_CODER_RENDER_TRACE=/tmp/clio-coder-render.jsonl \
66
66
  CLIO_CODER_TRACE_BOOT=1 \
67
67
  CLIO_CODER_INTERACTIVE=1 \
68
68
  node dist/cli/index.js
@@ -78,6 +78,10 @@ Run deterministic local checks on the candidate commit before requesting authori
78
78
  npm pack --dry-run
79
79
  ```
80
80
 
81
+ Confirm the complete `library/` tree and `.claude-plugin/marketplace.json`
82
+ accompany `dist/`, `src/`, and the documented runtime resources. The repository's
83
+ `.agents/skills/` symlinks are clone conveniences and are not tarball contents.
84
+
81
85
  5. Validate an installed tarball in a clean temporary directory:
82
86
 
83
87
  Create a temporary directory, pack the tarball, install it via npm, and verify
@@ -122,3 +122,26 @@ Clio Coder integrates scientific validation contracts directly into its safety m
122
122
  - **High-Rigor Gate Requirements**: Once the rigor is `high`, the finish gate is active. It engages on a settled `turn_end` only when the recent window contains successful workspace mutation evidence and no validation evidence or `limitation` receipt. The window is entries since the last user message, capped at 80 entries:
123
123
  - Clio issues a `request_continuation` middleware effect to keep the session running.
124
124
  - Clio injects a dynamic warning reminder (`HIGH_RIGOR_REVALIDATION_MESSAGE`) instructing the agent to run a verification command or to call `limitation` before it can conclude the turn.
125
+
126
+ ## Verification boundaries and limitation receipts
127
+
128
+ File readback establishes artifact inspection, not executed scientific validation. When an agent or worker modifies files but cannot execute the outstanding checks with its admitted tools and approved scope:
129
+
130
+ 1. **The generic `limitation` tool**:
131
+ - Clio provides the pure canonical `limitation` tool (`src/tools/limitation.ts`), recording a `limitation` tool_call and tool_result receipt in the session ledger.
132
+ - Arguments:
133
+ - `scope` (required string): What could not be verified, in one sentence.
134
+ - `reason` (required enum): One of `no-runner`, `blocked`, `out-of-scope`, `environment`, or `other`.
135
+ - `paths` (optional array of strings): Repository-relative file paths left unverified.
136
+ - A prose disclaimer or text summary in conversation is not a limitation receipt; only a successful `limitation` tool call registers a typed receipt in the session ledger.
137
+
138
+ 2. **Recipe instructions vs generic harness**:
139
+ - Bundled scientific recipes (such as Materio research agents in `library/plugins/materio`) explicitly instruct workers via `<clio_verification_boundary>` in their recipe bodies to call `limitation` when external checks cannot run. This boundary instruction is authored recipe content, not an unconditional harness envelope injected into every worker.
140
+
141
+ 3. **Finish gate enforcement**:
142
+ - At high rigor (such as when a valid `validation.yaml` contract is present), the finish gate monitors workspace mutations within the recent active turn window (up to 80 entries since the last user message).
143
+ - If mutating tool calls occurred in that window without executed validation evidence or a `limitation` receipt, `finishContractRegistration` (`src/domains/safety/finish-contract-registration.ts`) emits a `request_continuation` middleware effect accompanied by a reminder (`HIGH_RIGOR_REVALIDATION_MESSAGE`). At normal rigor, it emits an advisory reminder without blocking.
144
+ - The gate checks structural evidence presence; it does not grade the empirical correctness of scientific code. Runtime turn budgets, deadline limits, operator cancellation, and tool failures still apply.
145
+ - A limitation receipt never converts missing or failing checks into a pass; it formally records the limitation so callers and operators know the scientific result is incomplete.
146
+ - Verified by contracts `tests/contracts/materio-plugin.test.ts` and `tests/contracts/safety-policy-remediation.test.ts`.
147
+
@@ -24,7 +24,7 @@ if (!python) throw new Error("Pass an existing Python interpreter with NumPy; th
24
24
  const fixture = JSON.parse(readFileSync(new URL("./fixtures/scalar-decision.json", import.meta.url), "utf8"));
25
25
  const grader = fileURLToPath(new URL("./scalar-decision-grader.py", import.meta.url));
26
26
  const { restore } = await isolateClioEnv();
27
- const root = mkdtempSync(join(tmpdir(), "clio-scalar-decision-"));
27
+ const root = mkdtempSync(join(tmpdir(), "clio-coder-scalar-decision-"));
28
28
 
29
29
  function grade(source: string, value: string) {
30
30
  const policy = value === fixture.pythonPolicy ? "python-int" : value === fixture.numpyPolicy ? "numpy-integer" : null;
@@ -0,0 +1,67 @@
1
+ # Local scientific extensions
2
+
3
+ These installable examples use the harness extension lifecycle, separately from
4
+ library recipes. They require a Clio build containing operator runtime API v1.
5
+ The manifests retain the current package compatibility minimum, 0.4.7; use this
6
+ implementation or a later release that includes it (the original 0.4.7 release
7
+ predates the runtime field).
8
+
9
+ From the repository root:
10
+
11
+ ```bash
12
+ clio-coder extensions discover examples/extensions/lab-status --json
13
+ clio-coder extensions install examples/extensions/lab-status --project
14
+ clio-coder extensions run lab-status dashboard
15
+ clio-coder extensions run lab-status dashboard --json
16
+ ```
17
+
18
+ In Clio, reload through `/extensions reload`, then invoke
19
+ `/ext:lab-status:dashboard`. Core renders the panel, owns scrolling and Escape,
20
+ and displays the status with the extension's owner label. The default record is
21
+ `jobs.synthetic.json`: **SYNTHETIC FIXTURE**, two completed jobs and one running
22
+ job. These are deterministic demonstration records, not measured cluster facts.
23
+
24
+ Pass a local JSON record filename as the argument to inspect your own data:
25
+
26
+ ```bash
27
+ clio-coder extensions run lab-status dashboard -- /absolute/path/experiment.json
28
+ ```
29
+
30
+ The record has `experiment` and `jobs` fields. Each job supplies a string `id`,
31
+ positive integer `ranks`, `state` (`queued`, `running`, `completed`, `failed`) and
32
+ nonnegative finite `elapsedSeconds`. Set `synthetic: true` for simulated data.
33
+ Records without that marker are labeled local reported data, not independently
34
+ verified results. Files are regular local files up to 32 KiB and at most 100 jobs.
35
+ The example performs no SSH, scheduler query, submission, provider request or
36
+ credential access. Turn observations repeat the last explicit snapshot; invoke
37
+ the dashboard again to refresh the file. Runtime state resets on reload.
38
+
39
+ The separate measurement package keeps the existing model tool contract:
40
+
41
+ ```bash
42
+ clio-coder extensions install examples/extensions/measurements --project
43
+ ```
44
+
45
+ Start a new session. The admitted model tool is
46
+ `extension_measurements__summarize`, with input such as
47
+ `{"values":[1,2,3],"units":"seconds"}`. That input is a **synthetic deterministic
48
+ example**, with mean 2 and sample standard deviation 1. A one-value input returns
49
+ `null` for sample standard deviation. Numeric overflow errors instead of
50
+ reporting null or invented valid measurements. Execution still passes the tool
51
+ registry's safety, autonomy and approval rules. Native worker recipes must
52
+ explicitly admit the qualified tool. Installing a runtime never adds tools to
53
+ existing model schemas.
54
+
55
+ Update source, reinstall with `--force`, then reload operator runtimes at idle.
56
+ Disable and remove exact copies with `--project` or `--user`:
57
+
58
+ ```bash
59
+ clio-coder extensions disable lab-status --project
60
+ clio-coder extensions enable lab-status --project
61
+ clio-coder extensions remove lab-status --project
62
+ ```
63
+
64
+ Do not edit installed package bytes in place. Whole-tree digest drift revokes
65
+ calls; mixed tool/UI packages need a new session even when only UI bytes change.
66
+ Installed runtime code has your account's filesystem/network authority. A child
67
+ process gives bounded teardown and fresh module caches, not an OS sandbox.
@@ -0,0 +1,14 @@
1
+ {
2
+ "id": "lab-status",
3
+ "name": "Local experiment status",
4
+ "version": "1.0.0",
5
+ "description": "Inspect a local experiment record; default data is explicitly synthetic.",
6
+ "compatibility": { "clio": ">=0.4.7" },
7
+ "runtime": {
8
+ "api": 1,
9
+ "entrypoint": "extension.mjs",
10
+ "commands": [{ "name": "dashboard", "description": "Show synthetic jobs or a named local JSON experiment file." }],
11
+ "events": ["session_open", "turn_end"],
12
+ "ui": ["status", "panel"]
13
+ }
14
+ }
@@ -0,0 +1,68 @@
1
+ import { open } from "node:fs/promises";
2
+ import path from "node:path";
3
+
4
+ let lastStatus = { text: "Synthetic fixture available; invoke dashboard", tone: "neutral" };
5
+ async function readRecord(file) {
6
+ const handle = await open(file, "r");
7
+ try {
8
+ const info = await handle.stat();
9
+ if (!info.isFile() || info.size > 32768) throw new Error("Expected a regular local JSON record, at most 32 KiB");
10
+ const buffer = Buffer.alloc(32769);
11
+ const { bytesRead } = await handle.read(buffer, 0, buffer.length, 0);
12
+ if (bytesRead > 32768) throw new Error("Experiment record exceeds 32 KiB");
13
+ const data = JSON.parse(buffer.subarray(0, bytesRead).toString("utf8"));
14
+ if (
15
+ typeof data.experiment !== "string" ||
16
+ data.experiment.length > 120 ||
17
+ !Array.isArray(data.jobs) ||
18
+ data.jobs.length > 100
19
+ )
20
+ throw new Error("Invalid experiment record");
21
+ for (const job of data.jobs) {
22
+ if (
23
+ typeof job.id !== "string" ||
24
+ job.id.length > 80 ||
25
+ !["queued", "running", "completed", "failed"].includes(job.state) ||
26
+ !Number.isInteger(job.ranks) ||
27
+ job.ranks < 1 ||
28
+ !Number.isFinite(job.elapsedSeconds) ||
29
+ job.elapsedSeconds < 0
30
+ )
31
+ throw new Error("Invalid job record");
32
+ }
33
+ return data;
34
+ } finally {
35
+ await handle.close();
36
+ }
37
+ }
38
+ /** @param {import('@iowarp/clio-coder/extensions').ExtensionApi} api */
39
+ export default function extension(api) {
40
+ api.handle("dashboard", async (args, context) => {
41
+ const file = args.trim()
42
+ ? path.resolve(context.snapshot.workspace, args.trim())
43
+ : new URL("./jobs.synthetic.json", import.meta.url);
44
+ const data = await readRecord(file);
45
+ context.signal.throwIfAborted();
46
+ const label = data.synthetic === true ? "SYNTHETIC FIXTURE" : "LOCAL RECORD (reported, not independently verified)";
47
+ const completed = data.jobs.filter((job) => job.state === "completed").length;
48
+ lastStatus = { text: `${label}: ${completed}/${data.jobs.length} completed`, tone: "neutral" };
49
+ const rows = data.jobs.map((job) => [job.id, String(job.ranks), job.state, String(job.elapsedSeconds)]);
50
+ return {
51
+ text: `${label}\n${data.experiment}\n${completed}/${data.jobs.length} completed\n${rows.map((row) => row.join(" | ")).join("\n")}\nSource: ${file}`,
52
+ status: lastStatus,
53
+ panel: {
54
+ title: data.experiment,
55
+ sections: [
56
+ {
57
+ kind: "text",
58
+ text: `${label}\nSource: ${file}\nThis extension reads records only. It never submits or queries cluster jobs.`,
59
+ },
60
+ { kind: "metrics", items: [{ label: "Completed", value: `${completed}/${data.jobs.length}` }] },
61
+ { kind: "table", columns: ["Job", "MPI ranks", "State", "Elapsed s"], rows },
62
+ ],
63
+ },
64
+ };
65
+ });
66
+ api.on("session_open", () => ({ text: "", status: lastStatus }));
67
+ api.on("turn_end", () => ({ text: "", status: lastStatus }));
68
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "synthetic": true,
3
+ "experiment": "Synthetic stencil scaling fixture",
4
+ "jobs": [
5
+ { "id": "fixture-1", "ranks": 8, "state": "completed", "elapsedSeconds": 42 },
6
+ { "id": "fixture-2", "ranks": 16, "state": "completed", "elapsedSeconds": 24 },
7
+ { "id": "fixture-3", "ranks": 32, "state": "running", "elapsedSeconds": 9 }
8
+ ]
9
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "id": "measurements",
3
+ "name": "Measurement summary",
4
+ "version": "1.0.0",
5
+ "description": "Count, mean, min, max and sample standard deviation of supplied finite measurements.",
6
+ "compatibility": { "clio": ">=0.4.7" },
7
+ "capabilities": {
8
+ "tools": [
9
+ {
10
+ "name": "summarize",
11
+ "description": "Summarize supplied measurements without inventing physical units or provenance.",
12
+ "runtime": "node",
13
+ "entrypoint": "summarize.cjs",
14
+ "timeoutMs": 10000,
15
+ "maxOutputBytes": 16384,
16
+ "inputSchema": {
17
+ "type": "object",
18
+ "properties": {
19
+ "values": { "type": "array", "items": { "type": "number" }, "minItems": 1, "maxItems": 1000 },
20
+ "units": { "type": "string", "maxLength": 40 }
21
+ },
22
+ "required": ["values"],
23
+ "additionalProperties": false
24
+ }
25
+ }
26
+ ]
27
+ }
28
+ }
@@ -0,0 +1,23 @@
1
+ const { values, units } = JSON.parse(process.argv[2]);
2
+ if (!Array.isArray(values) || values.length < 1 || values.length > 1000 || !values.every(Number.isFinite))
3
+ throw new Error("Expected 1-1000 finite measurements");
4
+ let mean = 0;
5
+ let m2 = 0;
6
+ for (const [index, value] of values.entries()) {
7
+ const delta = value - mean;
8
+ mean += delta / (index + 1);
9
+ m2 += delta * (value - mean);
10
+ }
11
+ if (!Number.isFinite(mean) || !Number.isFinite(m2))
12
+ throw new Error("Numerical overflow; rescale the supplied measurements");
13
+ console.log(
14
+ JSON.stringify({
15
+ count: values.length,
16
+ mean,
17
+ min: Math.min(...values),
18
+ max: Math.max(...values),
19
+ sampleStandardDeviation: values.length > 1 ? Math.sqrt(m2 / (values.length - 1)) : null,
20
+ units: units ?? null,
21
+ source: "caller-supplied measurements; provenance not independently verified",
22
+ }),
23
+ );
@@ -0,0 +1,109 @@
1
+ # Clio Coder Library
2
+
3
+ The Clio Coder library is the canonical home of shareable packages, contributor entry points, and the generated distribution index.
4
+
5
+ ## Package Kinds
6
+
7
+ The library organizes shareable packages by kind into dedicated directories:
8
+
9
+ | Kind | Directory | What an author shares | How it is used |
10
+ | --- | --- | --- | --- |
11
+ | **Skill** | `library/skills/` | A procedure and supporting knowledge for the agent | `/skill <skill-name>` |
12
+ | **Agent** | `library/agents/` | A worker recipe: role, tools, budget, and result contract | `/run <agent-id> <task>` or dispatch |
13
+ | **Prompt** | `library/prompts/` | Reusable task text and parameterized instructions | `/<derived-prompt-name> [arguments]` |
14
+ | **Fleet** | `library/fleets/` | An executable multi-agent coordination recipe | `/fleet run <name>` or preview |
15
+ | **Plugin** | `library/plugins/` | A cohesive bundle of resources released together | Inspect contents, invoke member recipes |
16
+
17
+ ## Browsing and Managing Packages
18
+
19
+ ```bash
20
+ # Discover packages in the catalog
21
+ clio-coder library list
22
+ clio-coder library search <query>
23
+
24
+ # Install packages
25
+ clio-coder library install skill:<name> --project
26
+ clio-coder library install plugin:materio --project
27
+
28
+ # Inspect installed packages
29
+ clio-coder library skills --all --json
30
+
31
+ # Read every discovered recipe with its owner, origin and invocation
32
+ clio-coder library recipes --json
33
+ clio-coder library recipes <query> --kind agent
34
+ ```
35
+
36
+ `library recipes` reads the same bounded, body-free inventory Clio reads through `context(scope="library")`, so the operator and the model agree about which recipes exist, who owns them, where they came from and how each one is actually invoked. Both are reads: installation, removal and activation stay operator actions through `library install` and `/library`, and `/skill <name>` stays the way a skill is activated.
37
+
38
+ In an interactive session, `/library` opens the recipe browser.
39
+
40
+ ## Using These Packages From Another Agent
41
+
42
+ The same sources are usable by Claude Code and Codex with no converted copy and no duplicated recipe body.
43
+
44
+ ```bash
45
+ # Claude Code: the repository is a standard marketplace
46
+ claude plugin marketplace add iowarp/clio-coder
47
+ claude plugin install tdd@clio-coder
48
+
49
+ # Codex: .agents/skills already links the canonical trees, so a session
50
+ # started in a clone sees all 39 skills. For every repository:
51
+ ln -s "$PWD/library/skills" ~/.agents/skills/clio-coder
52
+ ln -s "$PWD/library/plugins/materio/skills" ~/.agents/skills/materio
53
+ ```
54
+
55
+ `.claude-plugin/marketplace.json` is generated by `pnpm run library:pin` from the pinned packages in `registry.yaml` and verified by `pnpm run library:check`. It is never edited by hand.
56
+
57
+ A package is published there only when a peer host would load a real skill surface from it and nothing it would default-scan into a native component. Agent-, prompt- and fleet-only packages, and packages that keep Clio recipes in a top-level `agents/` directory, stay valid first-class library packages with no peer-host projection; `library:pin` prints which ones and why. See [coding agent interoperability](../docs/guide/interop.md) for what each host actually loads.
58
+
59
+ ## Authoring Templates
60
+
61
+ Working, valid authoring templates for all five package kinds live in `library/_authoring/templates/`:
62
+
63
+ - `library/_authoring/templates/skill/`: Single skill package with house metadata, triggers, and evals.
64
+ - `library/_authoring/templates/agent/`: Standalone agent recipe with strict v1 format, custom audience, and `skills: []`.
65
+ - `library/_authoring/templates/prompt/`: Reusable prompt with path-derived invocation and argument placeholders.
66
+ - `library/_authoring/templates/fleet/`: Multi-agent coordination contract with a valid DAG and documented prerequisites.
67
+ - `library/_authoring/templates/plugin/`: Composite bundle demonstrating an agent binding a contained skill, prompts, and assets.
68
+
69
+ Templates are authoring reference models; they live outside the five catalog kind roots and never enter `library/registry.yaml`.
70
+
71
+ ## Contributing Packages
72
+
73
+ Every native installable package carries a portable `plugin.json` manifest.
74
+ The optional `extensions["ai.iowarp.clio"]` metadata declares a Clio-specific
75
+ kind, resource paths and components; conventional plugin packages can expose
76
+ `skills/` without it. The key is metadata inside the interoperable manifest,
77
+ and does not name a marketplace service or require a directory. Supported
78
+ foreign plugin manifests enter through the separate reviewed import route.
79
+
80
+ 1. **Choose package kind**: Decide whether your contribution is a single-kind package (`skill`, `agent`, `prompt`, `fleet`) exposing exactly one public recipe, or a composite `plugin` bundle combining multiple resources.
81
+ 2. **Copy authoring template**: Copy from `library/_authoring/templates/<kind>/` into your authoring tree.
82
+ 3. **Author resources**:
83
+ - Single-kind packages expose exactly one public resource file under their resource root (`skills`, `agents`, `prompts`, or `fleets`).
84
+ - Place `README.md` at the package root, outside the resource root, so it is not discovered as a second recipe.
85
+ - Packages may carry explicitly invoked scripts (e.g. for offline evaluation or verification). Runtime tools and session hooks belong to the separate harness extension lifecycle.
86
+ 4. **Validate**:
87
+ ```bash
88
+ clio-coder library validate <package-path> --json
89
+ ```
90
+ Validates manifest schema, resource payloads, package reference markers, and loader compatibility in a read-only pass.
91
+ 5. **Pin and check**:
92
+ ```bash
93
+ pnpm run library:pin # regenerates full-tree pins in library/registry.yaml
94
+ pnpm run library:check # verifies all package bytes against library/registry.yaml
95
+ ```
96
+ For curated skills under `library/skills/`, maintainers also run:
97
+ ```bash
98
+ pnpm run skills:pin # updates normalized skill-body provenance in library/skills/registry.yaml
99
+ pnpm run skills:check # verifies skill provenance records
100
+ ```
101
+ *Full-tree pins* cover every distributed byte for runtime package integrity; *normalized skill hashes* record advisory provenance for audited instructions.
102
+ 6. **Try in isolated project**:
103
+ ```bash
104
+ clio-coder library register <package-path> --project
105
+ clio-coder library install <kind>:<name> --project
106
+ ```
107
+ 7. **Submit a focused fork PR**: Push to your fork and submit a PR against `main`.
108
+
109
+ Built-in agent recipes and baseline fleets remain product-owned under `src/domains/agents/builtins/` and `src/domains/agents/fleets/`.
@@ -0,0 +1,28 @@
1
+ # Benchmark Scout Agent Template
2
+
3
+ This template demonstrates a valid standalone **agent** package for Clio Coder.
4
+
5
+ ## Package Structure
6
+
7
+ ```text
8
+ benchmark-scout/
9
+ README.md # Documentation (outside resource root)
10
+ plugin.json # Portable manifest declaring kind: agent
11
+ agents/
12
+ benchmark-scout.md # Agent recipe (strict v1 format)
13
+ ```
14
+
15
+ > **Important**: Place `README.md` at the package root, never inside the `agents/` resource root. Single-kind packages expose exactly one public candidate in their declared resource directory.
16
+
17
+ ## Recipe Constraints
18
+
19
+ - Must use version 1 schema (`version: 1`).
20
+ - Standalone agents declare `skills: []` and cannot bind external package skills.
21
+ - Must declare `audience: custom` (only built-in recipes can use other audiences).
22
+ - Valid budget, tools (required and optional), capability class, category, and result contract.
23
+
24
+ ## Validation
25
+
26
+ ```bash
27
+ clio-coder library validate .
28
+ ```