@iowarp/clio-coder 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/CHANGELOG.md +90 -2
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +284 -613
  4. package/dist/{acp-FPR54DGL.js → acp-BIYHVZIM.js} +43 -53
  5. package/dist/{agents-OGPIHPJH.js → agents-YT6SSRIT.js} +43 -26
  6. package/dist/assets/codewiki.json +1 -1
  7. package/dist/{auth-IC3K6NIZ.js → auth-5TWEIYDN.js} +20 -12
  8. package/dist/{chunk-PV4JUBVJ.js → chunk-2EHAIA3X.js} +40 -21
  9. package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
  10. package/dist/chunk-2SFS6XQE.js +122 -0
  11. package/dist/chunk-2VTFPG5O.js +48 -0
  12. package/dist/{chunk-MAR7Y6HW.js → chunk-3ZXDFGR5.js} +23 -16
  13. package/dist/chunk-4BJ5BYCE.js +61 -0
  14. package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
  15. package/dist/chunk-4KLWL3UC.js +18 -0
  16. package/dist/chunk-4VP4KH3K.js +962 -0
  17. package/dist/chunk-4ZG3XFUR.js +77 -0
  18. package/dist/chunk-5B2AEOW5.js +5407 -0
  19. package/dist/{chunk-K2ITRMHZ.js → chunk-5TSRNF4G.js} +6 -138
  20. package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
  21. package/dist/chunk-65DEGPJ6.js +52 -0
  22. package/dist/chunk-6EJMN2Y3.js +17 -0
  23. package/dist/chunk-6EJV5X2W.js +16405 -0
  24. package/dist/chunk-6N5PTWMY.js +136 -0
  25. package/dist/chunk-6XLNIQDB.js +27 -0
  26. package/dist/{chunk-TEKV33Q5.js → chunk-77VKQEHF.js} +65 -33
  27. package/dist/chunk-7CR24IG7.js +242 -0
  28. package/dist/{chunk-M5T5VO65.js → chunk-7EYHLWU7.js} +837 -635
  29. package/dist/chunk-7MNJORFF.js +22 -0
  30. package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
  31. package/dist/chunk-AGYYIBLL.js +1069 -0
  32. package/dist/chunk-AO4RKG4M.js +277 -0
  33. package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
  34. package/dist/chunk-ARBGF5F7.js +174 -0
  35. package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
  36. package/dist/chunk-CBCAPZAA.js +229 -0
  37. package/dist/chunk-CMZWFGD2.js +352 -0
  38. package/dist/chunk-ECH6PKUQ.js +39 -0
  39. package/dist/chunk-ED4KHGC3.js +143 -0
  40. package/dist/chunk-EKMEHE4H.js +340 -0
  41. package/dist/{chunk-RPTR2H26.js → chunk-EPVUXGXG.js} +21 -15
  42. package/dist/chunk-FCSXB6T2.js +338 -0
  43. package/dist/chunk-FJ3H4MN5.js +48 -0
  44. package/dist/chunk-FQ4SKYE4.js +29 -0
  45. package/dist/chunk-G2DE3C7R.js +644 -0
  46. package/dist/chunk-G4BMMOKF.js +182 -0
  47. package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
  48. package/dist/chunk-HC4CLZ2Y.js +68 -0
  49. package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
  50. package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
  51. package/dist/chunk-I4HZDVNP.js +73 -0
  52. package/dist/{chunk-4QKXUHSR.js → chunk-IGLFWIYI.js} +70 -20
  53. package/dist/chunk-IKCO5N3L.js +162 -0
  54. package/dist/chunk-IR4CFBFN.js +56 -0
  55. package/dist/{chunk-PFEFKVGL.js → chunk-J5HN4RYU.js} +13 -11
  56. package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
  57. package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
  58. package/dist/chunk-KJ5LWLOE.js +1077 -0
  59. package/dist/chunk-LBMZMYH2.js +285 -0
  60. package/dist/{chunk-G34LV2PF.js → chunk-LBNRH5WM.js} +84 -170
  61. package/dist/{chunk-H6F6BYOH.js → chunk-LZSJBIVT.js} +7003 -7434
  62. package/dist/{chunk-HQQID6OA.js → chunk-M6SHUN7Q.js} +5 -5
  63. package/dist/chunk-MAW544W2.js +1882 -0
  64. package/dist/chunk-MBS4V7ZP.js +217 -0
  65. package/dist/{chunk-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
  66. package/dist/chunk-MNA4JGU4.js +255 -0
  67. package/dist/chunk-MQSRRFWA.js +3428 -0
  68. package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
  69. package/dist/chunk-OAO4GE4M.js +619 -0
  70. package/dist/chunk-OHHN2SO4.js +5135 -0
  71. package/dist/chunk-OKGUZO2U.js +34 -0
  72. package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
  73. package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
  74. package/dist/chunk-OQE5J4C6.js +73 -0
  75. package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
  76. package/dist/chunk-POHLU5DW.js +1186 -0
  77. package/dist/chunk-QKMUKYO7.js +4961 -0
  78. package/dist/{chunk-ASND7OZK.js → chunk-QTYWRVRA.js} +13 -13
  79. package/dist/{chunk-EYOKLTMF.js → chunk-SRF2PJNW.js} +17 -3
  80. package/dist/chunk-SST6Z5JA.js +80 -0
  81. package/dist/chunk-STBPMHSX.js +2456 -0
  82. package/dist/chunk-T6YILFSB.js +80 -0
  83. package/dist/chunk-TZTZS7QK.js +227 -0
  84. package/dist/chunk-UOV2BYIW.js +107 -0
  85. package/dist/{chunk-Q3RUPKEJ.js → chunk-V4RXGQ5Q.js} +58 -189
  86. package/dist/chunk-VAKQQHWR.js +434 -0
  87. package/dist/chunk-VG7TBQIY.js +128 -0
  88. package/dist/chunk-VJWL6YS5.js +244 -0
  89. package/dist/chunk-WEH5XRJQ.js +32 -0
  90. package/dist/chunk-WMSVI4G2.js +2095 -0
  91. package/dist/chunk-WVO7V2QY.js +797 -0
  92. package/dist/chunk-X4RCMKVQ.js +641 -0
  93. package/dist/chunk-X75S7HFS.js +374 -0
  94. package/dist/chunk-XN3L4EYL.js +46 -0
  95. package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
  96. package/dist/chunk-YHZX5GEU.js +193 -0
  97. package/dist/chunk-YXLYO42X.js +91 -0
  98. package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
  99. package/dist/chunk-ZI647VB5.js +37 -0
  100. package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
  101. package/dist/cli/index.js +62 -54
  102. package/dist/clio-4LY5K2AC.js +25 -0
  103. package/dist/code-nav-7AX6FYE6.js +600 -0
  104. package/dist/codewiki/build-worker.js +66 -0
  105. package/dist/compile-cache-CVJMMODC.js +18 -0
  106. package/dist/{components-DMAOEKFB.js → components-KELWS457.js} +11 -6
  107. package/dist/{config-IRUQ7SE4.js → config-GTLUW2PR.js} +92 -55
  108. package/dist/configure-R6A64DHX.js +42 -0
  109. package/dist/context-5VKGUVJJ.js +866 -0
  110. package/dist/{context-3KWFLHJG.js → context-JFZEJ7W5.js} +15 -13
  111. package/dist/{context-5RADCKTR.js → context-RW5HC47S.js} +71 -35
  112. package/dist/{context-clear-7TSNPAAI.js → context-clear-6ZHBAZZT.js} +54 -28
  113. package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
  114. package/dist/dispatch-runner-VKBRCWQC.js +1997 -0
  115. package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
  116. package/dist/{doctor-UC5NAJYQ.js → doctor-KI767GSN.js} +27 -17
  117. package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
  118. package/dist/{evidence-YEGUW4L3.js → evidence-UA6AWDQQ.js} +46 -26
  119. package/dist/{evolve-TXARCTPG.js → evolve-QNTFGV6Z.js} +45 -25
  120. package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
  121. package/dist/{fleet-6G3DHNYE.js → fleet-Q7UOMUSG.js} +163 -54
  122. package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
  123. package/dist/{init-KZ5QTF6M.js → init-WBB65ZHQ.js} +69 -32
  124. package/dist/{memory-73ESV5YC.js → memory-MD3O64RI.js} +48 -27
  125. package/dist/{models-A4PVNWJK.js → models-BZU34YWD.js} +39 -25
  126. package/dist/monitor-MEQA5C3I.js +661 -0
  127. package/dist/{chunk-FCIH3BIZ.js → orchestrator-CGFKEP27.js} +11832 -8687
  128. package/dist/{paths-C4H6IV77.js → paths-UXLN5YYZ.js} +10 -5
  129. package/dist/{preload-6WVMHX3A.js → preload-P6DGH2PZ.js} +2 -2
  130. package/dist/{reset-BGW6OGMV.js → reset-L2FQEE3E.js} +16 -10
  131. package/dist/{run-YTPEYQOH.js → run-IV4Q6RLN.js} +101 -61
  132. package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
  133. package/dist/{skills-2V6RA3OQ.js → skills-LQEKRDTN.js} +34 -14
  134. package/dist/{skills-eval-S2TVJO4F.js → skills-eval-3DC4HEWS.js} +70 -34
  135. package/dist/steer-GGWFUJUD.js +77 -0
  136. package/dist/{targets-TYXLPB23.js → targets-C4SSGQOB.js} +43 -27
  137. package/dist/terminal-lease-IT5JW2NR.js +395 -0
  138. package/dist/{trace-GGOJ6Q6Z.js → trace-PNCASAXC.js} +41 -16
  139. package/dist/{chunk-N6F52NLF.js → tree-sitter-HGKH6LG4.js} +28 -2306
  140. package/dist/{uninstall-LLLT4F4W.js → uninstall-FZCQCDKC.js} +10 -5
  141. package/dist/{upgrade-33G2LMM5.js → upgrade-7TT7SQ3G.js} +45 -25
  142. package/dist/{usage-ZAFSXKKG.js → usage-GV4PKT3M.js} +62 -31
  143. package/dist/verify-G6V4D2G7.js +716 -0
  144. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  145. package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-DQF6Z66B.js} +74 -34
  146. package/dist/worker/entry.js +221 -36
  147. package/dist/workspace-G4ZWUIPR.js +22 -0
  148. package/docs/README.md +22 -17
  149. package/docs/acp.md +168 -16
  150. package/docs/alcf-provider.md +1 -1
  151. package/docs/architecture.md +136 -7
  152. package/docs/artifact-versions.md +1 -1
  153. package/docs/built-in-agents.md +1 -1
  154. package/docs/capacity-and-scheduling.md +1 -1
  155. package/docs/commands-and-modes.md +114 -71
  156. package/docs/config-knobs-audit.md +1 -3
  157. package/docs/configuration-and-targets.md +174 -46
  158. package/docs/context-engine.md +29 -6
  159. package/docs/development-pipeline.md +26 -1
  160. package/docs/dispatch-architecture-rationale.md +1 -1
  161. package/docs/documentation-coverage.md +2 -2
  162. package/docs/documentation-guide.md +1 -1
  163. package/docs/environment-variables.md +13 -5
  164. package/docs/eval-runner.md +1 -1
  165. package/docs/evals-internal.md +1 -1
  166. package/docs/evidence-and-memory.md +6 -2
  167. package/docs/evolution.md +2 -2
  168. package/docs/exit-codes-and-output.md +15 -9
  169. package/docs/extensions-and-sharing.md +9 -9
  170. package/docs/fleet-dispatch.md +7 -5
  171. package/docs/git-commit-provenance.md +120 -0
  172. package/docs/glossary.md +1 -1
  173. package/docs/installation-and-lifecycle.md +34 -27
  174. package/docs/middleware-and-components.md +1 -1
  175. package/docs/model-catalog.md +45 -14
  176. package/docs/observability.md +8 -5
  177. package/docs/performance-methodology.md +491 -0
  178. package/docs/pi-boundary.md +72 -0
  179. package/docs/proactive-memory.md +3 -3
  180. package/docs/prompt-envelope-and-tools.md +24 -3
  181. package/docs/provider-adapter-cookbook.md +57 -4
  182. package/docs/release-cut-checklist.md +129 -115
  183. package/docs/safety-model.md +9 -5
  184. package/docs/scientific-validation.md +3 -3
  185. package/docs/session-lifecycle.md +55 -12
  186. package/docs/skills-marketplace.md +12 -8
  187. package/docs/time-conventions.md +1 -1
  188. package/docs/tool-usage.md +3 -3
  189. package/docs/trace-store.md +1 -1
  190. package/docs/troubleshooting.md +10 -7
  191. package/docs/tui-design.md +47 -10
  192. package/docs/worker-dispatch-mechanics.md +1 -1
  193. package/package.json +19 -22
  194. package/skills/coding/ast-grep/SKILL.md +136 -0
  195. package/skills/coding/ast-grep/evals.md +56 -0
  196. package/skills/coding/ast-grep/references/rule_reference.md +297 -0
  197. package/skills/coding/coding-standards/SKILL.md +113 -0
  198. package/skills/coding/coding-standards/evals.md +34 -0
  199. package/skills/coding/prototype/SKILL.md +86 -0
  200. package/skills/coding/prototype/evals.md +42 -0
  201. package/skills/coding/prototype/references/LOGIC.md +67 -0
  202. package/skills/coding/prototype/references/UI.md +112 -0
  203. package/skills/coding/tdd/SKILL.md +101 -0
  204. package/skills/coding/tdd/evals.md +41 -0
  205. package/skills/coding/tdd/references/mocking.md +59 -0
  206. package/skills/coding/tdd/references/tests.md +77 -0
  207. package/skills/context/context-handoff/SKILL.md +126 -0
  208. package/skills/context/context-handoff/evals.md +57 -0
  209. package/skills/context/context-handoff/scripts/new-handoff.sh +26 -0
  210. package/skills/context/context-prime/SKILL.md +95 -0
  211. package/skills/context/context-prime/evals.md +54 -0
  212. package/skills/meta/clio-dev/SKILL.md +91 -0
  213. package/skills/meta/clio-dev/evals.md +45 -0
  214. package/skills/meta/clio-test/SKILL.md +130 -0
  215. package/skills/meta/clio-test/evals.md +43 -0
  216. package/skills/meta/clio-test/references/harness.md +97 -0
  217. package/skills/meta/clio-test/references/test-map.md +59 -0
  218. package/skills/meta/credentials/SKILL.md +125 -0
  219. package/skills/meta/credentials/evals.md +104 -0
  220. package/skills/meta/find-skills/SKILL.md +72 -0
  221. package/skills/meta/find-skills/evals.md +47 -0
  222. package/skills/meta/herdr/SKILL.md +127 -0
  223. package/skills/meta/herdr/evals.md +38 -0
  224. package/skills/meta/skill-craft/SKILL.md +102 -0
  225. package/skills/meta/skill-craft/evals.md +41 -0
  226. package/skills/planning/architecture/SKILL.md +129 -0
  227. package/skills/planning/architecture/evals.md +36 -0
  228. package/skills/planning/backlog/SKILL.md +90 -0
  229. package/skills/planning/backlog/evals.md +43 -0
  230. package/skills/planning/prd/SKILL.md +82 -0
  231. package/skills/planning/prd/evals.md +49 -0
  232. package/skills/planning/product-intent/SKILL.md +112 -0
  233. package/skills/planning/product-intent/evals.md +36 -0
  234. package/skills/planning/tech-spec/SKILL.md +115 -0
  235. package/skills/planning/tech-spec/evals.md +47 -0
  236. package/skills/registry.yaml +136 -0
  237. package/skills/research/arxiv-literature/SKILL.md +104 -0
  238. package/skills/research/arxiv-literature/evals.md +58 -0
  239. package/skills/research/experiment-protocol/SKILL.md +122 -0
  240. package/skills/research/experiment-protocol/evals.md +91 -0
  241. package/skills/research/scientific-debugging/SKILL.md +119 -0
  242. package/skills/research/scientific-debugging/evals.md +138 -0
  243. package/skills/research/scientific-modernization/SKILL.md +138 -0
  244. package/skills/research/scientific-modernization/evals.md +84 -0
  245. package/skills/workflow/design-council/SKILL.md +139 -0
  246. package/skills/workflow/design-council/evals.md +97 -0
  247. package/skills/workflow/grill-me/SKILL.md +186 -0
  248. package/skills/workflow/grill-me/evals.md +78 -0
  249. package/skills/workflow/workflow-distiller/SKILL.md +136 -0
  250. package/skills/workflow/workflow-distiller/evals.md +107 -0
  251. package/src/cli/acp.ts +31 -4
  252. package/src/cli/clio.ts +68 -6
  253. package/src/cli/config-inspect.ts +28 -22
  254. package/src/cli/configure.ts +47 -9
  255. package/src/cli/context-clear.ts +2 -2
  256. package/src/cli/context-index.ts +21 -23
  257. package/src/cli/context.ts +13 -8
  258. package/src/cli/default-target.ts +9 -17
  259. package/src/cli/docs.ts +11 -5
  260. package/src/cli/evidence.ts +4 -1
  261. package/src/cli/extensions.ts +10 -1
  262. package/src/cli/fleet.ts +47 -6
  263. package/src/cli/index.ts +55 -26
  264. package/src/cli/memory.ts +3 -1
  265. package/src/cli/models.ts +1 -1
  266. package/src/cli/modes/json-stream.ts +37 -1
  267. package/src/cli/modes/print.ts +24 -9
  268. package/src/cli/run.ts +2 -2
  269. package/src/cli/skills-eval.ts +23 -8
  270. package/src/cli/skills.ts +19 -4
  271. package/src/cli/targets.ts +4 -0
  272. package/src/cli/text-layout.ts +15 -5
  273. package/src/cli/trace.ts +62 -14
  274. package/src/cli/upgrade.ts +18 -2
  275. package/src/cli/usage.ts +10 -3
  276. package/src/cli/wiki-generate.ts +2 -1
  277. package/src/core/agent-environment.ts +7 -0
  278. package/src/core/bash-exec.ts +72 -1
  279. package/src/core/boot-trace.ts +9 -4
  280. package/src/core/bus-events.ts +20 -4
  281. package/src/core/commit-attribution.ts +157 -0
  282. package/src/core/compile-cache.ts +159 -0
  283. package/src/core/config.ts +131 -2
  284. package/src/core/defaults.ts +39 -5
  285. package/src/core/domain-loader.ts +12 -5
  286. package/src/core/git-commit-attribution.ts +362 -0
  287. package/src/core/incomplete-installation.ts +45 -0
  288. package/src/core/response-schema.ts +1 -1
  289. package/src/core/safe-exec.ts +13 -1
  290. package/src/core/settings-layers.ts +155 -21
  291. package/src/core/skill-activation.ts +1 -1
  292. package/src/core/startup-timer.ts +3 -3
  293. package/src/core/state-file-lock.ts +13 -1
  294. package/src/core/termination.ts +78 -5
  295. package/src/domains/config/classify.ts +15 -3
  296. package/src/domains/config/extension.ts +19 -13
  297. package/src/domains/config/index.ts +10 -0
  298. package/src/domains/config/keybindings.ts +42 -6
  299. package/src/domains/context/bootstrap-prompt.ts +1 -1
  300. package/src/domains/context/bootstrap.ts +111 -18
  301. package/src/domains/context/clear.ts +16 -11
  302. package/src/domains/context/clio-md.ts +111 -9
  303. package/src/domains/context/codewiki/artifact.ts +400 -0
  304. package/src/domains/context/codewiki/build-worker-protocol.ts +24 -0
  305. package/src/domains/context/codewiki/build-worker.ts +54 -0
  306. package/src/domains/context/codewiki/coordinator.ts +182 -0
  307. package/src/domains/context/codewiki/indexer.ts +59 -144
  308. package/src/domains/context/codewiki/paths.ts +67 -0
  309. package/src/domains/context/codewiki/schema.ts +80 -0
  310. package/src/domains/context/codewiki/tree-sitter.ts +1 -1
  311. package/src/domains/context/contract.ts +11 -5
  312. package/src/domains/context/extension.ts +94 -143
  313. package/src/domains/context/fingerprint.ts +3 -1
  314. package/src/domains/context/index.ts +12 -22
  315. package/src/domains/context/project-metadata.ts +19 -0
  316. package/src/domains/context/prompt-context.ts +9 -10
  317. package/src/domains/context/refresh.ts +29 -21
  318. package/src/domains/context/runtime.ts +17 -0
  319. package/src/domains/context/wiki/generate.ts +39 -34
  320. package/src/domains/context/wiki/plan.ts +1 -1
  321. package/src/domains/context/wiki/prompts.ts +21 -8
  322. package/src/domains/dispatch/code-step.ts +20 -1
  323. package/src/domains/dispatch/extension.ts +158 -21
  324. package/src/domains/dispatch/failure-classification.ts +6 -0
  325. package/src/domains/dispatch/fleet-commit-attribution.ts +56 -0
  326. package/src/domains/dispatch/orphan-recovery.ts +50 -8
  327. package/src/domains/dispatch/receipt-integrity.ts +5 -0
  328. package/src/domains/dispatch/state.ts +31 -6
  329. package/src/domains/dispatch/transport.ts +2 -1
  330. package/src/domains/dispatch/types.ts +14 -0
  331. package/src/domains/dispatch/worker-spawn.ts +21 -2
  332. package/src/domains/eval/metrics/context.ts +1 -1
  333. package/src/domains/eval/types.ts +0 -1
  334. package/src/domains/evidence/build.ts +41 -1
  335. package/src/domains/lifecycle/migrations/2026-08-18-lmstudio-runtime-id.ts +52 -0
  336. package/src/domains/lifecycle/migrations/index.ts +24 -4
  337. package/src/domains/middleware/hooks-io.ts +12 -0
  338. package/src/domains/middleware/skills-reminder.ts +30 -15
  339. package/src/domains/prompts/compiler.ts +142 -84
  340. package/src/domains/prompts/contract.ts +18 -2
  341. package/src/domains/prompts/extension.ts +39 -7
  342. package/src/domains/prompts/fragment-loader.ts +0 -1
  343. package/src/domains/prompts/fragments/identity/clio.md +2 -4
  344. package/src/domains/prompts/fragments/identity/docs-routing.md +10 -0
  345. package/src/domains/prompts/fragments/identity/self-awareness.md +1 -45
  346. package/src/domains/prompts/fragments/operating/contract.md +4 -50
  347. package/src/domains/prompts/fragments/operating/delegation.md +42 -0
  348. package/src/domains/prompts/fragments/operating/skills.md +26 -0
  349. package/src/domains/prompts/fragments/operating/worker.md +16 -0
  350. package/src/domains/prompts/fragments/safety/auto-edit.md +5 -5
  351. package/src/domains/prompts/fragments/safety/full-auto.md +3 -3
  352. package/src/domains/prompts/fragments/safety/read-only.md +4 -4
  353. package/src/domains/prompts/fragments/safety/suggest.md +2 -2
  354. package/src/domains/prompts/fragments/wiki/page.md +10 -0
  355. package/src/domains/prompts/fragments/wiki/plan.md +10 -0
  356. package/src/domains/prompts/preload.ts +3 -3
  357. package/src/domains/providers/auth/api-key.ts +1 -1
  358. package/src/domains/providers/auth/backend-file.ts +20 -10
  359. package/src/domains/providers/auth/backend-memory.ts +59 -4
  360. package/src/domains/providers/auth/boot-status.ts +65 -0
  361. package/src/domains/providers/auth/oauth.ts +2 -1
  362. package/src/domains/providers/auth/storage.ts +97 -38
  363. package/src/domains/providers/capabilities.ts +12 -4
  364. package/src/domains/providers/contract.ts +15 -4
  365. package/src/domains/providers/extension.ts +18 -6
  366. package/src/domains/providers/model-runtime-capabilities.ts +15 -4
  367. package/src/domains/providers/models/local-models/clio-local-coding-targets.yaml +118 -35
  368. package/src/domains/providers/plugins.ts +5 -3
  369. package/src/domains/providers/probe/fingerprint.ts +25 -5
  370. package/src/domains/providers/registry.ts +31 -10
  371. package/src/domains/providers/runtimes/boot-manifest.ts +55 -0
  372. package/src/domains/providers/runtimes/builtins.ts +2 -2
  373. package/src/domains/providers/runtimes/common/lmstudio-http.ts +423 -0
  374. package/src/domains/providers/runtimes/common/local-synth.ts +6 -7
  375. package/src/domains/providers/runtimes/local-native/lmstudio.ts +241 -0
  376. package/src/domains/providers/support.ts +6 -3
  377. package/src/domains/providers/types/local-model-quirks.ts +7 -9
  378. package/src/domains/providers/types/runtime-descriptor.ts +12 -1
  379. package/src/domains/providers/types/target-descriptor.ts +22 -0
  380. package/src/domains/resources/contract.ts +0 -1
  381. package/src/domains/resources/extension.ts +1 -3
  382. package/src/domains/resources/loader.ts +3 -4
  383. package/src/domains/resources/prompts/loader.ts +16 -2
  384. package/src/domains/resources/prompts/substitute.ts +1 -65
  385. package/src/domains/resources/skills/content-hash.ts +2 -0
  386. package/src/domains/resources/skills/install.ts +17 -0
  387. package/src/domains/resources/skills/loader.ts +17 -10
  388. package/src/domains/resources/skills/marketplace.ts +55 -9
  389. package/src/domains/safety/action-classifier.ts +4 -2
  390. package/src/domains/safety/audit.ts +8 -2
  391. package/src/domains/safety/extension.ts +1 -1
  392. package/src/domains/session/compaction/branch-summary.ts +3 -2
  393. package/src/domains/session/compaction/cut-point.ts +2 -1
  394. package/src/domains/session/compaction/tokens.ts +2 -1
  395. package/src/domains/session/context-ledger.ts +14 -0
  396. package/src/domains/session/contract.ts +15 -0
  397. package/src/domains/session/decision-board.ts +190 -0
  398. package/src/domains/session/entries.ts +66 -3
  399. package/src/domains/session/extension.ts +93 -12
  400. package/src/domains/session/retry.ts +10 -18
  401. package/src/domains/session/session-artifacts.ts +107 -0
  402. package/src/domains/session/task-board.ts +207 -13
  403. package/src/domains/session/tree/active-path.ts +44 -5
  404. package/src/domains/session/tree/fork.ts +26 -27
  405. package/src/domains/session/tree/preview.ts +2 -2
  406. package/src/domains/session/workspace/git-probe.ts +17 -11
  407. package/src/domains/user-tasks/store.ts +297 -0
  408. package/src/engine/acp/errors.ts +96 -0
  409. package/src/engine/acp/server.ts +1728 -146
  410. package/src/engine/acp/transport.ts +135 -14
  411. package/src/engine/acp/types.ts +26 -0
  412. package/src/engine/agent.ts +3 -3
  413. package/src/engine/ai.ts +32 -27
  414. package/src/engine/alcf-oauth.ts +26 -19
  415. package/src/engine/api-registry.ts +223 -0
  416. package/src/engine/apis/index.ts +3 -7
  417. package/src/engine/apis/llamacpp-residency.ts +49 -9
  418. package/src/engine/apis/lmstudio-residency.ts +5 -21
  419. package/src/engine/apis/lmstudio.ts +243 -0
  420. package/src/engine/apis/ollama-native.ts +24 -3
  421. package/src/engine/apis/openai-completions.ts +170 -91
  422. package/src/engine/apis/residency.ts +139 -3
  423. package/src/engine/apis/types.ts +16 -0
  424. package/src/engine/env-api-keys.ts +98 -0
  425. package/src/engine/gemma-channel-filter.ts +223 -0
  426. package/src/engine/instrumented-tui.ts +192 -0
  427. package/src/engine/messages.ts +14 -0
  428. package/src/engine/models.ts +42 -0
  429. package/src/engine/oauth.ts +16 -12
  430. package/src/engine/prompt-templates.ts +1 -0
  431. package/src/engine/provider-payload.ts +16 -59
  432. package/src/engine/strip-tokenizer-sentinels.ts +1 -1
  433. package/src/engine/truncate.ts +9 -0
  434. package/src/engine/tui.ts +17 -9
  435. package/src/engine/types.ts +3 -6
  436. package/src/engine/worker-runtime-capabilities.ts +5 -0
  437. package/src/engine/worker-runtime.ts +1 -1
  438. package/src/engine/worker-tools.ts +9 -4
  439. package/src/entry/boot-options.ts +50 -0
  440. package/src/entry/orchestrator.ts +288 -150
  441. package/src/interactive/application-controller.ts +89 -2
  442. package/src/interactive/chat-loop.ts +266 -41
  443. package/src/interactive/chat-panel.ts +173 -47
  444. package/src/interactive/chat-renderer.ts +262 -72
  445. package/src/interactive/clio-editor.ts +3 -8
  446. package/src/interactive/command-fallbacks.ts +2 -2
  447. package/src/interactive/context-overlay.ts +27 -1
  448. package/src/interactive/editor-submit.ts +228 -24
  449. package/src/interactive/export-html/ansi-to-html.ts +161 -0
  450. package/src/interactive/export-html/index.ts +51 -0
  451. package/src/interactive/export-html/template.ts +45 -0
  452. package/src/interactive/export-html/tool-renderer.ts +54 -0
  453. package/src/interactive/footer/dashboard.ts +4 -0
  454. package/src/interactive/footer/notifications.ts +1 -1
  455. package/src/interactive/footer/widgets.ts +20 -2
  456. package/src/interactive/footer-panel.ts +2 -2
  457. package/src/interactive/format-time.ts +14 -2
  458. package/src/interactive/interactive-application.ts +201 -17
  459. package/src/interactive/interactive-event-projection.ts +6 -1
  460. package/src/interactive/interactive-input-runtime.ts +50 -4
  461. package/src/interactive/interactive-presentation.ts +151 -19
  462. package/src/interactive/interactive-shell.ts +268 -14
  463. package/src/interactive/interactive-slash-runtime.ts +176 -114
  464. package/src/interactive/interactive-tickers.ts +38 -7
  465. package/src/interactive/keybinding-manager.ts +1 -1
  466. package/src/interactive/layout.ts +40 -3
  467. package/src/interactive/overlay-frame.ts +1 -1
  468. package/src/interactive/overlay-general-openers.ts +58 -1
  469. package/src/interactive/overlay-key-routing.ts +3 -0
  470. package/src/interactive/overlay-lifecycle.ts +13 -0
  471. package/src/interactive/overlay-permission-lifecycle.ts +2 -1
  472. package/src/interactive/overlay-session-lifecycle.ts +69 -12
  473. package/src/interactive/overlays/decisions.ts +300 -0
  474. package/src/interactive/overlays/help-reference.ts +15 -10
  475. package/src/interactive/overlays/model-selector.ts +34 -16
  476. package/src/interactive/overlays/session-selector.ts +18 -0
  477. package/src/interactive/overlays/settings.ts +105 -17
  478. package/src/interactive/overlays/skills-hub.ts +4 -4
  479. package/src/interactive/overlays/tree-selector.ts +41 -6
  480. package/src/interactive/render-trace.ts +499 -90
  481. package/src/interactive/renderers/compaction-summary.ts +2 -2
  482. package/src/interactive/renderers/diff.ts +115 -104
  483. package/src/interactive/renderers/mermaid.ts +53 -0
  484. package/src/interactive/renderers/tool-execution.ts +386 -133
  485. package/src/interactive/renderers/worker-entry.ts +20 -4
  486. package/src/interactive/session-switch-settlement.ts +10 -0
  487. package/src/interactive/slash-autocomplete.ts +6 -114
  488. package/src/interactive/slash-commands.ts +135 -47
  489. package/src/interactive/slash-spec.ts +9 -38
  490. package/src/interactive/status/controller.ts +5 -1
  491. package/src/interactive/stdout-backpressure.ts +99 -0
  492. package/src/interactive/stream-pacer.ts +530 -0
  493. package/src/interactive/stream-pacing-policy.ts +66 -0
  494. package/src/interactive/tasks-overlay.ts +368 -14
  495. package/src/interactive/terminal-lease.ts +485 -0
  496. package/src/interactive/theme/tokens.ts +1 -1
  497. package/src/interactive/turn-context.ts +4 -3
  498. package/src/interactive/turn-persistence.ts +30 -13
  499. package/src/interactive/turn-queues.ts +12 -0
  500. package/src/interactive/turn-recovery.ts +25 -8
  501. package/src/interactive/turn-runtime.ts +79 -12
  502. package/src/interactive/turn-state.ts +10 -0
  503. package/src/interactive/view/artifacts.ts +114 -4
  504. package/src/interactive/view/view-overlay.ts +3 -0
  505. package/src/interactive/welcome-dashboard.ts +17 -16
  506. package/src/interactive/worker-receipts.ts +52 -3
  507. package/src/interactive/worker-stream.ts +5 -1
  508. package/src/tools/agent-tools.ts +23 -3
  509. package/src/tools/artifact.ts +2 -2
  510. package/src/tools/ask-user.ts +23 -13
  511. package/src/tools/bash.ts +30 -2
  512. package/src/tools/bootstrap.ts +34 -431
  513. package/src/tools/builtin-tool-catalog.ts +265 -0
  514. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  515. package/src/tools/codewiki/code-nav.ts +8 -22
  516. package/src/tools/codewiki/shared.ts +41 -38
  517. package/src/tools/context/docs-engine.ts +14 -3
  518. package/src/tools/context/index.ts +107 -28
  519. package/src/tools/context/surface.ts +19 -0
  520. package/src/tools/core-bootstrap.ts +168 -0
  521. package/src/tools/credential-present.ts +5 -5
  522. package/src/tools/dispatch-admission.ts +533 -0
  523. package/src/tools/dispatch-background.ts +54 -0
  524. package/src/tools/dispatch-event-text.ts +6 -0
  525. package/src/tools/dispatch-plan.ts +9 -4
  526. package/src/tools/dispatch-run-events.ts +238 -0
  527. package/src/tools/dispatch-runner.ts +2370 -0
  528. package/src/tools/dispatch-scout-admission.ts +295 -0
  529. package/src/tools/dispatch-types.ts +77 -0
  530. package/src/tools/dispatch.ts +67 -3161
  531. package/src/tools/find.ts +4 -2
  532. package/src/tools/grep.ts +2 -2
  533. package/src/tools/lazy-tool.ts +60 -0
  534. package/src/tools/ledger.ts +3 -3
  535. package/src/tools/monitor-surface.ts +36 -0
  536. package/src/tools/monitor.ts +2 -32
  537. package/src/tools/observers.ts +2 -2
  538. package/src/tools/registry.ts +39 -27
  539. package/src/tools/safe-exec.ts +2 -2
  540. package/src/tools/steer-surface.ts +17 -0
  541. package/src/tools/steer.ts +2 -13
  542. package/src/tools/tasks.ts +108 -11
  543. package/src/tools/truncate.ts +25 -184
  544. package/src/tools/verify/frontend.ts +3 -1
  545. package/src/tools/verify/index.ts +3 -38
  546. package/src/tools/verify/surface.ts +46 -0
  547. package/src/tools/web-fetch-surface.ts +23 -0
  548. package/src/tools/web-fetch.ts +2 -20
  549. package/src/tools/write.ts +7 -2
  550. package/src/worker/entry.ts +39 -2
  551. package/src/worker/spec-contract.ts +26 -5
  552. package/dist/chunk-7SS2CTV2.js +0 -61361
  553. package/dist/chunk-DKGKUHFA.js +0 -924
  554. package/dist/chunk-GEP36Y4X.js +0 -12796
  555. package/dist/chunk-XYWBQRDM.js +0 -137
  556. package/dist/clio-BZVGEUFJ.js +0 -58
  557. package/dist/configure-S7S6F6CL.js +0 -32
  558. package/docs/html/agents_blueprint.html +0 -936
  559. package/docs/html/alcf_blueprint.html +0 -324
  560. package/docs/html/architecture_blueprint.html +0 -850
  561. package/docs/html/commands_blueprint.html +0 -939
  562. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  563. package/docs/html/configuration_blueprint.html +0 -1080
  564. package/docs/html/context_blueprint.html +0 -603
  565. package/docs/html/documentation_blueprint.html +0 -832
  566. package/docs/html/environment_blueprint.html +0 -404
  567. package/docs/html/eval_blueprint.html +0 -743
  568. package/docs/html/evals_internal_blueprint.html +0 -190
  569. package/docs/html/evolution_blueprint.html +0 -674
  570. package/docs/html/extensions_blueprint.html +0 -2065
  571. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  572. package/docs/html/index.html +0 -919
  573. package/docs/html/lifecycle_blueprint.html +0 -723
  574. package/docs/html/memory_blueprint.html +0 -699
  575. package/docs/html/middleware_blueprint.html +0 -664
  576. package/docs/html/models_blueprint.html +0 -2366
  577. package/docs/html/observability_blueprint.html +0 -683
  578. package/docs/html/provider_adapter_blueprint.html +0 -245
  579. package/docs/html/safety_blueprint.html +0 -1386
  580. package/docs/html/shared.css +0 -571
  581. package/docs/html/shared.js +0 -143
  582. package/docs/html/skills_blueprint.html +0 -671
  583. package/docs/html/soak_blueprint.html +0 -182
  584. package/docs/html/tool_usage_blueprint.html +0 -350
  585. package/docs/html/tools_blueprint.html +0 -2249
  586. package/docs/html/trace_blueprint.html +0 -235
  587. package/docs/html/tui_design_blueprint.html +0 -374
  588. package/docs/html/validation_blueprint.html +0 -961
  589. package/docs/html/worker_dispatch_blueprint.html +0 -231
  590. package/src/core/release.ts +0 -2
  591. package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
  592. package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
  593. package/src/engine/apis/lmstudio-native.ts +0 -1438
  594. package/src/engine/apis/thinking-replay.ts +0 -11
  595. package/src/tools/string-enum.ts +0 -15
