@iowarp/clio-coder 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/CHANGELOG.md +233 -373
  2. package/CONTRIBUTING.md +23 -23
  3. package/README.md +284 -613
  4. package/dist/{acp-FPR54DGL.js → acp-P2AQILE2.js} +43 -53
  5. package/dist/{agents-OGPIHPJH.js → agents-72W3BI7I.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-2DJ2KNFG.js +2095 -0
  9. package/dist/{chunk-IS3ONKU3.js → chunk-2IR2NMPA.js} +6 -4
  10. package/dist/chunk-2SFS6XQE.js +122 -0
  11. package/dist/{chunk-PV4JUBVJ.js → chunk-2TLUCQVG.js} +40 -21
  12. package/dist/chunk-2VTFPG5O.js +48 -0
  13. package/dist/chunk-4BJ5BYCE.js +61 -0
  14. package/dist/{chunk-474KN5II.js → chunk-4BPJXDWC.js} +111 -181
  15. package/dist/chunk-4VP4KH3K.js +962 -0
  16. package/dist/chunk-4XUGQOHA.js +797 -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-4QKXUHSR.js → chunk-5UFT4SUX.js} +70 -20
  21. package/dist/{chunk-OLBBMFRD.js → chunk-5UUP6MWO.js} +24 -62
  22. package/dist/chunk-65DEGPJ6.js +52 -0
  23. package/dist/chunk-6EJMN2Y3.js +17 -0
  24. package/dist/chunk-6N5PTWMY.js +136 -0
  25. package/dist/chunk-6SGHMWE3.js +277 -0
  26. package/dist/chunk-6XLNIQDB.js +27 -0
  27. package/dist/chunk-7CR24IG7.js +242 -0
  28. package/dist/chunk-7MNJORFF.js +22 -0
  29. package/dist/{chunk-KY56HMHH.js → chunk-A3CYT5EX.js} +125 -31
  30. package/dist/chunk-AGYYIBLL.js +1069 -0
  31. package/dist/{chunk-GB6QRBXN.js → chunk-APJ265NV.js} +54 -1187
  32. package/dist/{chunk-673JJUWJ.js → chunk-BMEMKKIT.js} +2 -2
  33. package/dist/chunk-CBCAPZAA.js +229 -0
  34. package/dist/chunk-CMZWFGD2.js +352 -0
  35. package/dist/chunk-COU2UHX6.js +400 -0
  36. package/dist/chunk-DSELYM6W.js +1077 -0
  37. package/dist/chunk-DUYJ5IO6.js +644 -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-FCSXB6T2.js +338 -0
  42. package/dist/chunk-FJ3H4MN5.js +48 -0
  43. package/dist/{chunk-RPTR2H26.js → chunk-FNTMWMX5.js} +21 -15
  44. package/dist/chunk-FQ4SKYE4.js +29 -0
  45. package/dist/chunk-G4BMMOKF.js +182 -0
  46. package/dist/{chunk-ZPY3JZ5E.js → chunk-GGXXDWE4.js} +183 -1233
  47. package/dist/chunk-HC4CLZ2Y.js +68 -0
  48. package/dist/{chunk-LU4TK2PR.js → chunk-HFSBBKSQ.js} +5 -56
  49. package/dist/{chunk-PIUMUEMV.js → chunk-HKIYEGME.js} +10 -6
  50. package/dist/chunk-I4HZDVNP.js +73 -0
  51. package/dist/chunk-IKCO5N3L.js +162 -0
  52. package/dist/chunk-IR4CFBFN.js +56 -0
  53. package/dist/{chunk-R5KLMSBV.js → chunk-J5Q24KAG.js} +2 -2
  54. package/dist/chunk-J7CWMCQD.js +255 -0
  55. package/dist/{chunk-K5XEMXTI.js → chunk-JVCV3ICN.js} +1 -1
  56. package/dist/chunk-KZWTDYJF.js +217 -0
  57. package/dist/chunk-LBMZMYH2.js +285 -0
  58. package/dist/{chunk-G34LV2PF.js → chunk-LM5TQCJZ.js} +84 -170
  59. package/dist/chunk-LW6DSM3M.js +5135 -0
  60. package/dist/chunk-LWLEKMDQ.js +3482 -0
  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-FST4FYJB.js → chunk-MFFY33HR.js} +99 -140
  64. package/dist/{chunk-BSU2YIWB.js → chunk-MVVUPGPW.js} +131 -136
  65. package/dist/chunk-OAO4GE4M.js +619 -0
  66. package/dist/{chunk-Q3RUPKEJ.js → chunk-OC7FIQPC.js} +58 -189
  67. package/dist/chunk-OKGUZO2U.js +34 -0
  68. package/dist/{chunk-GAEBEQVI.js → chunk-OOJYHWRB.js} +32 -346
  69. package/dist/{chunk-Q5WJOSJ7.js → chunk-OQ33BKR3.js} +2 -1
  70. package/dist/chunk-OQE5J4C6.js +73 -0
  71. package/dist/{chunk-KKNLWXI6.js → chunk-ORBHGJC5.js} +8 -8
  72. package/dist/{chunk-MAR7Y6HW.js → chunk-PAJK6MAQ.js} +23 -16
  73. package/dist/{chunk-M5T5VO65.js → chunk-PIWWS5BL.js} +837 -635
  74. package/dist/chunk-POHLU5DW.js +1186 -0
  75. package/dist/chunk-QKMUKYO7.js +4961 -0
  76. package/dist/chunk-SRDMMSEP.js +16405 -0
  77. package/dist/chunk-SST6Z5JA.js +80 -0
  78. package/dist/chunk-STBPMHSX.js +2456 -0
  79. package/dist/chunk-T6YILFSB.js +80 -0
  80. package/dist/chunk-TZK7PACC.js +174 -0
  81. package/dist/chunk-TZTZS7QK.js +227 -0
  82. package/dist/{chunk-ASND7OZK.js → chunk-UFIIWP2H.js} +13 -13
  83. package/dist/chunk-UOV2BYIW.js +107 -0
  84. package/dist/{chunk-PFEFKVGL.js → chunk-V6RTAOC2.js} +13 -11
  85. package/dist/chunk-VAKQQHWR.js +434 -0
  86. package/dist/chunk-VG7TBQIY.js +128 -0
  87. package/dist/chunk-VJWL6YS5.js +244 -0
  88. package/dist/{chunk-EYOKLTMF.js → chunk-VPAYEGVX.js} +17 -3
  89. package/dist/chunk-WEH5XRJQ.js +32 -0
  90. package/dist/chunk-X4RCMKVQ.js +641 -0
  91. package/dist/{chunk-TEKV33Q5.js → chunk-X6IAEBZR.js} +65 -33
  92. package/dist/chunk-XBXAASKX.js +18 -0
  93. package/dist/chunk-XN3L4EYL.js +46 -0
  94. package/dist/{chunk-RDLVBZEO.js → chunk-YCWGATWI.js} +6 -4
  95. package/dist/chunk-YHZX5GEU.js +193 -0
  96. package/dist/chunk-YXLYO42X.js +91 -0
  97. package/dist/{chunk-NMOX6HFD.js → chunk-ZDOOVTXZ.js} +29 -77
  98. package/dist/chunk-ZI647VB5.js +37 -0
  99. package/dist/{chunk-C4PTHK7P.js → chunk-ZWLZP4ZT.js} +5 -5
  100. package/dist/chunk-ZWMF7253.js +1882 -0
  101. package/dist/cli/index.js +62 -54
  102. package/dist/clio-JOU4FXVA.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-XCDVKR23.js} +92 -55
  108. package/dist/configure-4GAP54ZW.js +42 -0
  109. package/dist/{context-5RADCKTR.js → context-4UOGGLQ5.js} +71 -35
  110. package/dist/context-5VKGUVJJ.js +866 -0
  111. package/dist/{context-3KWFLHJG.js → context-77FM5DV5.js} +15 -13
  112. package/dist/{context-clear-7TSNPAAI.js → context-clear-XXJRLCJJ.js} +54 -28
  113. package/dist/{context-index-W4RLWOQH.js → context-index-BZ4UYMTC.js} +30 -24
  114. package/dist/dispatch-runner-QPRDDBDX.js +1997 -0
  115. package/dist/{docs-5AWSPS37.js → docs-2C2LTVT2.js} +23 -10
  116. package/dist/{doctor-UC5NAJYQ.js → doctor-HR46URBJ.js} +27 -17
  117. package/dist/{eval-U6TJHRLX.js → eval-XSSNATB4.js} +29 -16
  118. package/dist/{evidence-YEGUW4L3.js → evidence-6HG2PY2B.js} +46 -26
  119. package/dist/{evolve-TXARCTPG.js → evolve-K7YU3NCY.js} +45 -25
  120. package/dist/{extensions-OZFJ3A3G.js → extensions-QVDOHDGJ.js} +16 -7
  121. package/dist/{fleet-6G3DHNYE.js → fleet-VY3HHKN6.js} +163 -54
  122. package/dist/{fleet-preflight-DSNT37JK.js → fleet-preflight-DDN536IT.js} +7 -4
  123. package/dist/{init-KZ5QTF6M.js → init-JYGXI3FK.js} +69 -32
  124. package/dist/{memory-73ESV5YC.js → memory-WFZMGYHX.js} +48 -27
  125. package/dist/{models-A4PVNWJK.js → models-I5QWSEOM.js} +39 -25
  126. package/dist/monitor-GE4ID3IA.js +661 -0
  127. package/dist/{chunk-FCIH3BIZ.js → orchestrator-EM5MC3HM.js} +15979 -12407
  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-ZU3QMZPZ.js} +101 -61
  132. package/dist/{share-YIFFV4NQ.js → share-S5BZQC5I.js} +15 -8
  133. package/dist/{skills-2V6RA3OQ.js → skills-X5VXCRNQ.js} +34 -14
  134. package/dist/{skills-eval-S2TVJO4F.js → skills-eval-WKIHWTHR.js} +70 -34
  135. package/dist/steer-GGWFUJUD.js +77 -0
  136. package/dist/{targets-TYXLPB23.js → targets-SNCPI2NR.js} +43 -27
  137. package/dist/terminal-lease-BNAHVHBS.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-JQHHPQ4K.js} +45 -25
  142. package/dist/{usage-ZAFSXKKG.js → usage-OR4O5SMZ.js} +62 -31
  143. package/dist/verify-375KUB3Y.js +716 -0
  144. package/dist/web-fetch-2YHJ3KTG.js +638 -0
  145. package/dist/{wiki-generate-NUQCVOQ3.js → wiki-generate-UEXP2ARI.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 +387 -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 +45 -9
  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 +715 -278
  444. package/src/interactive/chat-renderer.ts +306 -85
  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 +253 -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 +42 -22
  456. package/src/interactive/footer-panel.ts +8 -3
  457. package/src/interactive/format-time.ts +14 -2
  458. package/src/interactive/interactive-application.ts +203 -17
  459. package/src/interactive/interactive-event-projection.ts +18 -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 +184 -117
  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/ask-user.ts +146 -24
  474. package/src/interactive/overlays/decisions.ts +300 -0
  475. package/src/interactive/overlays/help-reference.ts +15 -10
  476. package/src/interactive/overlays/model-selector.ts +34 -16
  477. package/src/interactive/overlays/session-selector.ts +18 -0
  478. package/src/interactive/overlays/settings.ts +105 -17
  479. package/src/interactive/overlays/skills-hub.ts +4 -4
  480. package/src/interactive/overlays/tree-selector.ts +41 -6
  481. package/src/interactive/render-trace.ts +499 -90
  482. package/src/interactive/renderers/compaction-summary.ts +2 -2
  483. package/src/interactive/renderers/diff.ts +115 -104
  484. package/src/interactive/renderers/mermaid.ts +53 -0
  485. package/src/interactive/renderers/tool-execution.ts +516 -168
  486. package/src/interactive/renderers/worker-entry.ts +20 -4
  487. package/src/interactive/session-switch-settlement.ts +10 -0
  488. package/src/interactive/slash-autocomplete.ts +6 -114
  489. package/src/interactive/slash-commands.ts +135 -47
  490. package/src/interactive/slash-spec.ts +9 -38
  491. package/src/interactive/status/controller.ts +5 -1
  492. package/src/interactive/status/index.ts +12 -1
  493. package/src/interactive/status/reasoning.ts +87 -0
  494. package/src/interactive/status/summary.ts +13 -2
  495. package/src/interactive/stdout-backpressure.ts +99 -0
  496. package/src/interactive/stream-pacer.ts +530 -0
  497. package/src/interactive/stream-pacing-policy.ts +66 -0
  498. package/src/interactive/tasks-overlay.ts +368 -14
  499. package/src/interactive/terminal-lease.ts +485 -0
  500. package/src/interactive/theme/tokens.ts +1 -1
  501. package/src/interactive/transcript-detail.ts +120 -0
  502. package/src/interactive/turn-context.ts +4 -3
  503. package/src/interactive/turn-persistence.ts +30 -13
  504. package/src/interactive/turn-queues.ts +12 -0
  505. package/src/interactive/turn-recovery.ts +25 -8
  506. package/src/interactive/turn-runtime.ts +79 -12
  507. package/src/interactive/turn-state.ts +10 -0
  508. package/src/interactive/view/artifacts.ts +114 -4
  509. package/src/interactive/view/view-overlay.ts +3 -0
  510. package/src/interactive/welcome-dashboard.ts +17 -16
  511. package/src/interactive/worker-receipts.ts +52 -3
  512. package/src/interactive/worker-stream.ts +5 -1
  513. package/src/tools/agent-tools.ts +23 -3
  514. package/src/tools/artifact.ts +2 -2
  515. package/src/tools/ask-user.ts +23 -13
  516. package/src/tools/bash.ts +30 -2
  517. package/src/tools/bootstrap.ts +34 -431
  518. package/src/tools/builtin-tool-catalog.ts +271 -0
  519. package/src/tools/codewiki/code-nav-surface.ts +29 -0
  520. package/src/tools/codewiki/code-nav.ts +8 -22
  521. package/src/tools/codewiki/shared.ts +41 -38
  522. package/src/tools/context/docs-engine.ts +14 -3
  523. package/src/tools/context/index.ts +107 -28
  524. package/src/tools/context/surface.ts +19 -0
  525. package/src/tools/core-bootstrap.ts +168 -0
  526. package/src/tools/credential-present.ts +5 -5
  527. package/src/tools/dispatch-admission.ts +533 -0
  528. package/src/tools/dispatch-background.ts +54 -0
  529. package/src/tools/dispatch-event-text.ts +6 -0
  530. package/src/tools/dispatch-plan.ts +9 -4
  531. package/src/tools/dispatch-run-events.ts +238 -0
  532. package/src/tools/dispatch-runner.ts +2370 -0
  533. package/src/tools/dispatch-scout-admission.ts +295 -0
  534. package/src/tools/dispatch-types.ts +77 -0
  535. package/src/tools/dispatch.ts +67 -3161
  536. package/src/tools/find.ts +4 -2
  537. package/src/tools/grep.ts +2 -2
  538. package/src/tools/lazy-tool.ts +60 -0
  539. package/src/tools/ledger.ts +3 -3
  540. package/src/tools/monitor-surface.ts +36 -0
  541. package/src/tools/monitor.ts +2 -32
  542. package/src/tools/observers.ts +2 -2
  543. package/src/tools/presentation.ts +107 -0
  544. package/src/tools/registry.ts +45 -27
  545. package/src/tools/safe-exec.ts +2 -2
  546. package/src/tools/steer-surface.ts +17 -0
  547. package/src/tools/steer.ts +2 -13
  548. package/src/tools/tasks.ts +108 -11
  549. package/src/tools/truncate.ts +25 -184
  550. package/src/tools/verify/frontend.ts +3 -1
  551. package/src/tools/verify/index.ts +3 -38
  552. package/src/tools/verify/surface.ts +46 -0
  553. package/src/tools/web-fetch-surface.ts +23 -0
  554. package/src/tools/web-fetch.ts +2 -20
  555. package/src/tools/write.ts +7 -2
  556. package/src/worker/entry.ts +39 -2
  557. package/src/worker/spec-contract.ts +26 -5
  558. package/dist/chunk-7SS2CTV2.js +0 -61361
  559. package/dist/chunk-DKGKUHFA.js +0 -924
  560. package/dist/chunk-GEP36Y4X.js +0 -12796
  561. package/dist/chunk-XYWBQRDM.js +0 -137
  562. package/dist/clio-BZVGEUFJ.js +0 -58
  563. package/dist/configure-S7S6F6CL.js +0 -32
  564. package/docs/html/agents_blueprint.html +0 -936
  565. package/docs/html/alcf_blueprint.html +0 -324
  566. package/docs/html/architecture_blueprint.html +0 -850
  567. package/docs/html/commands_blueprint.html +0 -939
  568. package/docs/html/config_knobs_audit_blueprint.html +0 -178
  569. package/docs/html/configuration_blueprint.html +0 -1080
  570. package/docs/html/context_blueprint.html +0 -603
  571. package/docs/html/documentation_blueprint.html +0 -832
  572. package/docs/html/environment_blueprint.html +0 -404
  573. package/docs/html/eval_blueprint.html +0 -743
  574. package/docs/html/evals_internal_blueprint.html +0 -190
  575. package/docs/html/evolution_blueprint.html +0 -674
  576. package/docs/html/extensions_blueprint.html +0 -2065
  577. package/docs/html/fleet_dispatch_blueprint.html +0 -286
  578. package/docs/html/index.html +0 -919
  579. package/docs/html/lifecycle_blueprint.html +0 -723
  580. package/docs/html/memory_blueprint.html +0 -699
  581. package/docs/html/middleware_blueprint.html +0 -664
  582. package/docs/html/models_blueprint.html +0 -2366
  583. package/docs/html/observability_blueprint.html +0 -683
  584. package/docs/html/provider_adapter_blueprint.html +0 -245
  585. package/docs/html/safety_blueprint.html +0 -1386
  586. package/docs/html/shared.css +0 -571
  587. package/docs/html/shared.js +0 -143
  588. package/docs/html/skills_blueprint.html +0 -671
  589. package/docs/html/soak_blueprint.html +0 -182
  590. package/docs/html/tool_usage_blueprint.html +0 -350
  591. package/docs/html/tools_blueprint.html +0 -2249
  592. package/docs/html/trace_blueprint.html +0 -235
  593. package/docs/html/tui_design_blueprint.html +0 -374
  594. package/docs/html/validation_blueprint.html +0 -961
  595. package/docs/html/worker_dispatch_blueprint.html +0 -231
  596. package/src/core/release.ts +0 -2
  597. package/src/domains/providers/runtimes/common/lmstudio-logger.ts +0 -32
  598. package/src/domains/providers/runtimes/local-native/lmstudio-native.ts +0 -491
  599. package/src/engine/apis/lmstudio-native.ts +0 -1438
  600. package/src/engine/apis/thinking-replay.ts +0 -11
  601. package/src/tools/string-enum.ts +0 -15
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: product-intent
3
+ description: Use at the start of a greenfield product effort, when the user wants a problem-first product document — "why are we building this", "write the product thesis", "PRD for this idea". Interviews for the problem, evidence, and a falsifiable hypothesis; writes an intent-only PRD with zero engineering decisions. Not for engineering decisions; use architecture. Not for turning a locked idea into milestone build prompts; use prd.
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
+ - write
14
+ - ask_user
15
+ clio:
16
+ registry-id: iowarp/clio-coder
17
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/product-intent
18
+ audit: pass
19
+ provenance: adapted
20
+ origin: https://github.com/coleam00/skills/tree/main/.claude/skills/product-intent
21
+ eval-status: smoke-checked
22
+ model-size: large
23
+ agents:
24
+ - main
25
+ ---
26
+
27
+ # Product Intent
28
+
29
+ A PRD is intent: the problem and the hypothesis about solving it, in a form a
30
+ team can challenge before building and judge after shipping. Engineering
31
+ decisions (library, data model, boundaries) never enter it; they belong to
32
+ `architecture`.
33
+
34
+ Two hard guards, checked before writing anything:
35
+
36
+ 1. **Intent-framed.** If only one solution could fit your problem statement,
37
+ you wrote a spec, not a PRD. "Give users a way to group related replies"
38
+ passes; "add a reply button" fails.
39
+ 2. **Never invent requirements.** Anything unknown ships as
40
+ "TBD — needs validation", verbatim, never as a plausible guess.
41
+
42
+ ## Step 0 — Ground in evidence
43
+
44
+ If the user passed reference docs (interviews, support tickets, analytics,
45
+ competitor notes), read them first and treat them as evidence. If none were
46
+ passed, ask whether any exist before interviewing.
47
+
48
+ ## The interview
49
+
50
+ Ask in clusters via `ask_user`, and GATE: post the cluster, stop, wait for
51
+ answers. Never answer your own questions, never roll into the next phase in
52
+ the same turn. Thin answers get reflected back and dug into.
53
+
54
+ If the user declines the interview ("just write it"): honor it, name what
55
+ you will have to leave TBD, ask only the two or three highest-leverage
56
+ questions, and mark everything else "TBD — needs validation".
57
+
58
+ 1. **Initiate.** Input given → restate and confirm. Blank → "What do you
59
+ want to build? A few sentences." GATE.
60
+ 2. **Foundation.** Who has the problem (a specific role, not "users")? What
61
+ is the observable pain? How do they cope today (workaround, competitor,
62
+ tolerating)? Why now? And the switch test: do you solve it so much better
63
+ they leave their current cope? No switch case → no product yet; say so.
64
+ GATE.
65
+ 3. **Users.** One-sentence vision · primary user (role, context, trigger) ·
66
+ job-to-be-done ("When [situation], I want [motivation], so I can
67
+ [outcome]") · explicit non-users · constraints. GATE.
68
+ 4. **Hypothesis.** Co-write the falsifiable bet. The WRONG condition is the
69
+ most-skipped line and the one that makes it a hypothesis:
70
+
71
+ ```
72
+ We believe [change] will cause [users] to [do Y], resulting in [outcome].
73
+ RIGHT if [leading signal] within [timeframe].
74
+ WRONG if [counter-signal / a guardrail moves].
75
+ ```
76
+
77
+ No hypothesis ships without a WRONG condition. GATE.
78
+ 5. **MVP and doors.** MVP = the thinnest end-to-end line that proves the
79
+ hypothesis right or wrong, not "the product, smaller". Mark each major
80
+ call two-way door (reversible → just build) or one-way door (expensive to
81
+ undo → flag for a spike in architecture). GATE before generating.
82
+
83
+ Optional pressure test when useful: value (do they want it more than their
84
+ cope?), usability, feasibility, viability. Most ideas over-argue feasibility
85
+ and under-argue value.
86
+
87
+ ## Generate
88
+
89
+ Write to `docs/<kebab-slug>.prd.md` (slug from the core idea; repo root if
90
+ no `docs/`; a user-supplied path always wins). Never hardcode `PRD.md` — a
91
+ second PRD must not overwrite the first. Sections, scannable, product only:
92
+
93
+ 1. **Problem statement** — who, what pain, cost of not solving it.
94
+ 2. **Evidence** — quote/data/observation, or "Assumption — validate via
95
+ [method]".
96
+ 3. **Thesis** — why this, why now, why it beats the current cope.
97
+ 4. **Hypothesis** — the RIGHT/WRONG block, verbatim.
98
+ 5. **Target user & JTBD** — plus non-users.
99
+ 6. **MVP** — the thinnest proving line.
100
+ 7. **Success metrics** — outcome-shaped: metric · target · how measured.
101
+ "Engagement" is not a metric.
102
+ 8. **Non-goals.**
103
+ 9. **Open questions** — named checkboxes, never hidden.
104
+
105
+ ## Done when
106
+
107
+ The file exists; the summary to the user leads with thesis and hypothesis,
108
+ counts evidenced-vs-assumed claims and open questions; and the next step is
109
+ offered: `architecture` for the engineering decisions this PRD
110
+ deliberately left open. Failing any of the five tests below means not done:
111
+ evidence-grounded problem · hypothesis with separate RIGHT and WRONG ·
112
+ outcome-shaped metrics · explicit non-goals · zero engineering decisions.
@@ -0,0 +1,36 @@
1
+ # Evals — product-intent
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 — greenfield idea
8
+ Prompt: "I want to build a log-triage tool for HPC operators, write the PRD."
9
+ Expected:
10
+ - Interviews in gated clusters; never answers its own questions.
11
+ - Hypothesis block has both RIGHT and WRONG conditions.
12
+ - Output lands at `docs/<slug>.prd.md`, not `PRD.md`.
13
+ - Zero engineering decisions (no stack, no schema, no libraries).
14
+ - Unknowns say "TBD — needs validation", not invented requirements.
15
+
16
+ ## S2 — user declines the interview
17
+ Prompt: "skip the questions, just write it."
18
+ Expected:
19
+ - Asks only 2-3 highest-leverage questions, names what goes TBD.
20
+ - No fabricated evidence or metrics.
21
+
22
+ ## S3 — solution-shaped request
23
+ Prompt: "PRD for adding a reply button."
24
+ Expected:
25
+ - Reframes to the underlying problem; the problem statement admits more
26
+ than one solution.
27
+
28
+ ## Baseline failure modes to watch for (RED)
29
+ - One-shot PRD generated from thin air.
30
+ - Hypothesis with no WRONG condition.
31
+ - "React + Postgres" appearing anywhere in the document.
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. PASS. Interview degraded gracefully headless; PRD written to docs/, judge 5/5.
@@ -0,0 +1,115 @@
1
+ ---
2
+ name: tech-spec
3
+ description: Write a typed call-stack architecture handoff — code-shaped contracts plus execution flows, implementation-ready for another engineer. User-invoked only.
4
+ version: 0.1.0
5
+ license: Apache-2.0
6
+ disable-model-invocation: true
7
+ allowed-tools:
8
+ - read
9
+ - grep
10
+ - find
11
+ - ls
12
+ - git
13
+ - context
14
+ - code_nav
15
+ - write
16
+ - ask_user
17
+ requires:
18
+ - skill:tdd
19
+ clio:
20
+ registry-id: iowarp/clio-coder
21
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/planning/tech-spec
22
+ audit: pass
23
+ provenance: adapted
24
+ origin: https://github.com/dmmulroy/skills/tree/main/tech-spec
25
+ eval-status: smoke-checked
26
+ model-size: large
27
+ provisional: true
28
+ agents:
29
+ - main
30
+ ---
31
+
32
+ # Tech Spec
33
+
34
+ A tech spec is a typed call-stack architecture handoff: contracts as
35
+ TypeScript pseudocode plus end-to-end execution flows. Prose explains why;
36
+ types and call stacks define what changes. Design only — never implement,
37
+ and save a file only when the user asks; otherwise return the spec inline.
38
+
39
+ ## Choose the path
40
+
41
+ - **Path A — convert context to spec**: the conversation, docs, or codebase
42
+ already describe the change.
43
+ - **Path B — interview first**: not enough problem, constraints, or
44
+ acceptance criteria exist. Say so, then interview one question at a time
45
+ with a recommended answer per question (the grill-me posture); anything
46
+ answerable by exploring the codebase is explored, not asked. When context
47
+ suffices, run Path A. Never invent requirements to skip the interview.
48
+
49
+ ## Path A
50
+
51
+ 1. **Load local context.** Inspect existing code and docs for vocabulary,
52
+ module layout, error style, adapters, test conventions. Done when the
53
+ spec introduces no pattern, library, or schema style without checking
54
+ local precedent.
55
+ 2. **Extract the design problem.** Current state, problem, callers, goals,
56
+ non-goals, constraints, invariants, affected systems, entrypoints,
57
+ risks. Unknowns become open questions, never plausible filler. Done when
58
+ every claimed constraint traces to conversation, code, docs, or an open
59
+ question.
60
+ 3. **Explore alternatives.** 2-3 designs differing materially — interface
61
+ shape, seam placement, ownership, call stack, module boundaries — not
62
+ just names. Sketch each: domain types, interfaces, failure types, seams,
63
+ entrypoint-to-effect call stack, test strategy, trade-offs. Compare on
64
+ caller burden, module depth, locality of change, seam placement,
65
+ testability through real seams, complexity. Done when the
66
+ recommendation is chosen after the comparison, not before.
67
+ 4. **Specify the contracts.** For the recommended design, every new,
68
+ changed, or deleted type, signature, interface, error union, adapter,
69
+ DTO, and API gets a concrete sketch — or an explicit reason no new
70
+ contract is needed. Name what each layer may know and what must not
71
+ leak across each seam.
72
+ 5. **Specify call stacks.** Every affected behavior gets an entrypoint →
73
+ side-effect → response trace with the type/data flow (`raw input →
74
+ parser → domain input → service → adapter → typed result → projection →
75
+ output`), current-vs-proposed when changing behavior, and failure /
76
+ retry / idempotency flow where reachable.
77
+ 6. **Map files.** Files to add, change, delete; test files; config or
78
+ migration files. Each maps to the contract or call-stack step it owns.
79
+ 7. **Write the TDD plan.** Vertical red-green slices per the `tdd` skill:
80
+ one failing behavior test, minimal implementation, repeat. Cover happy
81
+ paths, failure paths, parser rejection, invariants, changed seams — or
82
+ state why a path is deliberately untested.
83
+
84
+ ## Spec outline
85
+
86
+ Use this shape (omit sections that truly do not apply, but never omit
87
+ contracts, seams, call stacks, or the test plan for being hard):
88
+
89
+ ```md
90
+ # <Title>
91
+ ## Summary · Context / Current State · Goals · Non-Goals · Invariants ·
92
+ ## Design Constraints
93
+ ## Alternatives Considered (Option 1..3)
94
+ ## Recommendation · Proposed Design
95
+ ## Domain Model and Types · Types, Interfaces, and APIs
96
+ ## Seams, Boundaries, Adapters, and Implementations
97
+ ## Call Stacks and Data Flow (current / proposed / failure / retry)
98
+ ## Files to Add / Change / Delete
99
+ ## TDD Test Plan
100
+ ## Risks and Open Questions
101
+ ```
102
+
103
+ ## Done when
104
+
105
+ The spec follows the outline, every boundary has a typed contract or a
106
+ stated reason it needs none, every behavior has a call stack, unknowns are
107
+ open questions rather than invented design, and nothing was implemented.
108
+
109
+ ## Red flags
110
+
111
+ - Prose where a type signature would be more precise.
112
+ - A recommendation written before the alternatives.
113
+ - Speculative seams no invariant, boundary, or test earns.
114
+ - The same rule restated in three sections.
115
+ - "While I'm here" implementation.
@@ -0,0 +1,47 @@
1
+ # Evals — tech-spec
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`); skill is marked provisional and user-invoked only.
6
+
7
+ ## S1 — sufficient context (Path A)
8
+ Setup: write a tech spec for adding per-client rate limiting to the ingest
9
+ endpoint in src/ingest.js; limits should be configurable and violations
10
+ must return 429 without dropping the connection.
11
+
12
+ Fixture:
13
+ ```bash
14
+ mkdir -p src
15
+ printf 'const http = require("http");\nconst { parseEvent } = require("./parse-event.js");\n\nconst INGEST_ROUTE = "ingest";\n\nfunction createIngestServer(store) {\n return http.createServer((req, res) => {\n if (req.url.slice(1) !== INGEST_ROUTE || req.method !== "POST") {\n res.writeHead(404);\n res.end();\n return;\n }\n let body = "";\n req.on("data", (chunk) => { body += chunk; });\n req.on("end", () => {\n const parsed = parseEvent(body);\n if (parsed.err) {\n res.writeHead(400);\n res.end(JSON.stringify({ error: parsed.err }));\n return;\n }\n store.append(parsed.value);\n res.writeHead(202);\n res.end();\n });\n });\n}\n\nmodule.exports = { createIngestServer };\n' > src/ingest.js
16
+ printf 'function parseEvent(raw) {\n try {\n const value = JSON.parse(raw);\n if (typeof value.client !== "string") return { err: "missing client" };\n return { err: null, value };\n } catch {\n return { err: "invalid json" };\n }\n}\n\nmodule.exports = { parseEvent };\n' > src/parse-event.js
17
+ ```
18
+
19
+ Expected:
20
+ - Local conventions inspected before any pattern is proposed.
21
+ - 2-3 materially different alternatives compared before recommending.
22
+ - Typed contracts for every new/changed boundary; call stacks with data
23
+ flow; file map; vertical TDD plan.
24
+ - Nothing implemented; spec returned inline (no file unless asked).
25
+
26
+ ## S2 — thin context (Path B)
27
+ Setup: user asks for a spec with only a vague sentence.
28
+ Expected:
29
+ - States context is insufficient; interviews one question at a time with
30
+ recommended answers; explores the codebase instead of asking what code
31
+ answers.
32
+ - Converts to Path A only when context suffices.
33
+
34
+ ## S3 — unknowns
35
+ Setup: a dependency's behavior is genuinely unknown.
36
+ Expected:
37
+ - Recorded as an open question, not filled with plausible design.
38
+
39
+ ## Baseline failure modes to watch for (RED)
40
+ - Prose-only spec with no typed contracts or call stacks.
41
+ - Single foregone design presented as "the" answer.
42
+ - Implementation snuck in.
43
+
44
+ ## Smoke record (2026-08-13)
45
+
46
+ One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
47
+ (30B local, llamacpp on mini), full-auto sandbox. PASS. Spec written and its claims exercised with node -e; judge 4/4.
@@ -0,0 +1,136 @@
1
+ # Pinned marketplace skill content hashes (provenance-stripped sha256).
2
+ # Generated by `npm run skills:pin`. At activation, an installed skill
3
+ # carrying registry-id provenance is compared against its pinned hash;
4
+ # a mismatch surfaces a drift warning.
5
+ skills:
6
+ # ── coding ──
7
+ - name: ast-grep
8
+ path: coding/ast-grep
9
+ version: 0.1.0
10
+ sha256: 24ed3d9490e0923eec1321cb334ae6315194975be1694a243d0d4f45590b586f
11
+ - name: coding-standards
12
+ path: coding/coding-standards
13
+ version: 0.1.0
14
+ sha256: bd906dad6f244c82e3641078964bf69f56b5b36cb692d6e7c09555555451d893
15
+ - name: prototype
16
+ path: coding/prototype
17
+ version: 0.2.0
18
+ sha256: 243258c7ad15a016d930927181912b4282bf84e698c05beaa03b48be1f6fdb66
19
+ - name: tdd
20
+ path: coding/tdd
21
+ version: 0.2.0
22
+ sha256: da6c7feb5a56d31d111c0e0f1b795f9c0e9012270e4bbc2a35d32b30cbfa9851
23
+ # ── context ──
24
+ - name: context-handoff
25
+ path: context/context-handoff
26
+ version: 0.3.1
27
+ sha256: 2dc67e24a88607dbedb12163d8afd412421b004df7a845e301accc4e908e18ff
28
+ - name: context-prime
29
+ path: context/context-prime
30
+ version: 0.2.2
31
+ sha256: 1228302e03b86bcf829ac0016441f408f78b05c4658085d65628cf05fd282f8b
32
+ # ── git ──
33
+ - name: file-ticket
34
+ path: git/file-ticket
35
+ version: 0.1.0
36
+ sha256: 0532ac43ffacbfe3cbc681e68b2cbb7816751d9041b6f1f365e3d43a106a0e91
37
+ - name: fix-issue
38
+ path: git/fix-issue
39
+ version: 0.1.0
40
+ sha256: 2c1a7d9c252dd8e0c9512b9610e1c467020fd2948d8d189d594e33e87e2d6fce
41
+ - name: resolve-merge-conflicts
42
+ path: git/resolve-merge-conflicts
43
+ version: 0.2.0
44
+ sha256: 7974a394b560de7e8995a59e7f15fbbb7d6481d2cfdf12238d854cb9278675a0
45
+ - name: ship
46
+ path: git/ship
47
+ version: 0.1.0
48
+ sha256: 58b76f46629562310f833beb2adebe3cc91a078d2d84523608797ee1b53bb445
49
+ - name: worktree-create
50
+ path: git/worktree-create
51
+ version: 0.2.0
52
+ sha256: 9a22d1e0b5bce8f439f4f757ff47f7ec43a94bb80af87f6834d29644d1334e23
53
+ - name: worktree-merge
54
+ path: git/worktree-merge
55
+ version: 0.2.0
56
+ sha256: 407a31fc1e5e21b7aae2af39d09886944272ae8bef5ceed85711ad88122360ed
57
+ # ── meta ──
58
+ - name: clio-dev
59
+ path: meta/clio-dev
60
+ version: 0.2.0
61
+ sha256: 386ebfdac9379ebf5630fa7a9af259bb45f473f7d3d679b0a7ef4164f5fc4dea
62
+ - name: clio-test
63
+ path: meta/clio-test
64
+ version: 0.1.3
65
+ sha256: 99683ea7d7bf5bf57788e58ee6c66e01a4e30ec8d3d7d0a1f8b2b85caff4ae5a
66
+ - name: credentials
67
+ path: meta/credentials
68
+ version: 0.1.2
69
+ sha256: 3730d1492742922981c87643c878b36e927d8745080d3cb99dfa2c0374322c91
70
+ - name: find-skills
71
+ path: meta/find-skills
72
+ version: 0.1.1
73
+ sha256: c0be6f4198f490930d9370d3a778ae6e64fed0250720f0ff66c08a0e41e838cc
74
+ - name: herdr
75
+ path: meta/herdr
76
+ version: 0.1.0
77
+ sha256: 147ddba47c4bd99844a896858b5ec483aa3df46fbcfadf8226115ba4bf51456b
78
+ - name: skill-craft
79
+ path: meta/skill-craft
80
+ version: 0.1.1
81
+ sha256: ec67b2dd6c4684886eed3c0c2204cba783b1d7b691f2234ebad5e9ab58caf754
82
+ # ── planning ──
83
+ - name: architecture
84
+ path: planning/architecture
85
+ version: 0.2.0
86
+ sha256: e43e306e49adcc788d71eb534e425e34b13eea8d181a2af38d511308ede39b43
87
+ - name: backlog
88
+ path: planning/backlog
89
+ version: 0.2.0
90
+ sha256: 12c19d24bfac5356089fb225404aa33635b96b4d53bef20751f3389be8680423
91
+ - name: prd
92
+ path: planning/prd
93
+ version: 0.2.1
94
+ sha256: bc23b47c94ce40df338b8e775f1992fd602f55636548acbb690fffce2f94efa5
95
+ - name: product-intent
96
+ path: planning/product-intent
97
+ version: 0.2.0
98
+ sha256: 17566702dfb367e9aec1f162a7063b87051af08803be953738a8079f2ab559ed
99
+ - name: tech-spec
100
+ path: planning/tech-spec
101
+ version: 0.1.0
102
+ sha256: 86b3d72a6c2e155e43bdebf6687b039f3a7443ae55fc765814e62241b1e3e47c
103
+ # ── research ──
104
+ - name: arxiv-literature
105
+ path: research/arxiv-literature
106
+ version: 0.3.0
107
+ sha256: 08e5c6591e28d6195e4a612b3323bcb63eed93b8e07e54515b6417b11780f8b8
108
+ - name: experiment-protocol
109
+ path: research/experiment-protocol
110
+ version: 0.1.2
111
+ sha256: 3af25cbcbd1adc37e3a1290cb975e0c2441f347c03148512b38c4f987f3c9c8e
112
+ - name: scientific-debugging
113
+ path: research/scientific-debugging
114
+ version: 0.1.2
115
+ sha256: a9d7e2153c18ec93b00c5b58fd1842201de3c75f7cbea051ae2faac777055520
116
+ - name: scientific-modernization
117
+ path: research/scientific-modernization
118
+ version: 0.2.0
119
+ sha256: df5aa24fd478c10faac65d0cc9623cfd55ef2405e8f16d3c2d2fee799cf57226
120
+ # ── workflow ──
121
+ - name: cut-it
122
+ path: workflow/cut-it
123
+ version: 0.2.1
124
+ sha256: f83526535d43137624a9345dbbfbd9de706ccbe464a0aff96dc4a9de2abaaf16
125
+ - name: design-council
126
+ path: workflow/design-council
127
+ version: 0.3.0
128
+ sha256: e02865e1603802acdcb1f3de6c8a43ac7b6f8f1c085f66ed7a5aeae22ab2d8b6
129
+ - name: grill-me
130
+ path: workflow/grill-me
131
+ version: 0.3.2
132
+ sha256: 08f9a165755210dfe942e14fe59803acd19c35ab182b9da10deebdc8554c3f9d
133
+ - name: workflow-distiller
134
+ path: workflow/workflow-distiller
135
+ version: 0.2.1
136
+ sha256: 48238593de4877a7b3a4d63e982f9eca84e47f8ec41654dab97da72e9b590ad5
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: arxiv-literature
3
+ description: Use when the user asks to search arXiv, summarize an arXiv paper, compare papers, find recent research, or build a compact literature survey. Prefer the Researcher shadow agent for noisy multi-paper retrieval; return only citation-ready, source-linked paper cards.
4
+ version: 0.3.0
5
+ license: Apache-2.0
6
+ allowed-tools:
7
+ - web_fetch
8
+ - dispatch
9
+ - read
10
+ - grep
11
+ - find
12
+ - ls
13
+ - artifact
14
+ clio:
15
+ registry-id: iowarp/clio-coder
16
+ source-url: https://github.com/iowarp/clio-coder/tree/main/skills/research/arxiv-literature
17
+ audit: pass
18
+ provenance: designed
19
+ eval-status: smoke-checked
20
+ model-size: any
21
+ agents:
22
+ - researcher
23
+ ---
24
+
25
+ # ArXiv Literature
26
+
27
+ Find, summarize, or compare academic papers without flooding the main context
28
+ window. Raw search results and paper text stay in a worker or get compressed
29
+ immediately; only paper cards reach the user.
30
+
31
+ ## Step 1 — Classify the request
32
+
33
+ Pick exactly one:
34
+
35
+ - **Single paper**: one arXiv URL/ID, "summarize this paper", "explain this paper".
36
+ - **Search**: "find papers about X", "search arxiv for X", "latest papers on X".
37
+ - **Compare**: two or more paper URLs/IDs, "compare these papers".
38
+ - **Survey**: "what is the literature on X", "best papers for X".
39
+
40
+ ## Step 2 — Pick the vehicle
41
+
42
+ - **Search, compare, survey**: dispatch the `researcher` shadow agent. Task
43
+ prompt:
44
+
45
+ ```text
46
+ Research arXiv literature for: <user goal>.
47
+ Return only compact source-linked paper cards, comparison/synthesis,
48
+ caveats, and read/skim/skip recommendations.
49
+ ```
50
+
51
+ - **Single paper, or dispatch unavailable**: use `web_fetch` directly.
52
+ - Paper URL/ID: fetch the arXiv page. Clio normalizes it into structured
53
+ metadata plus AlphaXiv enrichment when available.
54
+ - Search query: fetch the arXiv Atom API; Clio compacts the XML into paper
55
+ cards:
56
+
57
+ ```text
58
+ https://export.arxiv.org/api/query?search_query=all:QUERY&sortBy=submittedDate&sortOrder=descending&start=0&max_results=10
59
+ ```
60
+
61
+ Useful categories for `search_query`: `cs.AI` (AI), `cs.LG` (ML), `cs.CL`
62
+ (NLP/LLMs), `cs.CR` (security), `cs.SE` (software engineering), `cs.MA`
63
+ (multi-agent), `cs.IR` (retrieval/RAG), `cs.CV` (vision), `cs.RO` (robotics).
64
+
65
+ ## Step 3 — Return paper cards only
66
+
67
+ Never paste raw Atom XML or full paper text into the response. Output format:
68
+
69
+ ```markdown
70
+ ## Literature Result
71
+
72
+ ### Query
73
+ ...
74
+
75
+ ### Best Matches / Papers
76
+ 1. **Title** — authors, date, `arxiv:id`
77
+ - Problem:
78
+ - Method:
79
+ - Evidence:
80
+ - Limitation:
81
+ - Relevance:
82
+ - Links:
83
+
84
+ ### Recommendation
85
+ - Read:
86
+ - Skim:
87
+ - Skip:
88
+ ```
89
+
90
+ Done when every returned paper has a card with a working link and the
91
+ recommendation section is filled in. Stop after one search round unless the
92
+ user asks to go deeper; do not keep fetching to "be thorough". One round
93
+ means at most two Atom API fetches: the initial query plus one refinement.
94
+ Rewording the same query a third time is thrash — build cards from what the
95
+ first two returned.
96
+
97
+ ## Gotchas
98
+
99
+ - arXiv Atom is XML, not JSON; fetch it through `web_fetch` so Clio compacts it.
100
+ - `lastUpdatedDate` surfaces old papers with trivial edits; use `submittedDate`
101
+ for newly submitted work.
102
+ - AlphaXiv is AI-generated enrichment: useful for scanning, never citable as
103
+ authoritative.
104
+ - Fetch or enrich only the top candidates, not every result.
@@ -0,0 +1,58 @@
1
+ # Evals - arxiv-literature
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 - topic search
7
+
8
+ Setup: Prompt: "find recent arXiv papers on speculative decoding for LLM
9
+ inference and tell me which are worth reading."
10
+
11
+ Expected:
12
+
13
+ - Retrieval happens through the `researcher` shadow agent or the arXiv Atom
14
+ API via `web_fetch`, not through generic web browsing.
15
+ - No raw Atom XML or full paper text appears in the final answer.
16
+ - Each paper is a compact card carrying title, authors, date, and an
17
+ `arxiv:id` or link.
18
+ - The answer closes with explicit read/skim/skip recommendations.
19
+
20
+ ## S2 - single known paper
21
+
22
+ Setup: Prompt: "summarize https://arxiv.org/abs/1706.03762 for an engineer
23
+ deciding whether to read it."
24
+
25
+ Expected:
26
+
27
+ - Fetches the paper page directly with `web_fetch` instead of dispatching a
28
+ search.
29
+ - The summary states problem, method, evidence, and limitation distinctly
30
+ rather than paraphrasing the abstract in one block.
31
+ - Any AlphaXiv or AI-generated enrichment is labeled as such, not presented
32
+ as the paper's own claims.
33
+
34
+ ## S3 - comparison without context flooding
35
+
36
+ Setup: Prompt gives three arXiv IDs and asks "compare these approaches and
37
+ recommend one for low-latency serving."
38
+
39
+ Expected:
40
+
41
+ - Fetching and digestion is delegated or batched so full paper contents do
42
+ not accumulate in the main transcript.
43
+ - The comparison is criterion-based (problem fit, evidence, limitations),
44
+ citing each paper by id.
45
+ - A single recommendation is made and justified against the alternatives.
46
+
47
+ ## Baseline failure modes to watch for (RED)
48
+
49
+ - Raw Atom XML or multi-page paper text pasted into the answer.
50
+ - Searches by `lastUpdatedDate`, surfacing old papers with trivial edits as
51
+ "recent work".
52
+ - Fetching every search hit instead of the top candidates.
53
+ - Uncited claims: summaries with no ids or links a reader can follow.
54
+
55
+ ## Smoke record (2026-08-13)
56
+
57
+ One representative scenario via `clio-coder skills eval` against Nemo-3.5-Lightning
58
+ (30B local, llamacpp on mini), full-auto sandbox. PASS (driver FAIL overturned on transcript review): skill loaded, skill_surface blocked two curl attempts, retrieval ran through web_fetch on the Atom API per the designed dispatch-unavailable fallback. Judge misread the OR in bullet 1. Query thrash (8 fetches) led to the two-fetch cap now in the body.