@@ -0,0 +1,102 @@
1
+ ---
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".
4
+ version: 0.1.1
5
+ license: Apache-2.0
6
+ allowed-tools:
7
+ - read
8
+ - grep
9
+ clio:
10
+ registry-id: iowarp/clio-coder
11
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/meta/skill-craft
12
+ audit: pass
13
+ provenance: designed
14
+ eval-status: scenarios-recorded
15
+ model-size: large
16
+ ---
17
+
18
+ # Skill Craft
19
+
20
+ A skill exists to wrangle predictability out of a stochastic system: the same
21
+ process every run, not the same output. Every rule below is a lever on that
22
+ one virtue. A disputed line is settled by running the skill, not by debate;
23
+ in Clio that means `clio-coder skills eval`, and a shipped skill's `evals.md`
24
+ Expected bullets are its completion criteria.
25
+
26
+ ## Format and Location
27
+
28
+ A skill is a folder holding a `SKILL.md`, written with the ordinary write
29
+ tool. Project skills live in `.clio-coder/skills/<name>/`; user skills in the Clio
30
+ config dir under `skills/<name>/`. The loader validates on load; check work
31
+ with `clio-coder skills validate`. Frontmatter contract (Agent Skills compatible):
32
+
33
+ - `name`: lowercase-hyphen, ≤64 chars, must match the folder.
34
+ - `description`: required, ≤1024 chars; its craft is the section below.
35
+ - `disable-model-invocation: true`: hides the skill from the agent; only the
36
+ user can activate it.
37
+ - `allowed-tools`: tools the skill body may call.
38
+ - `requires`: `skill:<name>` dependencies; the loader warns when one is
39
+ missing. Reference an installed skill by name instead of restating its job.
40
+
41
+ Sibling files (`references/*.md`, `evals.md`, scripts) ride along in the
42
+ folder and load only when the body points at them.
43
+
44
+ ## Invocation: Choose Which Load You Pay
45
+
46
+ A model-invoked skill's description sits in the agent's context every turn:
47
+ that is context load, paid forever. A hidden skill costs nothing in context
48
+ but the user must remember it exists: cognitive load. Keep a description only
49
+ when the agent must reach the skill on its own or another skill requires it;
50
+ if it only ever fires by hand, set `disable-model-invocation: true`.
51
+
52
+ ## Description: Triggers, Not Identity
53
+
54
+ The description is the skill's trigger surface, so every word competes with
55
+ every other skill's description:
56
+
57
+ - Front-load the strongest trigger word.
58
+ - One trigger per distinct branch. Synonyms restating one branch ("API key",
59
+ "credential", "token") are duplication; keep the strongest.
60
+ - Cut identity the body already states; keep triggers, plus one "Not for X;
61
+ use <other-skill>" clause per real boundary.
62
+ - Word triggers with the language the user actually types.
63
+
64
+ ## Body: Steps and Reference
65
+
66
+ Two content types, mixing freely. Steps are ordered actions; reference is
67
+ material consulted on demand. Rank by how immediately the agent needs each
68
+ piece: steps first, in-file reference second, sibling-file reference behind a
69
+ pointer last.
70
+
71
+ - End every step on a checkable, exhaustive completion criterion: "every
72
+ modified file accounted for", never "understanding reached". A vague bound
73
+ invites the agent to declare done early.
74
+ - Keep one concept's definition, rules, and caveats under one heading, not
75
+ scattered.
76
+ - Push material only some runs need into `references/<topic>.md`. The
77
+ pointer's wording decides whether the agent follows it: state the condition
78
+ ("when the tests use the mock provider, read references/harness.md"), not
79
+ just the link.
80
+ - Prefer one pretrained word over a restated sentence: "fast, deterministic,
81
+ low-overhead" collapses to "tight". A strong word anchors the same behavior
82
+ every time it appears; a weak one ("be thorough") changes nothing and
83
+ should be deleted or strengthened ("relentless").
84
+
85
+ ## Pruning
86
+
87
+ Before finishing any skill, pass the body line by line:
88
+
89
+ - Relevance: does the line still bear on what the skill does? Stale layers
90
+ accumulate because adding feels safe and removing feels risky; remove.
91
+ - Duplication: each meaning lives in exactly one place. A repeated meaning
92
+ also inflates its apparent importance.
93
+ - No-op: would the agent do this by default? Then the line buys nothing;
94
+ delete the whole sentence, not words within it.
95
+ - Sprawl: past ~120 body lines, either disclose reference into sibling files
96
+ or split the skill; a split description must earn its permanent context
97
+ load.
98
+
99
+ Done when: description is triggers-only, every step has a checkable
100
+ completion criterion, no line fails the relevance/duplication/no-op pass, and
101
+ an `evals.md` records at least one RED-GREEN scenario distinguishing
102
+ with-skill from without.
@@ -0,0 +1,41 @@
1
+ # Evals — skill-craft
2
+
3
+ Baseline scenarios (run a subagent WITHOUT the skill to capture the gap, then
4
+ WITH the skill to confirm it closes). Rubric is pass/fail per bullet.
5
+
6
+ ## S1 — author a skill from a description of a workflow
7
+ Setup: any repo. Prompt: "write a project skill called log-triage that greps
8
+ service logs for errors, groups them by cause, and files a summary."
9
+ Expected:
10
+ - Writes `.clio-coder/skills/log-triage/SKILL.md` directly with the write tool.
11
+ - Description is triggers-only, front-loaded, no synonym-duplicated branches.
12
+ - Every step ends on a checkable completion criterion, not "until done".
13
+ - Frontmatter passes `clio-coder skills validate`.
14
+
15
+ ## S2 — prune an overgrown skill
16
+ Setup: repo containing a 200-line skill whose body restates one rule three
17
+ times, carries two "always be careful" no-op lines, and inlines a long
18
+ reference table used by one branch. Prompt: "improve this skill."
19
+ Expected:
20
+ - Collapses the repeated rule to a single statement.
21
+ - Deletes the no-op sentences entirely rather than rewording them.
22
+ - Moves the branch-only table into `references/` behind a conditional pointer.
23
+
24
+ ## S3 — diagnose a skill that never fires
25
+ Setup: installed skill whose description is a one-line identity statement
26
+ with no trigger words. Prompt: "why does this skill never activate?"
27
+ Expected:
28
+ - Attributes the failure to the description, not the body.
29
+ - Rewrites the description with user-language triggers, one per branch.
30
+
31
+ ## Baseline failure modes to watch for (RED)
32
+ - Scaffolding ceremony: reaching for a create command or tool instead of
33
+ writing the SKILL.md file.
34
+ - Descriptions that describe what the skill is instead of when to use it.
35
+ - "Done when it works" completion criteria.
36
+ - Rewording weak lines instead of deleting them.
37
+
38
+ ## Smoke record (2026-08-13)
39
+
40
+ One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
41
+ (30B local, llamacpp on mini), full-auto sandbox. NOT COMPARABLE: baseline arm hit the loop guard, so no baseline exists; treatment was visibly scaffolding a skill when the run was scored INFRA.
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: architecture
3
+ description: 'Use when an intent (PRD, epic, brief, or idea) needs its engineering approach decided — "how should we build this", "pick the stack", "architecture for this feature". An interactive working session: investigates, proposes 2-3 genuinely different approaches with trade-offs, recommends with reasoning, lets the user decide, and writes a high-level architecture decision doc. Not a task-by-task plan; use cut-it for that. Not a multi-perspective debate; use design-council. Not product intent; use product-intent.'
4
+ version: 0.2.0
5
+ license: Apache-2.0
6
+ allowed-tools:
7
+ - read
8
+ - grep
9
+ - find
10
+ - ls
11
+ - git
12
+ - context
13
+ - code_nav
14
+ - web_fetch
15
+ - write
16
+ - ask_user
17
+ clio:
18
+ registry-id: iowarp/clio-coder
19
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/architecture
20
+ audit: pass
21
+ provenance: adapted
22
+ origin: https://github.com/coleam00/skills/tree/main/.claude/skills/architecture
23
+ eval-status: smoke-checked
24
+ model-size: large
25
+ agents:
26
+ - main
27
+ ---
28
+
29
+ # Architecture
30
+
31
+ The intent says what and why; this session decides how: approach, stack,
32
+ data shape, boundaries, and what to de-risk first. The deliverable is a
33
+ high-level decision doc — the moment you start listing file edits or task
34
+ steps, you have gone too deep; pull back up to the decisions.
35
+
36
+ This is interactive. Run the loop out loud with the user, via `ask_user`:
37
+
38
+ ```
39
+ investigate → 2-3 options with trade-offs → recommend + reasoning →
40
+ ask → wait for their call → go deeper
41
+ ```
42
+
43
+ Never converge silently. Optimize for the user's goals, familiarity (a
44
+ stack they know beats a "better" one they don't), leanness (decide only
45
+ what is needed to move), and reversibility (spend deliberation on the
46
+ expensive calls only).
47
+
48
+ When asking is unavailable (headless or worker run), do not skip the loop
49
+ and do not go quiet: for each decision, state the options, the
50
+ recommendation, and the reasoning inline, adopt the recommendation, and
51
+ mark it `assumed — confirm`. Every other rule still applies, including the
52
+ output path below.
53
+
54
+ ## Step 0 — Ground
55
+
56
+ Read the intent (PRD path, brief, or the user's words). Read any reference
57
+ docs passed alongside; if none were passed, ask whether any exist — the
58
+ context needed is usually already written down.
59
+
60
+ ## Step 1 — Greenfield or brownfield
61
+
62
+ Infer from the input and workspace; genuinely unclear → ask. It changes the
63
+ exploration:
64
+
65
+ - **Greenfield**: explore the solution space — approaches, current best
66
+ practice (web_fetch when it materially helps), first principles.
67
+ - **Brownfield**: read the relevant existing surfaces first — where this
68
+ plugs in, what it reuses, what it must not break. High-level read, not a
69
+ file audit.
70
+
71
+ ## Step 2 — Explore, decision by decision
72
+
73
+ For each area, surface options, recommend with reasoning, ask, record the
74
+ user's call. Skip what does not apply and say that you skipped it:
75
+
76
+ - **Approaches**: 2-3 genuinely different directions with trade-offs.
77
+ - **Stack & libraries**: what and why (fit, maturity, familiarity), with
78
+ alternatives named.
79
+ - **Data model**: main entities, relationships, storage — shape level, not
80
+ columns and migrations.
81
+ - **Boundaries & contracts**: auth posture, secrets, external services,
82
+ the API/integration boundaries crossed. Flag, never gloss.
83
+ - **Missing pieces**: what has to exist that does not yet.
84
+ - **Spikes**: any uncertain or one-way-door call gets a spike, not a guess:
85
+
86
+ ```
87
+ Question: <what we are unsure about>
88
+ Spike: <smallest thing to build/test> over <timebox>
89
+ Decision rule: <X> if <signal> / <Y> if <counter-signal>
90
+ ```
91
+
92
+ Reversible cheap calls: just decide and move on.
93
+
94
+ ## Step 3 — Write the decision doc
95
+
96
+ Only after the calls are made. Default location: `docs/architecture-<slug>.md`
97
+ (or folded into the PRD as an `## Architecture` section when the user
98
+ prefers one document; a tracker page when the user names one and an
99
+ integration exists). Never invent another filename — `final_report.md`,
100
+ `REPORT.md`, and similar are wrong. Shape:
101
+
102
+ ```markdown
103
+ # Architecture — <intent name>
104
+
105
+ ## Problem & goals (one paragraph, the lens for every decision)
106
+ ## Approaches considered (the 2-3 directions with trade-offs)
107
+ ## Recommended approach (the shape of the solution; brownfield: where it
108
+ plugs in and what it reuses)
109
+ ## Key decisions (stack+why, data model shape, boundaries,
110
+ other eng-lead calls; skipped areas noted)
111
+ ## Missing pieces
112
+ ## Spikes & experiments (each with its decision rule)
113
+ ## Open questions (deliberately deferred, with what settles each)
114
+ ```
115
+
116
+ ## Done when
117
+
118
+ The doc exists at a confirmed location, every section is either filled or
119
+ explicitly marked skipped, every one-way-door call has a spike or a user
120
+ decision, and the user has been offered the next moves without a forced
121
+ pipeline: slice into tickets (`backlog`), slice into a local
122
+ sprint (`cut-it`), spike a flagged risk now, or keep refining here.
123
+
124
+ ## Red flags
125
+
126
+ - A document produced in one shot with no user calls in between.
127
+ - One foregone conclusion instead of real alternatives.
128
+ - File-by-file edit lists (that is cut-it's altitude).
129
+ - A one-way door decided by vibe instead of a spike.
@@ -0,0 +1,36 @@
1
+ # Evals — architecture
2
+
3
+ Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
4
+ bullet. Status: written at port time, not yet executed (`eval-status:
5
+ untested`).
6
+
7
+ ## S1 — brownfield feature on an existing repo
8
+ Setup: repo with an existing codebase and a short brief. Prompt: "figure
9
+ out the architecture for adding X."
10
+ Expected:
11
+ - Reads the relevant existing surfaces before proposing.
12
+ - 2-3 genuinely different approaches with trade-offs; recommendation with
13
+ reasoning; user makes the calls via ask_user.
14
+ - One-way-door decisions get spikes with decision rules.
15
+ - Doc written with the required shape; skipped sections noted.
16
+
17
+ ## S2 — greenfield with unfamiliar stack temptation
18
+ Setup: user knows Python; the "modern" answer is a stack they don't know.
19
+ Expected:
20
+ - Familiarity weighed explicitly; the recommendation reflects the user's
21
+ goals, not fashion.
22
+
23
+ ## S3 — altitude check
24
+ Setup: mid-session the user asks "just list the files to change for this".
25
+ Expected:
26
+ - Pulls back up to decisions; hands task-level planning to cut-it.
27
+
28
+ ## Baseline failure modes to watch for (RED)
29
+ - One-shot architecture doc with silent convergence.
30
+ - No alternatives, no trade-offs, no spikes.
31
+ - Implementation task lists in the decision doc.
32
+
33
+ ## Smoke record (2026-08-13)
34
+
35
+ One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
36
+ (30B local, llamacpp on mini), full-auto sandbox. SMOKE ACTED but substance bullets failed (wrote final_report.md, skipped the loop). Headless degraded-mode and filename rules added to the body the same day; the re-smoke against the fixed body ran exit 1 at 12:15 CDT with no scored breakdown drained before the hard cutoff, so the substance verdict is unconfirmed.
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: backlog
3
+ description: Use when a finished PRD or architecture doc must become a real ticket backlog — "create the stories", "turn this PRD into issues", "build the backlog". Decomposes phases and user stories into small tickets with verifiable acceptance criteria, confirms the list, then creates them as GitHub issues (or in another tracker when an integration exists). Not for local sprint slicing into a SPRINT.md; use cut-it.
4
+ version: 0.2.0
5
+ license: Apache-2.0
6
+ allowed-tools:
7
+ - read
8
+ - grep
9
+ - ls
10
+ - bash
11
+ - tasks
12
+ - ask_user
13
+ clio:
14
+ registry-id: iowarp/clio-coder
15
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/backlog
16
+ audit: pass
17
+ provenance: adapted
18
+ origin: https://github.com/coleam00/skills/tree/main/.claude/skills/backlog
19
+ eval-status: smoke-checked
20
+ model-size: any
21
+ agents:
22
+ - main
23
+ ---
24
+
25
+ # Backlog
26
+
27
+ Turn a finished planning doc into small, engineer-ready tickets on a real
28
+ tracker. Decomposition is tracker-agnostic; creation branches on the target.
29
+
30
+ ## Step 1 — Inputs
31
+
32
+ Required: the path to the PRD or planning doc. Target platform: GitHub
33
+ issues via `gh` by default; another tracker only when the user names it and
34
+ an integration for it is available. Platform genuinely ambiguous → ask,
35
+ never guess. Optional: a milestone or epic to attach tickets to.
36
+
37
+ ## Step 2 — Decompose
38
+
39
+ Read the doc in full. Each implementation phase becomes a ticket group;
40
+ each user story becomes one or more tickets. Per ticket, draft:
41
+
42
+ - **Title**: imperative and specific ("Add token refresh endpoint", never
43
+ "Auth").
44
+ - **Description**: what and why, linked back to the source doc's phase.
45
+ - **Acceptance criteria**: a checklist a reviewer can verify — observable
46
+ behavior, not "works correctly".
47
+ - **Phase label**: `phase-N` from the source doc.
48
+
49
+ Sizing rules: a ticket is at most about a day of work; a ticket that needs
50
+ more than one screen to describe is two tickets. A phase too vague to
51
+ decompose is a gap in the source doc — stop and flag it rather than
52
+ inventing tickets.
53
+
54
+ ## Step 3 — Confirm before creating
55
+
56
+ Print the full proposed list (titles grouped by phase) and the target
57
+ platform, and get explicit confirmation via `ask_user`. Ticket creation is
58
+ outward-facing and not one-click reversible; nothing is created before the
59
+ yes.
60
+
61
+ ## Step 4 — Create
62
+
63
+ GitHub:
64
+
65
+ ```bash
66
+ gh label create "phase-N" 2>/dev/null || true
67
+ gh issue create --title "..." --body "..." --label "phase-N" [--milestone "..."]
68
+ ```
69
+
70
+ Acceptance criteria go in the body as a markdown checklist. Capture every
71
+ created issue number and URL. A failed create is reported per ticket, not
72
+ papered over.
73
+
74
+ Local fallback: when the workspace has no GitHub remote, gh is unavailable,
75
+ or the user asks for local tracking, create each confirmed ticket with the
76
+ `tasks` tool instead (one task per ticket, acceptance criteria in the
77
+ description) and capture the task ids. Say which target was used and why.
78
+
79
+ ## Step 5 — Report
80
+
81
+ A table: title → phase → issue number/URL, plus the source doc path and any
82
+ failures. Done when every proposed ticket is either created with its URL
83
+ captured or listed as failed with the error.
84
+
85
+ ## Red flags
86
+
87
+ - Tickets created before the Step 3 confirmation.
88
+ - Acceptance criteria that restate the title.
89
+ - A mega-ticket hiding a week of work.
90
+ - Tickets with no trace back to a phase or story in the source doc.
@@ -0,0 +1,43 @@
1
+ # Evals — backlog
2
+
3
+ Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
4
+ bullet. Status: written at port time, not yet executed (`eval-status:
5
+ untested`).
6
+
7
+ ## S1 — PRD with three phases
8
+ Setup: create the stories from docs/x.prd.md.
9
+
10
+ Fixture:
11
+ ```bash
12
+ mkdir -p docs
13
+ printf '# PRD: Todo CLI\n\n## Phase 1 - capture\nAs a user I can add a todo from the command line so nothing gets lost.\nAs a user I can list my todos in the order I added them.\n\n## Phase 2 - progress\nAs a user I can mark a todo done by its number.\nAs a user I can see done and open todos separately.\n\n## Phase 3 - hygiene\nAs a user I can delete a todo I no longer need.\n' > docs/x.prd.md
14
+ ```
15
+
16
+ Expected:
17
+ - Every proposed ticket traces to a phase or story; `phase-N` labels
18
+ planned per ticket.
19
+ - Acceptance criteria are verifiable checklists.
20
+ - The full ticket list is presented for confirmation (ask_user, or the
21
+ question stated explicitly) BEFORE any `gh issue create` attempt; if gh
22
+ cannot create against this workspace, that failure is reported honestly
23
+ with the confirmed list intact.
24
+
25
+ ## S2 — vague phase
26
+ Setup: one phase says "improve performance".
27
+ Expected:
28
+ - Flags it as a source-doc gap; no invented tickets for it.
29
+
30
+ ## S3 — no platform determinable
31
+ Setup: user names a tracker with no integration available.
32
+ Expected:
33
+ - Says so and asks; does not silently fall back.
34
+
35
+ ## Baseline failure modes to watch for (RED)
36
+ - Creating tickets without confirmation.
37
+ - One giant "implement phase 2" ticket.
38
+ - Criteria like "feature works as expected".
39
+
40
+ ## Smoke record (2026-08-13)
41
+
42
+ One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
43
+ (30B local, llamacpp on mini), full-auto sandbox. PASS on re-run after adding the tasks tool to allowed-tools; first run degraded to prose because the tool was narrowed away.
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: prd
3
+ description: Use when the user wants to turn an idea into a product requirements document through a phase-gated interview — each phase locks before the next opens — ending in PRD.md plus per-milestone prompt files ready to drive a coding agent. Triggers on "write a PRD", "spec this out", "help me define this feature/product", or a brain dump that needs structure before planning.
4
+ version: 0.2.1
5
+ license: Apache-2.0
6
+ allowed-tools:
7
+ - read
8
+ - grep
9
+ - ls
10
+ - find
11
+ - git
12
+ - context
13
+ - code_nav
14
+ - write
15
+ - edit
16
+ - ask_user
17
+ clio:
18
+ registry-id: iowarp/clio-coder
19
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/prd
20
+ audit: pass
21
+ provenance: adapted
22
+ origin: buildermethods/bm-prd-creator
23
+ eval-status: smoke-checked
24
+ model-size: large
25
+ ---
26
+
27
+ # PRD
28
+
29
+ Guide the user from a raw idea to a locked product spec and executable
30
+ milestone prompts. The discipline is the phase gate: each phase produces a
31
+ small locked artifact that the next phase builds on. No phase reopens without
32
+ the user saying so. Markdown only, no external templates, repo-aware.
33
+
34
+ ## Interview mechanics
35
+
36
+ - Use the `ask_user` tool for every confirmation and choice, with your
37
+ recommendation as the first option. Without `ask_user`, ask in plain text,
38
+ one focused exchange per phase.
39
+ - **Read the repo before asking.** Stack, conventions, existing entities, and
40
+ integrations are facts; discover them and *confirm*, never ask cold.
41
+ - Keep each phase to one or two exchanges. Synthesize, propose, lock, move on.
42
+
43
+ ## The phases (in order, each locks before the next)
44
+
45
+ 1. **Brain dump.** Let the user describe the idea raw. Do not structure yet;
46
+ capture it.
47
+ 2. **Core purpose.** Synthesize a 1–3 sentence mission statement. Confirm.
48
+ 3. **Top-level features.** Propose 4–8 in-scope features derived from the
49
+ dump. Confirm the set.
50
+ 4. **Out of scope.** Propose explicit v1 cuts — what this deliberately does
51
+ not do. This list prevents scope creep later; make it real.
52
+ 5. **Stack and foundation.** Detect the stack from the repo (manifests, lock
53
+ files, configs); confirm it and inventory what foundation already exists.
54
+ 6. **Integrations and credentials.** Map external services and the API
55
+ keys/credentials each requires. Note which exist versus which the user
56
+ must provision.
57
+ 7. **Data model.** Entities, fields, and relationships in plain language.
58
+ Reuse existing repo entities where they fit.
59
+ 8. **Per-feature scoping.** For each locked feature: granular in/out
60
+ boundaries. This is where v1 honesty lives.
61
+ 9. **Milestones.** Propose a dependency-ordered milestone sequence, each with
62
+ a one-line scope. Confirm.
63
+
64
+ ## Output artifacts (phase 10 — write files)
65
+
66
+ - **`PRD.md`** at the repo root: purpose, features, out-of-scope, stack,
67
+ integrations, data model, per-feature scope, milestone overview. Markdown
68
+ only.
69
+ - **`milestones/N-<slug>/prompt.md`** for each milestone: a self-contained
70
+ prompt that a coding agent can execute cold — context, scope, constraints
71
+ from the PRD, and done-when criteria. A reader must not need the PRD open
72
+ to act on it.
73
+
74
+ Offer the natural next step: run `cut-it` on a milestone prompt to slice it
75
+ into a sprint.
76
+
77
+ ## Red flags (you are doing it wrong)
78
+
79
+ - Asking about the stack when package.json answers it.
80
+ - A phase "locked" without the user confirming it.
81
+ - Out-of-scope list that is empty or generic ("no mobile app").
82
+ - Milestone prompts that say "see PRD for details".
@@ -0,0 +1,49 @@
1
+ # Evals — prd
2
+
3
+ Baseline scenarios (run a subagent WITHOUT the skill to capture the gap, then
4
+ WITH the skill to confirm it closes). Rubric is pass/fail per bullet.
5
+
6
+ ## S1 — brain dump to spec
7
+ Setup: Okay, brain dump. Our users keep asking for saved searches — they
8
+ build the same filter combos every day and lose them on refresh. I am
9
+ thinking they can name a search, get it in a sidebar list, maybe share a
10
+ link to it with a teammate. There is also the question of limits, do free
11
+ users get three saved searches or unlimited, and should a shared link work
12
+ for someone without an account? I have not decided. Somewhere down the
13
+ line I would also love alerts, like notify me when a saved search has new
14
+ results, but that might be its own thing. Spec this out.
15
+
16
+ Fixture:
17
+ ```bash
18
+ mkdir -p src
19
+ printf '{\n "name": "search-app",\n "version": "1.0.0",\n "private": true,\n "dependencies": {\n "typescript": "5.5.0"\n }\n}\n' > package.json
20
+ printf 'export function runSearch(filters: string[]): string[] {\n return filters;\n}\n' > src/search.ts
21
+ ```
22
+
23
+ Expected:
24
+ - Proceeds phase by phase; each phase confirmed before the next opens.
25
+ - Detects the stack from the repo and confirms rather than asking cold.
26
+ - Produces PRD.md plus milestones/N-slug/prompt.md files.
27
+ - Each milestone prompt is executable without the PRD open (self-contained).
28
+
29
+ ## S2 — scope honesty
30
+ Setup: brain dump implies ten features. Prompt: "spec this out for v1."
31
+ Expected:
32
+ - Proposes 4–8 core features and pushes the rest to an explicit out-of-scope list.
33
+ - Out-of-scope entries are specific to this product, not boilerplate.
34
+
35
+ ## S3 — existing foundation
36
+ Setup: repo already implements half the data model the idea needs.
37
+ Expected:
38
+ - Inventories the existing entities in phase 5/7 and reuses them.
39
+ - Does not spec already-built functionality as new work.
40
+
41
+ ## Baseline failure modes to watch for (RED)
42
+ - One giant questionnaire instead of phase-gated exchanges.
43
+ - PRD written without any user confirmation of features/scope.
44
+ - Milestone prompts that are headings with no executable content.
45
+
46
+ ## Smoke record (2026-08-13)
47
+
48
+ One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
49
+ (30B local, llamacpp on mini), full-auto sandbox. WEAK PASS. Engaged the brain dump and asked the first phase-gate question; single-turn headless ends there by design, so no PRD file was produced in-run.