@iowarp/clio-coder 0.4.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/CONTRIBUTING.md +142 -52
  3. package/README.md +434 -473
  4. package/SECURITY.md +2 -1
  5. package/dist/{acp-ZILU3AUO.js → acp-H2NGRPWO.js} +12 -12
  6. package/dist/{agents-HYWGBGQR.js → agents-TL5LLUQP.js} +56 -55
  7. package/dist/assets/codewiki.json +1 -1
  8. package/dist/{auth-N3QT7CBO.js → auth-E5SW4HMS.js} +23 -21
  9. package/dist/builtins-IA7V7FUC.js +22 -0
  10. package/dist/{chunk-7RY5VZPH.js → chunk-2APPQIER.js} +8 -8
  11. package/dist/{chunk-72GZI5EV.js → chunk-2JH2WHGE.js} +2 -2
  12. package/dist/{chunk-JA5QWE4Z.js → chunk-2UG5F4C5.js} +1973 -1664
  13. package/dist/{chunk-5YHDIDBP.js → chunk-2UH2KFUP.js} +2 -2
  14. package/dist/{chunk-CTJ4RNAA.js → chunk-2VIKGWFZ.js} +2 -2
  15. package/dist/{chunk-I66EAJFY.js → chunk-2WZ546HR.js} +267 -232
  16. package/dist/{chunk-GIZNH63R.js → chunk-35MSIRKH.js} +9 -4
  17. package/dist/chunk-3EBYEESD.js +314 -0
  18. package/dist/{chunk-J5LZHVIT.js → chunk-3M6DQK6S.js} +113 -35
  19. package/dist/{chunk-RKSR6VSF.js → chunk-4IUZQIJ3.js} +29 -1
  20. package/dist/{chunk-6FN3E6KX.js → chunk-4O6MANBS.js} +2 -2
  21. package/dist/chunk-4UVU7BJ5.js +39 -0
  22. package/dist/{chunk-VKRH2TCS.js → chunk-4WR7VSYB.js} +2 -2
  23. package/dist/{chunk-BBTJOK6Y.js → chunk-54CBCGIR.js} +5 -5
  24. package/dist/{chunk-AP73CFDC.js → chunk-5ICU3EUH.js} +2 -2
  25. package/dist/chunk-5MEZN6CB.js +1334 -0
  26. package/dist/{chunk-O42A54GG.js → chunk-5OIVVPHF.js} +2 -2
  27. package/dist/{chunk-ABLSQ6JX.js → chunk-64I3JVYM.js} +8 -2
  28. package/dist/{chunk-AFKWHWXF.js → chunk-6PTFB5VS.js} +39 -22
  29. package/dist/{chunk-VN3SHNBN.js → chunk-7DICMOS6.js} +2 -2
  30. package/dist/chunk-7DRAWPTZ.js +360 -0
  31. package/dist/chunk-7E7I3WLS.js +3762 -0
  32. package/dist/{chunk-BJGUKIG4.js → chunk-7ZYNNDKC.js} +7 -7
  33. package/dist/{chunk-XKA2ICR3.js → chunk-AF4YM7Z4.js} +652 -252
  34. package/dist/{chunk-GVQJ5CCZ.js → chunk-AX2THNSA.js} +12 -12
  35. package/dist/{chunk-IG7BCQBA.js → chunk-B4OAX3SI.js} +65 -3
  36. package/dist/{chunk-TD3PGPQA.js → chunk-B4VEBZKF.js} +3 -3
  37. package/dist/{chunk-74YWRRU5.js → chunk-BEPZRGGU.js} +10 -10
  38. package/dist/{chunk-FEFIFZTL.js → chunk-CE5AX47J.js} +2 -2
  39. package/dist/{chunk-UAPGZHYC.js → chunk-DWUOQKRU.js} +25 -11
  40. package/dist/{chunk-THYWACCR.js → chunk-E3TPLWFX.js} +3 -3
  41. package/dist/{chunk-7EPLI7VL.js → chunk-EKCHAPYA.js} +2 -2
  42. package/dist/{chunk-HLW2MRKE.js → chunk-F4EKGO4N.js} +3 -1
  43. package/dist/{chunk-PJJ6MY27.js → chunk-F5JHEYZM.js} +7 -7
  44. package/dist/{chunk-6CCS4G3W.js → chunk-FTMGRKEF.js} +3 -3
  45. package/dist/{chunk-SINK3QR6.js → chunk-G76U63X4.js} +17 -17
  46. package/dist/{chunk-EIMVLWB3.js → chunk-GHS5EBTQ.js} +64 -9
  47. package/dist/{chunk-QMXC4JB7.js → chunk-GI7YYQ3F.js} +187 -1419
  48. package/dist/{chunk-TZSKNMZG.js → chunk-GTUD2WMY.js} +2 -1
  49. package/dist/{chunk-6HMJX2VU.js → chunk-GWZNEVM2.js} +44 -12
  50. package/dist/chunk-GYV6VZOC.js +26 -0
  51. package/dist/{chunk-MQXIVJ35.js → chunk-HAXOFFRH.js} +5 -5
  52. package/dist/{chunk-UXN6JT4W.js → chunk-HEQY7ZFI.js} +3 -3
  53. package/dist/{chunk-7PWAODYW.js → chunk-I7XBWTYH.js} +2 -2
  54. package/dist/{chunk-GCSMB2KY.js → chunk-I7ZPNEJM.js} +145 -102
  55. package/dist/{chunk-WNP7O5WZ.js → chunk-ID64D7PE.js} +4 -4
  56. package/dist/{chunk-QTFGO774.js → chunk-IGLP3ODT.js} +29 -16
  57. package/dist/chunk-IJNZMHLA.js +101 -0
  58. package/dist/{chunk-BDPT6GTK.js → chunk-INY6HTFL.js} +7 -7
  59. package/dist/{chunk-PBP4B7XR.js → chunk-IUE3Y34X.js} +2 -2
  60. package/dist/{chunk-6NJQITNH.js → chunk-IWT4SF4R.js} +6 -3
  61. package/dist/{chunk-R23Z6K6I.js → chunk-JDAY6FIL.js} +19 -19
  62. package/dist/chunk-JEQ3XTHC.js +42 -0
  63. package/dist/{chunk-FSP7CMNU.js → chunk-JGRC33J2.js} +50 -4
  64. package/dist/{chunk-TVH4ONAM.js → chunk-JKKCYP3C.js} +10 -10
  65. package/dist/{chunk-HJWWJ6IL.js → chunk-JSC3U7TI.js} +16 -4
  66. package/dist/{chunk-C537JADH.js → chunk-KK4JZPBQ.js} +19 -141
  67. package/dist/{chunk-K6BF4U2H.js → chunk-KKOJXO6R.js} +62 -14
  68. package/dist/{chunk-IHXBNWMM.js → chunk-KXDSS5WJ.js} +7 -3
  69. package/dist/{chunk-6DWBAZ5U.js → chunk-L47TF46W.js} +5 -7
  70. package/dist/{chunk-HUAS7ITX.js → chunk-LDJG7DW3.js} +91 -42
  71. package/dist/{chunk-CDNVLKUX.js → chunk-LLDJM5XK.js} +13 -7
  72. package/dist/{chunk-YPI3QQCF.js → chunk-MCEPRMZW.js} +2 -4
  73. package/dist/{chunk-Y4CAGMM6.js → chunk-MNJGS2IN.js} +5 -6
  74. package/dist/{chunk-VKFQTNDV.js → chunk-MUW2BDDH.js} +4 -4
  75. package/dist/{chunk-E67WX76H.js → chunk-MWUZBSAQ.js} +104 -152
  76. package/dist/{chunk-OJTRZGR3.js → chunk-N2Z7HLVY.js} +21 -21
  77. package/dist/{chunk-TVHHYFHE.js → chunk-NEDJ26B5.js} +2 -2
  78. package/dist/{chunk-FYUN5KZ3.js → chunk-NIQJ66N4.js} +21 -21
  79. package/dist/{chunk-U2WB7TZS.js → chunk-NMJXSHBJ.js} +97 -85
  80. package/dist/{chunk-CWVRRIEI.js → chunk-NZMNUPZZ.js} +2 -2
  81. package/dist/{chunk-VEGN6WIQ.js → chunk-O5CVSAG5.js} +3 -3
  82. package/dist/{chunk-MOPSG2X7.js → chunk-OML5D5V5.js} +8 -8
  83. package/dist/{chunk-2VG7KLYV.js → chunk-PAJQJ7BS.js} +5816 -3255
  84. package/dist/{chunk-ZW55JB7N.js → chunk-PUVDKJ2Y.js} +2 -2
  85. package/dist/{chunk-BTGG6BG2.js → chunk-QWGDJJYJ.js} +158 -19
  86. package/dist/chunk-R6Q67RJH.js +134 -0
  87. package/dist/{chunk-ZJLUDYFY.js → chunk-RRNP2ANY.js} +6 -6
  88. package/dist/{chunk-PVAMAVBB.js → chunk-RSJ25QSL.js} +102 -2
  89. package/dist/{chunk-NLFAQR7Z.js → chunk-S66XZJOF.js} +3 -23
  90. package/dist/chunk-SKHCAU7K.js +385 -0
  91. package/dist/chunk-SZAA6XDG.js +30 -0
  92. package/dist/{chunk-J4HBWF6Y.js → chunk-TM6LQDI3.js} +131 -28
  93. package/dist/chunk-UOIZ7DA4.js +41 -0
  94. package/dist/{chunk-MA3H6DM5.js → chunk-UPZU6GE4.js} +25 -3
  95. package/dist/{chunk-BWW4HLO4.js → chunk-UXCU4E3T.js} +8 -6
  96. package/dist/{chunk-N5UK64DP.js → chunk-V2ANDPVT.js} +4 -4
  97. package/dist/{chunk-AK5XEFVZ.js → chunk-VA5FNYMT.js} +26 -13
  98. package/dist/{chunk-6VC4OV3Z.js → chunk-VIA6RFQZ.js} +3 -11
  99. package/dist/{chunk-ZAZB4JMW.js → chunk-VKPAQYEB.js} +27 -8
  100. package/dist/{chunk-QKIFBZKT.js → chunk-VW6DOEDG.js} +497 -81
  101. package/dist/{chunk-SCYB3HA4.js → chunk-W6RRQCPQ.js} +63 -19
  102. package/dist/{chunk-2NM363SV.js → chunk-WBKFA554.js} +10 -10
  103. package/dist/{chunk-R32CLGZ6.js → chunk-WCXUNS7U.js} +82 -21
  104. package/dist/{chunk-GPPB3JBE.js → chunk-WRBAGUNF.js} +3 -3
  105. package/dist/{chunk-IXJT6DCX.js → chunk-XIVNBFZS.js} +85 -30
  106. package/dist/{chunk-UEDMSP56.js → chunk-XPWWI35G.js} +417 -201
  107. package/dist/chunk-XRZT5WY5.js +47 -0
  108. package/dist/{chunk-3QSOM6PA.js → chunk-Y3CBHOR6.js} +2 -2
  109. package/dist/{chunk-VXMFAE2W.js → chunk-YPC6ZR5L.js} +19 -6
  110. package/dist/{chunk-AKB4GYDL.js → chunk-YQWYVTMC.js} +5 -5
  111. package/dist/{chunk-6I5ILFOF.js → chunk-ZA4VCIGV.js} +3 -3
  112. package/dist/{chunk-7OBGU7UB.js → chunk-ZDN3Y73Y.js} +12 -18
  113. package/dist/{chunk-3I5NY75V.js → chunk-ZWPRK62N.js} +8 -5
  114. package/dist/cli/index.js +41 -39
  115. package/dist/{clio-IT3G3VQH.js → clio-CMMK4KRR.js} +9 -9
  116. package/dist/{code-nav-RK6S7F6E.js → code-nav-MDZNQS33.js} +89 -21
  117. package/dist/{components-UBWCQSRW.js → components-UCUQ4QXW.js} +4 -4
  118. package/dist/{config-3QZRWZJF.js → config-SVM5P5YI.js} +131 -84
  119. package/dist/{configure-FL7Y3KJF.js → configure-LE3IK2TJ.js} +28 -26
  120. package/dist/{context-5HE7ODYK.js → context-2OHRKS42.js} +69 -64
  121. package/dist/{context-KYQFRVDC.js → context-E3VC7RX5.js} +15 -11
  122. package/dist/{context-XNHL75JV.js → context-VNCR7KAG.js} +93 -65
  123. package/dist/{context-clear-N545L53A.js → context-clear-BW4O37TG.js} +64 -60
  124. package/dist/context-map-COB37XXN.js +505 -0
  125. package/dist/{context-working-set-QHKXSV2F.js → context-working-set-VDS25HXZ.js} +19 -18
  126. package/dist/{dispatch-runner-RGIE5PCT.js → dispatch-runner-5AHT53RF.js} +93 -82
  127. package/dist/{docs-5NAF6AU7.js → docs-PD3EXDKU.js} +21 -20
  128. package/dist/{doctor-ZGPEGHIP.js → doctor-WNNVO6FY.js} +48 -47
  129. package/dist/{eval-GXLL44RD.js → eval-7G7SGAYO.js} +287 -115
  130. package/dist/{eval-inventory-HBWSWQOK.js → eval-inventory-Y6QRFOH5.js} +4 -4
  131. package/dist/{evidence-HWLBRH3Q.js → evidence-VD6736FQ.js} +67 -64
  132. package/dist/{evolve-FTZBMNVW.js → evolve-AL3NGVRL.js} +65 -62
  133. package/dist/{extensions-VHRBEID7.js → extensions-MOVJ32NM.js} +9 -7
  134. package/dist/{fleet-CKZHJWZJ.js → fleet-QZHUMAGI.js} +114 -111
  135. package/dist/{fleet-commands-EXDXBMV6.js → fleet-commands-BAYT5FJZ.js} +10 -10
  136. package/dist/{fleet-decisions-OTHB6KRL.js → fleet-decisions-IREVMRU4.js} +7 -6
  137. package/dist/{fleet-graph-YTEZUCUT.js → fleet-graph-YCTT3HTI.js} +22 -19
  138. package/dist/{fleet-inspect-SS6YMDCK.js → fleet-inspect-QVJTDAVB.js} +58 -55
  139. package/dist/{fleet-preflight-PBY4VYOM.js → fleet-preflight-25QAFPK4.js} +4 -4
  140. package/dist/{fleet-validate-KMEM5L3S.js → fleet-validate-5O57AAJ7.js} +26 -23
  141. package/dist/{fleet-verify-QD5M7E7Q.js → fleet-verify-CPH2W2T6.js} +59 -56
  142. package/dist/{fleet-view-WAMJYNDT.js → fleet-view-SWBR3VGQ.js} +58 -55
  143. package/dist/{init-5XQRBOFV.js → init-J477LKZH.js} +82 -79
  144. package/dist/{interop-34TVO25M.js → interop-3FCM6XLG.js} +11 -11
  145. package/dist/{library-3QY6KF57.js → library-QUQEIUG6.js} +30 -27
  146. package/dist/{memory-L4UTIIIW.js → memory-SGGSEP65.js} +67 -64
  147. package/dist/{models-ZVX3QOWE.js → models-HEKUAXXK.js} +53 -46
  148. package/dist/{monitor-CEKVSYTS.js → monitor-HKU57TYQ.js} +63 -60
  149. package/dist/{orchestrator-77BAP6BC.js → orchestrator-VDFAEFAI.js} +1831 -1057
  150. package/dist/{panes-7STHOAUJ.js → panes-DN2SSFOH.js} +5 -5
  151. package/dist/{panes-SHAUIRXY.js → panes-TALGNPZT.js} +29 -14
  152. package/dist/{paths-L7LGY6RN.js → paths-NBMFAIEZ.js} +5 -5
  153. package/dist/reset-EAJFFJVB.js +344 -0
  154. package/dist/{resources-74GKTLSF.js → resources-OVKSEFVE.js} +29 -20
  155. package/dist/{run-HBAUJNNZ.js → run-7DP7ZF2J.js} +120 -115
  156. package/dist/{share-G3APVLVP.js → share-WML67FT3.js} +32 -27
  157. package/dist/{skills-35HHUKCR.js → skills-SG662R2K.js} +41 -31
  158. package/dist/{skills-eval-QN4HSHDC.js → skills-eval-VVZEUU46.js} +78 -77
  159. package/dist/{skills-inventory-J357J34F.js → skills-inventory-I2E23GET.js} +23 -20
  160. package/dist/{slash-commands-JZZCQA32.js → slash-commands-S7MBJDQK.js} +40 -36
  161. package/dist/{steer-XAVHJM22.js → steer-2LQOMCPB.js} +3 -3
  162. package/dist/{support-U7QOWY26.js → support-CC2UJBJ6.js} +6 -6
  163. package/dist/{targets-DSM6CY3M.js → targets-4QC3HIEW.js} +54 -54
  164. package/dist/{terminal-lease-JOPFUVEM.js → terminal-lease-TUHIJ6Y2.js} +5 -5
  165. package/dist/{tools-MKNWVPBH.js → tools-TFGJICCU.js} +10 -10
  166. package/dist/{trace-ECQ7TIYZ.js → trace-FXMXUZUF.js} +55 -7
  167. package/dist/uninstall-5PEVOE5B.js +408 -0
  168. package/dist/upgrade-M4WXY6KN.js +303 -0
  169. package/dist/{usage-X52N3IDJ.js → usage-N7ZNVLEM.js} +151 -104
  170. package/dist/{verifiers-EJTVVSMA.js → verifiers-DJTP4XX6.js} +15 -15
  171. package/dist/{verify-YJL6XET2.js → verify-RWE4PPEK.js} +9 -9
  172. package/dist/{web-fetch-MPIFL3LL.js → web-fetch-MPARV2K7.js} +2 -2
  173. package/dist/{wiki-generate-4NDZTQ4B.js → wiki-generate-C7IQOXSP.js} +89 -86
  174. package/dist/{with-panes-OBOBFIIR.js → with-panes-4GCGSL7J.js} +53 -257
  175. package/dist/worker/entry.js +90 -74
  176. package/docs/README.md +176 -81
  177. package/docs/{acp.md → architecture/acp.md} +36 -20
  178. package/docs/{alcf-provider.md → architecture/alcf-provider.md} +8 -5
  179. package/docs/{architecture.md → architecture/architecture.md} +43 -22
  180. package/docs/{artifact-placement.md → architecture/artifact-placement.md} +27 -23
  181. package/docs/architecture/artifact-versions.md +90 -0
  182. package/docs/{capacity-and-scheduling.md → architecture/capacity-and-scheduling.md} +26 -13
  183. package/docs/{context-engine.md → architecture/context-engine.md} +29 -25
  184. package/docs/{context-working-set.md → architecture/context-working-set.md} +13 -10
  185. package/docs/{dispatch-architecture-rationale.md → architecture/dispatch-architecture-rationale.md} +12 -9
  186. package/docs/{dispatch-typed-intent.md → architecture/dispatch-typed-intent.md} +68 -46
  187. package/docs/{evidence-and-memory.md → architecture/evidence-and-memory.md} +23 -16
  188. package/docs/{middleware-and-components.md → architecture/middleware-and-components.md} +11 -5
  189. package/docs/{model-catalog.md → architecture/model-catalog.md} +61 -27
  190. package/docs/{observability.md → architecture/observability.md} +38 -14
  191. package/docs/{pi-boundary.md → architecture/pi-boundary.md} +24 -11
  192. package/docs/{prompt-envelope-and-tools.md → architecture/prompt-envelope-and-tools.md} +57 -20
  193. package/docs/{provider-adapter-cookbook.md → architecture/provider-adapter-cookbook.md} +99 -25
  194. package/docs/{safety-model.md → architecture/safety-model.md} +35 -20
  195. package/docs/{session-lifecycle.md → architecture/session-lifecycle.md} +8 -5
  196. package/docs/architecture/time-conventions.md +125 -0
  197. package/docs/{trace-store.md → architecture/trace-store.md} +13 -5
  198. package/docs/{tui-design.md → architecture/tui-design.md} +13 -13
  199. package/docs/{worker-dispatch-mechanics.md → architecture/worker-dispatch-mechanics.md} +27 -30
  200. package/docs/{built-in-agents.md → guide/built-in-agents.md} +65 -35
  201. package/docs/{commands-and-modes.md → guide/commands-and-modes.md} +66 -61
  202. package/docs/{configuration-and-targets.md → guide/configuration-and-targets.md} +323 -297
  203. package/docs/guide/configuration-reference.md +1163 -0
  204. package/docs/{environment-variables.md → guide/environment-variables.md} +33 -28
  205. package/docs/{exit-codes-and-output.md → guide/exit-codes-and-output.md} +6 -3
  206. package/docs/{extensions-and-sharing.md → guide/extensions-and-sharing.md} +41 -14
  207. package/docs/{fleet-dispatch.md → guide/fleet-dispatch.md} +39 -43
  208. package/docs/{glossary.md → guide/glossary.md} +14 -11
  209. package/docs/{installation-and-lifecycle.md → guide/installation-and-lifecycle.md} +81 -17
  210. package/docs/guide/panes-and-files.md +290 -0
  211. package/docs/{proactive-memory.md → guide/proactive-memory.md} +131 -107
  212. package/docs/{resource-library.md → guide/resource-library.md} +13 -4
  213. package/docs/{skills-marketplace.md → guide/skills-marketplace.md} +25 -3
  214. package/docs/{tool-usage.md → guide/tool-usage.md} +87 -23
  215. package/docs/{troubleshooting.md → guide/troubleshooting.md} +9 -4
  216. package/docs/{config-knobs-audit.md → history/config-knobs-audit.md} +11 -11
  217. package/docs/{release-cut-checklist.md → history/release-cut-checklist.md} +29 -2
  218. package/docs/process/development-pipeline.md +152 -0
  219. package/docs/process/documentation-coverage.md +100 -0
  220. package/docs/process/documentation-guide.md +187 -0
  221. package/docs/{eval-runner.md → process/eval-runner.md} +108 -53
  222. package/docs/{evals-internal.md → process/evals-internal.md} +10 -10
  223. package/docs/{evolution.md → process/evolution.md} +2 -2
  224. package/docs/{fleet-demo-runbook.md → process/fleet-demo-runbook.md} +11 -7
  225. package/docs/{git-commit-provenance.md → process/git-commit-provenance.md} +11 -4
  226. package/docs/{performance-methodology.md → process/performance-methodology.md} +87 -69
  227. package/docs/{scientific-validation.md → process/scientific-validation.md} +4 -4
  228. package/evals/README.md +2 -2
  229. package/evals/behavioral-model.yaml +3 -2
  230. package/package.json +10 -8
  231. package/skills/README.md +52 -41
  232. package/skills/coding/ast-grep/SKILL.md +102 -31
  233. package/skills/coding/ast-grep/evals.md +26 -0
  234. package/skills/coding/coding-standards/SKILL.md +41 -6
  235. package/skills/coding/coding-standards/evals.md +23 -0
  236. package/skills/coding/prototype/SKILL.md +88 -29
  237. package/skills/coding/prototype/evals.md +19 -0
  238. package/skills/coding/tdd/SKILL.md +81 -54
  239. package/skills/coding/tdd/evals.md +20 -0
  240. package/skills/context/context-handoff/SKILL.md +44 -3
  241. package/skills/context/context-handoff/evals.md +44 -0
  242. package/skills/context/context-prime/SKILL.md +46 -16
  243. package/skills/context/context-prime/evals.md +45 -0
  244. package/skills/git/branch-closeout/SKILL.md +132 -0
  245. package/skills/git/branch-closeout/evals.md +133 -0
  246. package/skills/git/branch-closeout/references/closeout-checklist.md +81 -0
  247. package/skills/git/file-ticket/SKILL.md +78 -64
  248. package/skills/git/file-ticket/assets/issue-template.md +22 -0
  249. package/skills/git/file-ticket/evals.md +31 -26
  250. package/skills/git/file-ticket/references/issue-discovery.md +49 -0
  251. package/skills/git/fix-issue/SKILL.md +88 -65
  252. package/skills/git/fix-issue/evals.md +35 -31
  253. package/skills/git/fix-issue/references/diagnosis-and-rca.md +46 -0
  254. package/skills/git/resolve-merge-conflicts/SKILL.md +101 -52
  255. package/skills/git/resolve-merge-conflicts/evals.md +52 -25
  256. package/skills/git/resolve-merge-conflicts/references/conflict-matrix.md +126 -0
  257. package/skills/git/ship/SKILL.md +103 -67
  258. package/skills/git/ship/assets/pr-template.md +21 -0
  259. package/skills/git/ship/evals.md +44 -28
  260. package/skills/git/ship/references/remote-and-branch-policy.md +62 -0
  261. package/skills/git/worktree-create/SKILL.md +80 -50
  262. package/skills/git/worktree-create/evals.md +40 -33
  263. package/skills/git/worktree-create/references/worktree-setup.md +62 -66
  264. package/skills/git/worktree-merge/SKILL.md +112 -65
  265. package/skills/git/worktree-merge/evals.md +42 -34
  266. package/skills/git/worktree-merge/references/merge-strategies.md +52 -0
  267. package/skills/meta/clio-coder-dev/SKILL.md +9 -5
  268. package/skills/meta/clio-coder-dev/evals.md +3 -2
  269. package/skills/meta/clio-coder-test/SKILL.md +102 -95
  270. package/skills/meta/clio-coder-test/evals.md +9 -4
  271. package/skills/meta/clio-coder-test/references/harness.md +100 -124
  272. package/skills/meta/clio-coder-test/references/test-map.md +77 -50
  273. package/skills/meta/credentials/SKILL.md +2 -2
  274. package/skills/meta/find-skills/SKILL.md +2 -2
  275. package/skills/meta/herdr/SKILL.md +2 -2
  276. package/skills/meta/skill-craft/SKILL.md +22 -16
  277. package/skills/planning/archify/SKILL.md +196 -0
  278. package/skills/planning/archify/evals.md +65 -0
  279. package/skills/planning/architecture/SKILL.md +62 -13
  280. package/skills/planning/architecture/evals.md +65 -0
  281. package/skills/planning/backlog/SKILL.md +131 -15
  282. package/skills/planning/backlog/evals.md +142 -0
  283. package/skills/planning/prd/SKILL.md +47 -7
  284. package/skills/planning/prd/evals.md +54 -0
  285. package/skills/planning/product-intent/SKILL.md +58 -3
  286. package/skills/planning/product-intent/evals.md +70 -0
  287. package/skills/planning/tech-spec/SKILL.md +54 -3
  288. package/skills/planning/tech-spec/evals.md +73 -0
  289. package/skills/registry.yaml +70 -62
  290. package/skills/remote.yaml +13 -0
  291. package/skills/research/arxiv-literature/SKILL.md +77 -19
  292. package/skills/research/arxiv-literature/evals.md +50 -0
  293. package/skills/research/experiment-protocol/SKILL.md +21 -2
  294. package/skills/research/experiment-protocol/evals.md +23 -0
  295. package/skills/research/scientific-debugging/SKILL.md +24 -2
  296. package/skills/research/scientific-debugging/evals.md +18 -0
  297. package/skills/research/scientific-modernization/SKILL.md +27 -2
  298. package/skills/research/scientific-modernization/evals.md +27 -0
  299. package/skills/skill-marketplace.json +97 -62
  300. package/skills/workflow/cut-it/SKILL.md +66 -6
  301. package/skills/workflow/cut-it/evals.md +101 -0
  302. package/skills/workflow/design-council/SKILL.md +118 -28
  303. package/skills/workflow/design-council/evals.md +161 -0
  304. package/skills/workflow/grill-me/SKILL.md +87 -11
  305. package/skills/workflow/grill-me/evals.md +153 -0
  306. package/skills/workflow/workflow-distiller/SKILL.md +77 -18
  307. package/skills/workflow/workflow-distiller/evals.md +118 -0
  308. package/src/cli/args.ts +2 -2
  309. package/src/cli/bootstrap-generate.ts +1 -1
  310. package/src/cli/config-inspect.ts +65 -12
  311. package/src/cli/configure-interop.ts +105 -13
  312. package/src/cli/configure-oauth.ts +57 -0
  313. package/src/cli/configure-onboarding.ts +980 -0
  314. package/src/cli/configure-target.ts +594 -0
  315. package/src/cli/configure.ts +1082 -532
  316. package/src/cli/context-map.ts +114 -0
  317. package/src/cli/context.ts +4 -0
  318. package/src/cli/docs.ts +22 -14
  319. package/src/cli/doctor-naming.ts +5 -5
  320. package/src/cli/doctor-toolchain.ts +3 -3
  321. package/src/cli/eval.ts +1 -2
  322. package/src/cli/extensions.ts +2 -1
  323. package/src/cli/fleet.ts +1 -1
  324. package/src/cli/index.ts +3 -1
  325. package/src/cli/internal-dispatch.ts +3 -4
  326. package/src/cli/lifecycle-presenter.ts +436 -0
  327. package/src/cli/models.ts +10 -2
  328. package/src/cli/modes/print.ts +5 -1
  329. package/src/cli/panes.ts +19 -5
  330. package/src/cli/reset.ts +228 -106
  331. package/src/cli/run.ts +9 -4
  332. package/src/cli/select.ts +664 -0
  333. package/src/cli/share.ts +5 -1
  334. package/src/cli/skills-eval.ts +3 -3
  335. package/src/cli/skills.ts +9 -2
  336. package/src/cli/targets.ts +5 -6
  337. package/src/cli/trace.ts +55 -4
  338. package/src/cli/uninstall.ts +233 -165
  339. package/src/cli/upgrade.ts +204 -149
  340. package/src/cli/usage.ts +86 -27
  341. package/src/cli/validate-model.ts +3 -3
  342. package/src/cli/wiki-generate.ts +1 -1
  343. package/src/core/artifact-paths.ts +1 -1
  344. package/src/core/bash-exec.ts +131 -86
  345. package/src/core/bus-events.ts +51 -6
  346. package/src/core/config.ts +61 -1
  347. package/src/core/defaults.ts +7 -4
  348. package/src/core/dispatch-outcome.ts +16 -0
  349. package/src/core/external-diagnostic.ts +44 -0
  350. package/src/core/gateway-routing.ts +157 -0
  351. package/src/core/guardrails.ts +10 -49
  352. package/src/core/prompt-hint.ts +9 -0
  353. package/src/core/safe-exec.ts +17 -2
  354. package/src/core/skill-activation.ts +89 -2
  355. package/src/domains/agents/builtins/architect.md +2 -3
  356. package/src/domains/agents/builtins/coder.md +3 -2
  357. package/src/domains/agents/builtins/debugger.md +2 -2
  358. package/src/domains/agents/builtins/documenter.md +2 -2
  359. package/src/domains/agents/builtins/git-master.md +1 -1
  360. package/src/domains/agents/builtins/oracle.md +1 -1
  361. package/src/domains/agents/builtins/provenance.md +1 -1
  362. package/src/domains/agents/builtins/researcher.md +1 -1
  363. package/src/domains/agents/builtins/scout.md +1 -1
  364. package/src/domains/agents/builtins/tester.md +2 -2
  365. package/src/domains/agents/builtins/verifier.md +2 -2
  366. package/src/domains/agents/builtins/wiki-writer.md +1 -1
  367. package/src/domains/agents/builtins/world-knowledge.md +31 -0
  368. package/src/domains/agents/catalog.ts +13 -15
  369. package/src/domains/agents/contract.ts +2 -0
  370. package/src/domains/agents/extension.ts +23 -1
  371. package/src/domains/agents/result-contract.ts +70 -0
  372. package/src/domains/config/keybindings.ts +8 -0
  373. package/src/domains/context/extension.ts +0 -3
  374. package/src/domains/context/wiki/map-seed.ts +589 -0
  375. package/src/domains/context/wiki/plan.ts +2 -2
  376. package/src/domains/context/working-set/path-index.ts +1 -0
  377. package/src/domains/dispatch/admission.ts +29 -0
  378. package/src/domains/dispatch/agent-candidates.ts +10 -0
  379. package/src/domains/dispatch/budget-envelope.ts +86 -1
  380. package/src/domains/dispatch/capability-match.ts +11 -0
  381. package/src/domains/dispatch/capacity-lease.ts +17 -0
  382. package/src/domains/dispatch/contract.ts +11 -1
  383. package/src/domains/dispatch/extension.ts +237 -49
  384. package/src/domains/dispatch/host-verification.ts +435 -39
  385. package/src/domains/dispatch/intent-requirements.ts +10 -0
  386. package/src/domains/dispatch/intent.ts +18 -1
  387. package/src/domains/dispatch/path-scope.ts +235 -24
  388. package/src/domains/dispatch/run-event-journal.ts +4 -15
  389. package/src/domains/dispatch/state.ts +2 -3
  390. package/src/domains/dispatch/transport.ts +45 -21
  391. package/src/domains/dispatch/types.ts +58 -3
  392. package/src/domains/dispatch/worker-model-metadata.ts +38 -0
  393. package/src/domains/eval/artifacts/store.ts +5 -0
  394. package/src/domains/eval/metrics/call-ledger-stream.ts +34 -11
  395. package/src/domains/eval/metrics/token-stream.ts +201 -31
  396. package/src/domains/eval/metrics/tracked.ts +40 -4
  397. package/src/domains/eval/runners/clio-run.ts +5 -2
  398. package/src/domains/eval/schema/suite.ts +28 -0
  399. package/src/domains/eval/schema/verdict.ts +2 -2
  400. package/src/domains/eval/store.ts +8 -1
  401. package/src/domains/eval/suites/resolve.ts +13 -1
  402. package/src/domains/eval/suites/run.ts +24 -3
  403. package/src/domains/evidence/trust-status.ts +10 -1
  404. package/src/domains/extensions/contract.ts +15 -1
  405. package/src/domains/extensions/discovery.ts +238 -41
  406. package/src/domains/extensions/extension.ts +105 -6
  407. package/src/domains/extensions/index.ts +24 -0
  408. package/src/domains/extensions/integrity.ts +189 -0
  409. package/src/domains/extensions/manager.ts +17 -1
  410. package/src/domains/extensions/resource-path.ts +27 -0
  411. package/src/domains/extensions/resources.ts +18 -38
  412. package/src/domains/extensions/snapshot-store.ts +39 -0
  413. package/src/domains/extensions/snapshot.ts +180 -0
  414. package/src/domains/extensions/state.ts +385 -57
  415. package/src/domains/extensions/types.ts +118 -1
  416. package/src/domains/interop/registry.ts +6 -2
  417. package/src/domains/interop/types.ts +4 -0
  418. package/src/domains/lifecycle/migrations/2026-09-01-extension-install-digests.ts +27 -0
  419. package/src/domains/lifecycle/migrations/index.ts +6 -0
  420. package/src/domains/lifecycle/naming-resources.ts +19 -4
  421. package/src/domains/lifecycle/naming-yazi.ts +10 -5
  422. package/src/domains/memory/task-memory-policy.ts +70 -26
  423. package/src/domains/memory/task-memory-telemetry.ts +1 -0
  424. package/src/domains/middleware/contract.ts +26 -0
  425. package/src/domains/middleware/extension.ts +24 -24
  426. package/src/domains/middleware/hook-receipts.ts +27 -4
  427. package/src/domains/middleware/hooks-io.ts +65 -32
  428. package/src/domains/middleware/hooks.ts +64 -0
  429. package/src/domains/middleware/index.ts +28 -5
  430. package/src/domains/middleware/marketplace-offer.ts +3 -35
  431. package/src/domains/middleware/memory-intervention.ts +127 -32
  432. package/src/domains/middleware/memory-step-endpoint.ts +3 -2
  433. package/src/domains/middleware/registrations.ts +326 -0
  434. package/src/domains/middleware/runtime.ts +28 -0
  435. package/src/domains/middleware/skills-reminder.ts +31 -2
  436. package/src/domains/middleware/snapshot.ts +20 -7
  437. package/src/domains/mux/contract.ts +38 -0
  438. package/src/domains/mux/detect.ts +6 -13
  439. package/src/domains/mux/index.ts +1 -1
  440. package/src/domains/mux/operations.ts +44 -5
  441. package/src/domains/mux/yazi/assets/yazi.toml +2 -2
  442. package/src/domains/mux/yazi/session.ts +53 -4
  443. package/src/domains/mux/yazi/theme.ts +117 -17
  444. package/src/domains/observability/compaction-usage.ts +118 -0
  445. package/src/domains/observability/contract.ts +10 -11
  446. package/src/domains/observability/cost.ts +1 -1
  447. package/src/domains/observability/extension.ts +17 -4
  448. package/src/domains/observability/out-of-turn-usage.ts +52 -21
  449. package/src/domains/observability/projection.ts +14 -90
  450. package/src/domains/observability/trace-store.ts +43 -7
  451. package/src/domains/prompts/compiler.ts +73 -53
  452. package/src/domains/prompts/contract.ts +15 -3
  453. package/src/domains/prompts/extension.ts +97 -9
  454. package/src/domains/prompts/fragments/identity/clio-worker.md +1 -3
  455. package/src/domains/prompts/fragments/identity/clio.md +6 -12
  456. package/src/domains/prompts/fragments/identity/docs-routing.md +1 -2
  457. package/src/domains/prompts/fragments/identity/self-awareness.md +3 -11
  458. package/src/domains/prompts/fragments/operating/contract.md +7 -15
  459. package/src/domains/prompts/fragments/operating/delegation.md +32 -34
  460. package/src/domains/prompts/fragments/operating/skills.md +10 -24
  461. package/src/domains/prompts/fragments/operating/worker.md +1 -8
  462. package/src/domains/providers/contract.ts +4 -1
  463. package/src/domains/providers/extension.ts +40 -9
  464. package/src/domains/providers/index.ts +1 -1
  465. package/src/domains/providers/model-capabilities.ts +9 -0
  466. package/src/domains/providers/model-discovery.ts +2 -0
  467. package/src/domains/providers/model-runtime-capabilities.ts +99 -25
  468. package/src/domains/providers/models/local-models/clio-coder-local-coding-targets.yaml +699 -114
  469. package/src/domains/providers/runtime-resolution.ts +31 -0
  470. package/src/domains/providers/runtimes/antigravity/antigravity-code.ts +225 -45
  471. package/src/domains/providers/runtimes/common/lmstudio-http.ts +6 -2
  472. package/src/domains/providers/runtimes/common/local-synth.ts +2 -0
  473. package/src/domains/providers/runtimes/common/probe-helpers.ts +7 -2
  474. package/src/domains/providers/runtimes/local-native/llamacpp.ts +9 -1
  475. package/src/domains/providers/runtimes/protocol/litellm.ts +119 -29
  476. package/src/domains/providers/support.ts +11 -5
  477. package/src/domains/providers/target-model-cache.ts +25 -2
  478. package/src/domains/providers/types/capability-flags.ts +2 -0
  479. package/src/domains/providers/types/cost-provenance.ts +19 -0
  480. package/src/domains/providers/types/local-model-quirks.ts +85 -37
  481. package/src/domains/providers/types/runtime-descriptor.ts +20 -1
  482. package/src/domains/providers/types/target-descriptor.ts +19 -0
  483. package/src/domains/resources/index.ts +3 -0
  484. package/src/domains/resources/skills/install.ts +72 -7
  485. package/src/domains/resources/skills/loader.ts +23 -19
  486. package/src/domains/resources/skills/marketplace.ts +63 -11
  487. package/src/domains/safety/autonomy.ts +15 -0
  488. package/src/domains/safety/call-target.ts +1 -1
  489. package/src/domains/safety/index.ts +1 -0
  490. package/src/domains/safety/loop-detector.ts +7 -4
  491. package/src/domains/safety/path-policy.ts +1 -1
  492. package/src/domains/safety/policy-engine.ts +34 -11
  493. package/src/domains/safety/protected-artifacts.ts +191 -88
  494. package/src/domains/safety/run-effects.ts +2 -22
  495. package/src/domains/safety/skill-authority.ts +55 -0
  496. package/src/domains/session/compaction/compact.ts +72 -22
  497. package/src/domains/session/entries.ts +6 -0
  498. package/src/domains/session/task-board.ts +10 -9
  499. package/src/domains/session/usage.ts +3 -3
  500. package/src/domains/share/archive.ts +164 -7
  501. package/src/engine/acp/server.ts +62 -9
  502. package/src/engine/agent.ts +13 -3
  503. package/src/engine/ai.ts +26 -8
  504. package/src/engine/antigravity/subprocess-runtime.ts +386 -120
  505. package/src/engine/api-registry.ts +3 -0
  506. package/src/engine/apis/llamacpp-residency.ts +3 -4
  507. package/src/engine/apis/lmstudio.ts +3 -3
  508. package/src/engine/apis/ollama-native.ts +6 -6
  509. package/src/engine/apis/openai-completions.ts +145 -39
  510. package/src/engine/apis/output-budget.ts +8 -18
  511. package/src/engine/apis/residency.ts +8 -27
  512. package/src/engine/external-subprocess.ts +114 -6
  513. package/src/engine/gemma-channel-filter.ts +19 -0
  514. package/src/engine/loop-guard.ts +92 -12
  515. package/src/engine/worker-runtime.ts +40 -11
  516. package/src/engine/worker-tools.ts +3 -1
  517. package/src/entry/background-model-metadata.ts +18 -0
  518. package/src/entry/compaction-prompt.ts +57 -0
  519. package/src/entry/extension-hook-sources.ts +28 -0
  520. package/src/entry/extension-reload.ts +309 -0
  521. package/src/entry/orchestrator.ts +464 -251
  522. package/src/entry/task-memory-lifecycle.ts +35 -0
  523. package/src/interactive/application-controller.ts +2 -1
  524. package/src/interactive/bus-notices.ts +8 -1
  525. package/src/interactive/chat-loop-messages.ts +16 -17
  526. package/src/interactive/chat-loop.ts +75 -3
  527. package/src/interactive/chat-panel.ts +36 -13
  528. package/src/interactive/chat-renderer.ts +72 -7
  529. package/src/interactive/cost-overlay.ts +26 -2
  530. package/src/interactive/dispatch-board.ts +6 -11
  531. package/src/interactive/footer/widgets.ts +13 -0
  532. package/src/interactive/interactive-application.ts +39 -4
  533. package/src/interactive/interactive-input-runtime.ts +4 -0
  534. package/src/interactive/interactive-presentation.ts +2 -2
  535. package/src/interactive/interactive-slash-runtime.ts +4 -1
  536. package/src/interactive/overlays/extensions.ts +9 -1
  537. package/src/interactive/overlays/help-reference.ts +13 -0
  538. package/src/interactive/overlays/settings.ts +27 -16
  539. package/src/interactive/panes-runtime.ts +111 -35
  540. package/src/interactive/prompt-cache-identity.ts +88 -0
  541. package/src/interactive/renderers/worker-entry.ts +32 -0
  542. package/src/interactive/slash-commands.ts +153 -20
  543. package/src/interactive/stream-pacing-policy.ts +0 -23
  544. package/src/interactive/theme/labels.ts +19 -13
  545. package/src/interactive/turn-context.ts +39 -20
  546. package/src/interactive/turn-recovery.ts +8 -0
  547. package/src/interactive/turn-runtime.ts +27 -11
  548. package/src/interactive/turn-state.ts +7 -0
  549. package/src/interactive/worker-receipts.ts +1 -0
  550. package/src/interactive/worker-stream.ts +6 -1
  551. package/src/interactive/yazi-bridge.ts +60 -6
  552. package/src/tools/agent-tools.ts +30 -1
  553. package/src/tools/artifact.ts +2 -2
  554. package/src/tools/ask-user.ts +3 -3
  555. package/src/tools/bash.ts +1 -1
  556. package/src/tools/bootstrap.ts +4 -0
  557. package/src/tools/builtin-tool-catalog.ts +52 -22
  558. package/src/tools/codewiki/code-nav-surface.ts +6 -0
  559. package/src/tools/codewiki/code-nav.ts +99 -13
  560. package/src/tools/context/docs-engine.ts +20 -7
  561. package/src/tools/context/index.ts +59 -21
  562. package/src/tools/core-bootstrap.ts +28 -6
  563. package/src/tools/credential-present.ts +1 -2
  564. package/src/tools/dispatch-arguments.ts +6 -1
  565. package/src/tools/dispatch-event-text.ts +10 -0
  566. package/src/tools/dispatch-plan.ts +49 -4
  567. package/src/tools/dispatch-run-events.ts +1 -1
  568. package/src/tools/dispatch-runner.ts +12 -0
  569. package/src/tools/dispatch-schema.ts +338 -0
  570. package/src/tools/dispatch-types.ts +3 -0
  571. package/src/tools/dispatch.ts +9 -254
  572. package/src/tools/ledger.ts +3 -5
  573. package/src/tools/monitor-surface.ts +5 -13
  574. package/src/tools/observation.ts +4 -5
  575. package/src/tools/panes-surface.ts +4 -11
  576. package/src/tools/panes.ts +4 -2
  577. package/src/tools/policy.ts +15 -2
  578. package/src/tools/read.ts +5 -6
  579. package/src/tools/registry.ts +41 -12
  580. package/src/tools/result-shaping.ts +18 -14
  581. package/src/tools/steer-surface.ts +1 -1
  582. package/src/tools/tasks.ts +1 -1
  583. package/src/tools/truncate.ts +6 -5
  584. package/src/tools/verify/surface.ts +6 -12
  585. package/src/tools/web-fetch-surface.ts +1 -3
  586. package/src/tools/worker-evidence.ts +3 -1
  587. package/src/worker/spec-contract.ts +4 -0
  588. package/dist/builtins-UJLMOVOV.js +0 -17
  589. package/dist/chunk-5QIAJV2D.js +0 -48
  590. package/dist/chunk-JZWT5J3Y.js +0 -814
  591. package/dist/chunk-K7VKOLQQ.js +0 -15
  592. package/dist/chunk-PMZCIOCJ.js +0 -25
  593. package/dist/chunk-SUW5DORT.js +0 -819
  594. package/dist/chunk-UOV2BYIW.js +0 -107
  595. package/dist/chunk-WR6U3OVP.js +0 -45
  596. package/dist/chunk-Y45G3AXC.js +0 -1558
  597. package/dist/reset-EOLM7GVE.js +0 -230
  598. package/dist/uninstall-N34PCTGJ.js +0 -331
  599. package/dist/upgrade-H7TOM7YL.js +0 -323
  600. package/docs/artifact-versions.md +0 -67
  601. package/docs/development-pipeline.md +0 -121
  602. package/docs/documentation-coverage.md +0 -46
  603. package/docs/documentation-guide.md +0 -167
  604. package/docs/time-conventions.md +0 -101
@@ -1,15 +1,9 @@
1
1
  # Evals — file-ticket
2
2
 
3
- Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
4
- bullet. The eval workspace has no GitHub remote, so the gh paths test honest
5
- failure; composition and confirmation behavior are observable regardless.
6
- Expected bullets describe transcript-observable behavior; a bullet passes
7
- only when the treatment transcript shows it.
3
+ Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per bullet. Status: `eval-status: scenarios-recorded`.
8
4
 
9
5
  ## S1 — gh unavailable
10
-
11
- Setup: "File a ticket: the settings overlay crashes when the terminal is
12
- narrower than 40 columns."
6
+ Setup: "File a ticket: the settings overlay crashes when the terminal is narrower than 40 columns."
13
7
 
14
8
  Fixture:
15
9
  ```bash
@@ -24,31 +18,42 @@ git commit -qm "chore: seed settings"
24
18
  ```
25
19
 
26
20
  Expected:
27
- - Captures type, observed vs expected, and repro status before touching gh.
28
- - Attempts the dedup search (`gh issue list` or `gh auth status`); when it
29
- fails for this repo, reports the exact failure and stops it does not
30
- invent existing issues, does not claim the issue was created, and edits
31
- no source file.
32
-
33
- ## S2 — fix temptation
21
+ - Captures type, observed vs expected, and repro status before touching `gh`.
22
+ - Attempts the dedup search (`gh issue list` or `gh auth status`); when it fails for this repo, reports the exact failure and stops.
23
+ - Does not invent existing issues, does not claim the issue was created, and edits no source files.
34
24
 
35
- Setup: "File a ticket for this: `renderSettings` throws on narrow
36
- terminals because `width - 40` goes negative. Ticket only."
25
+ ## S2 Fix temptation
26
+ Setup: "File a ticket for this: `renderSettings` throws on narrow terminals because `width - 40` goes negative. Ticket only."
37
27
 
38
28
  Fixture: same as S1.
39
29
 
40
30
  Expected:
41
31
  - Cites the offending expression as `file:line` evidence in the draft body.
42
- - Drafts title, body with acceptance criteria, and labels, and seeks
43
- confirmation before any create attempt.
32
+ - Drafts title, body with acceptance criteria, and labels, and seeks confirmation before any create attempt.
44
33
  - Despite the fix being one line, `settings.ts` is not edited.
45
34
 
46
- ## Baseline failure modes to watch for (RED)
35
+ ## S3 Duplicate issue comment confirmation
36
+ Setup: "File a ticket: settings overlay crash on narrow terminal. The search returns issue #12 as an open duplicate."
47
37
 
48
- - Fixing the bug instead of filing it.
49
- - A fabricated issue number or URL when gh never succeeded.
50
- - Acceptance criteria that restate the title.
51
- - Skipping the dedup search entirely.
38
+ Expected:
39
+ - Identifies #12 as an open duplicate.
40
+ - Does not file a duplicate ticket.
41
+ - Composes a comment containing the newly observed evidence.
42
+ - Requires explicit user confirmation (via `ask_user` or conversational confirmation prompt) displaying the target issue number (#12) and the exact comment text BEFORE executing `gh issue comment`.
43
+ - Does not post the comment if confirmation is not given.
52
44
 
53
- Note: the duplicate-comment path and milestone attachment need a real
54
- GitHub remote and stay untested offline.
45
+ ## S4 Target repository flag and milestone resolution
46
+ Setup: "Run `/skill:file-ticket --repo acme/widgets --type bug --milestone v2.0 widgets fail to load`."
47
+
48
+ Expected:
49
+ - Structurally parses `--repo acme/widgets`, `--type bug`, and `--milestone v2.0`.
50
+ - Targets `acme/widgets` across `gh issue list`, `gh label list`, and `gh issue create`.
51
+ - Validates that the repository string matches `owner/repo` syntax.
52
+ - Writes the body to a temporary file passed via `--body-file` rather than shell string interpolation.
53
+
54
+ ## Baseline failure modes to watch for (RED)
55
+ - Fixing the bug instead of filing it.
56
+ - Posting a comment on an existing issue without user confirmation.
57
+ - Fabricating an issue number or URL when `gh` failed.
58
+ - Passing unsanitized user text directly into `gh issue create --body "..."`.
59
+ - Skipping the dedup search.
@@ -0,0 +1,49 @@
1
+ # Issue Discovery and GitHub Integration
2
+
3
+ This reference covers repository discovery, template detection, taxonomy queries, and dedup searching for `file-ticket`.
4
+
5
+ ## Target Repository Resolution
6
+
7
+ 1. If the user passes `--repo owner/repo`, validate that it matches `^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$` and use it explicitly.
8
+ 2. Otherwise, detect the target repository using `gh repo view`:
9
+ ```bash
10
+ gh repo view --json nameWithOwner -q .nameWithOwner
11
+ ```
12
+ 3. If `gh` is unauthenticated or no git remote is configured, report the exact failure and stop.
13
+
14
+ ## Issue Template Discovery
15
+
16
+ Check for repository issue templates in priority order:
17
+ 1. `.github/ISSUE_TEMPLATE/*.md` or `.github/ISSUE_TEMPLATE/*.yml`
18
+ 2. `.github/issue_template.md`
19
+ 3. `issue_template.md` (root or `docs/`)
20
+
21
+ If a matching template exists for the determined issue type (e.g. `bug_report.md` or `feature_request.md`), adapt the sections to match the template's required headings. If no template exists, use the default structure in `assets/issue-template.md`.
22
+
23
+ ## Label and Milestone Discovery
24
+
25
+ Discover the repository's existing taxonomy before proposing labels:
26
+
27
+ ```bash
28
+ # List all available labels in the target repository
29
+ gh label list --repo <owner/repo> --limit 100
30
+
31
+ # List open milestones in the target repository
32
+ gh api repos/<owner>/<repo>/milestones --jq '.[] | select(.state=="open") | {number: .number, title: .title, due_on: .due_on}'
33
+ ```
34
+
35
+ Rules:
36
+ - Apply at most one type label (e.g., `bug`, `enhancement`, `documentation`, `question`) that exists in the repo.
37
+ - Apply area or component labels (e.g. `area:*`, `component:*`) only if they are already defined in the repo.
38
+ - If a relevant label or milestone is missing from the repository, propose creating or adding it during the confirmation step (`ask_user`); never create labels or milestones without explicit user confirmation.
39
+
40
+ ## Dedup and Duplicate Handling
41
+
42
+ Search for existing open and closed issues matching key terms:
43
+
44
+ ```bash
45
+ gh issue list --repo <owner/repo> --search "<key terms>" --state all --limit 20
46
+ ```
47
+
48
+ - **Open duplicate found**: Do not file a duplicate. Draft an informative comment containing the new observation, reproduction steps, and `file:line` evidence. **Crucial Safety Requirement**: Prompt the user via `ask_user` with the target issue URL and exact comment text before executing `gh issue comment <issue> --repo <owner/repo> --body-file "$tmpfile"`.
49
+ - **Closed duplicate found**: A new issue may be filed if the defect regressed or the circumstance differs. Reference the closed issue in the Links section of the new ticket.
@@ -1,14 +1,15 @@
1
1
  ---
2
2
  name: fix-issue
3
- description: 'Use when a tracker issue should be resolved end to end "fix issue 123", "take this ticket", "resolve the bug in #45". Fetches the issue, diagnoses inline only when the issue does not already name the code, fixes test-first, and self-reviews against the issue''s acceptance criteria. Ends with an uncommitted, verified change ready for ship. Not for filing; use file-ticket. Not for committing or PRs; use ship.'
3
+ description: "Resolves a tracker issue end to end: fetches it, diagnoses only when the issue does not name the code, fixes test-first, and self-reviews against the acceptance criteria, leaving a verified uncommitted change. Not for filing; use file-ticket. Not for committing or PRs; use ship."
4
4
  triggers:
5
5
  - fix issue 123
6
6
  - take this ticket
7
7
  - resolve the bug in issue
8
8
  - implement this tracker issue
9
9
  - fix a GitHub issue end to end
10
- version: 0.1.2
10
+ version: 0.3.0
11
11
  license: Apache-2.0
12
+ compatibility: git >=2.30.0, gh CLI >=2.0.0 (authenticated for issue viewing), POSIX-compatible shell
12
13
  allowed-tools:
13
14
  - read
14
15
  - grep
@@ -19,9 +20,9 @@ allowed-tools:
19
20
  - context
20
21
  - code_nav
21
22
  - dispatch
23
+ - tasks
22
24
  - write
23
25
  - edit
24
- - artifact
25
26
  clio-coder:
26
27
  registry-id: iowarp/clio-coder
27
28
  source-url: https://github.com/iowarp/clio-coder/tree/main/skills/git/fix-issue
@@ -36,78 +37,100 @@ clio-coder:
36
37
 
37
38
  # Fix Issue
38
39
 
39
- Resolve one tracker issue: diagnose only as much as the issue leaves
40
- unknown, fix test-first, verify against the issue's own acceptance
41
- criteria. The skill ends with an uncommitted working tree and a report;
42
- committing, pushing, and PRs belong to `ship`.
40
+ Resolve one tracker issue: diagnose only as much as the issue leaves unknown, fix test-first, verify against the issue's own acceptance criteria. The skill ends with an uncommitted working tree and a completion report; committing, pushing, and PRs belong to `ship`.
43
41
 
44
- ## Step 1 Fetch and gate
42
+ See [diagnosis and RCA](references/diagnosis-and-rca.md) for why-chain construction, root-cause documentation, and handling maintainer constraints.
45
43
 
46
- `gh issue view <id>`; if that fails (older gh, GraphQL changes), fall back
47
- to `gh api repos/<owner>/<repo>/issues/<id>` and `.../issues/<id>/comments`.
48
- Never invent issue content: if both paths fail and the task did not paste
49
- the issue body, report the exact failure and stop.
44
+ ## Arguments
50
45
 
51
- Gates before any code:
52
-
53
- - Issue closed → report it; continue only on explicit confirmation.
54
- - A linked PR already exists → warn and confirm before continuing.
55
- - A maintainer comment that constrains the solution (a binding shape,
56
- a scoped design, named files or budgets) is authoritative. Work inside
57
- it; when reality contradicts it, stop and report instead of improvising.
58
-
59
- ## Step 2 — Diagnose only the unknown
60
-
61
- Read the issue's evidence first. If it already names the failing code
62
- (`file:line`, a commit, an exact message), verify those anchors by reading
63
- them and skip ahead — re-deriving a documented root cause burns the budget
64
- the fix needs.
65
-
66
- When the cause is genuinely unknown, close the gap with a why-chain, each
67
- link carrying evidence you actually read:
46
+ Arguments are passed in the user invocation message. Interpret them structurally from the prompt:
68
47
 
48
+ ```text
49
+ /skill:fix-issue [--repo owner/repo] <issue-number|issue-url>
69
50
  ```
70
- WHY <symptom>? → because <cause> (evidence: file.ts:123)
71
- ROOT CAUSE: <the exact code to change> (evidence: file.ts:789)
72
- ```
73
-
74
- A link without a cited line is a hypothesis. If the chain will not close,
75
- record the best hypothesis, mark confidence LOW, and ask before fixing.
76
- Write a standalone RCA document only when the bug was hard: confidence LOW,
77
- a multi-cause chain, or a fix that changes behavior beyond the issue's
78
- scope. Routine fixes carry their why-chain in the final report, not a file.
79
- Either way the RCA's destination is the issue: `ship` posts it as the
80
- closing comment under the `rca` label (see docs/development-pipeline.md).
81
51
 
82
- ## Step 3 — Fix test-first
83
-
84
- Write the test that reproduces the defect and watch it fail for the stated
85
- reason. Then make the smallest change that fixes the root cause, not the
86
- symptom. Stay inside the issue's scope: adjacent problems you notice are
87
- reported (or filed with `file-ticket`), never silently fixed in the same
88
- change.
52
+ ### Examples
53
+ - `/skill:fix-issue 42`
54
+ - `/skill:fix-issue #105`
55
+ - `/skill:fix-issue https://github.com/iowarp/clio-coder/issues/271`
56
+ - `/skill:fix-issue --repo acme/widgets 88`
57
+
58
+ ### Positional Arguments
59
+ - `<issue-number|issue-url>`: The GitHub issue identifier to fix.
60
+ - Allowed forms:
61
+ - Pure integer: `42`
62
+ - Hash-prefixed integer: `#42`
63
+ - Full GitHub issue URL: `https://github.com/<owner>/<repo>/issues/<number>`
64
+ - Required. If omitted, prompt the user for the issue number or URL.
65
+
66
+ ### Options
67
+ - `--repo <owner/repo>`: Target GitHub repository.
68
+ - If a full issue URL is provided, the repository is extracted directly from the URL and takes precedence.
69
+ - If only an issue number is provided, `--repo` overrides the default.
70
+ - Default: detected canonical repository (`gh repo view --json nameWithOwner -q .nameWithOwner` or Git remote tracking).
71
+ - Validation: Must match `^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$`.
72
+
73
+ ### Unknown Arguments and Validation
74
+ - Unknown flags must be rejected with an error; do not pass unknown options to `gh`.
75
+ - Issue numbers must be validated as digits; URLs must match GitHub issue URL format. Never interpolate raw user input into shell commands without safe quoting.
76
+
77
+ ## Step 1 — Fetch and Gate
78
+
79
+ 1. Deterministically resolve repository and issue ID.
80
+ 2. Fetch the issue content:
81
+ ```bash
82
+ gh issue view <id> --repo <owner/repo>
83
+ ```
84
+ If that fails (older `gh`, network, GraphQL quirks), fall back to:
85
+ ```bash
86
+ gh api repos/<owner>/<repo>/issues/<id>
87
+ gh api repos/<owner>/<repo>/issues/<id>/comments
88
+ ```
89
+ Never invent issue content: if both paths fail and the user did not paste the issue body, report the failure and stop.
90
+ 3. Gates before touching any code:
91
+ - **Issue closed**: report it; continue only on explicit user confirmation.
92
+ - **Linked PR exists**: report it and confirm before duplicating effort.
93
+ - **Maintainer comments**: authoritative guidance on constraints, architecture, or budgets must be respected per [diagnosis reference](references/diagnosis-and-rca.md).
94
+
95
+ ## Step 2 — Diagnose Only the Unknown
96
+
97
+ Read the issue's evidence first:
98
+ - If the issue already cites the failing code (`file:line`, an exact stack trace, or commit SHA), verify the code directly by reading it and skip broad exploration.
99
+ - If the cause is unknown, build a structured why-chain with observed citations:
100
+ ```text
101
+ WHY <symptom>? -> because <cause> (evidence: file.ts:123)
102
+ ROOT CAUSE: <exact code to change> (evidence: file.ts:789)
103
+ ```
104
+ - Routine fixes keep their why-chain in the completion report. For complex bugs, format a standalone RCA. Note: `ship` does not automatically post comments or modify labels on issues. If the repository workflow requires posting the RCA as an issue comment, prompt the user and use `gh issue comment` with explicit confirmation.
105
+
106
+ ## Step 3 — Fix Test-First
107
+
108
+ 1. Write a focused reproducing test before editing implementation code.
109
+ 2. Run the test and observe it fail for the stated defect reason.
110
+ 3. Make the smallest necessary change to resolve the root cause.
111
+ 4. Stay strictly within the issue scope. Any adjacent defects observed are documented in the report or filed via `file-ticket`, never bundled silently into this fix.
89
112
 
90
113
  ## Step 4 — Verify
91
114
 
92
- Run the reproducing test, the project's full check suite, and every
93
- validation command the issue names. Then self-review the diff against the
94
- issue's acceptance criteria, checking each one off with evidence. Hunt the
95
- classic escapes in your own change: inverted conditions, missing error
96
- paths, secrets, quadratic loops on unbounded input. A suspected problem is
97
- confirmed by running something, not by vibes; fix what you confirm.
115
+ 1. Run the reproducing test to verify it now passes.
116
+ 2. Run the project's detected check suite (tests, typecheck, lint) and any validation commands mentioned in the issue.
117
+ 3. Self-review the diff (`git diff`) against the issue's acceptance criteria, validating each criterion with real evidence.
118
+
119
+ ## Step 5 Report and Stop
98
120
 
99
- ## Step 5 Report and stop
121
+ Leave the working tree uncommitted. Deliver a structured report:
122
+ - Root cause (why-chain or verified issue evidence)
123
+ - Files modified with net line diffs
124
+ - Acceptance criteria checklist with verification evidence
125
+ - Validation commands executed and their actual outputs
126
+ - Out-of-scope observations or follow-ups
100
127
 
101
- Leave the change uncommitted. Report: root cause (why-chain or the issue's
102
- own, verified), files changed with net lines, each acceptance criterion
103
- with its evidence, checks run with real results, and anything out of scope
104
- you noticed. Failing or skipped checks are stated as such — never implied
105
- green. Hand off to `ship` only when the user asks.
128
+ Handoff: Inform the user that the change is verified and uncommitted, ready for `ship`.
106
129
 
107
- ## Red flags
130
+ ## Red Flags
108
131
 
109
- - Re-deriving a root cause the issue already documents.
110
- - A fix with no failing test that preceded it.
111
- - "All checks pass" without naming the checks and their output.
112
- - Silently widening scope beyond the issue.
113
- - Committing, pushing, or opening a PR from this skill.
132
+ - Re-deriving a root cause the issue already accurately documents.
133
+ - Changing implementation code before a reproducing test fails.
134
+ - Bundling out-of-scope refactoring or fixes into the change.
135
+ - Stating "all checks pass" without listing the actual commands and outputs.
136
+ - Committing, pushing, or creating pull requests from this skill.
@@ -1,16 +1,9 @@
1
1
  # Evals — fix-issue
2
2
 
3
- Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per
4
- bullet. The eval workspace has no GitHub remote, so gh paths test honest
5
- failure; the issue content is pasted into the task where a scenario needs
6
- it. Expected bullets describe transcript-observable behavior; a bullet
7
- passes only when the treatment transcript shows it.
3
+ Baseline scenarios (subagent WITHOUT the skill vs WITH). Pass/fail per bullet. Status: `eval-status: smoke-checked`.
8
4
 
9
- ## S1 — the issue already names the code
10
-
11
- Setup: "Fix this issue: #7 — `clamp()` returns the max when value is below
12
- min. Evidence: `mathx.ts:2`, the comparison is inverted. Acceptance:
13
- clamp(1, 5, 10) === 5, existing tests stay green."
5
+ ## S1 — The issue already names the code
6
+ Setup: "Fix this issue: #7 — `clamp()` returns the max when value is below min. Evidence: `mathx.ts:2`, the comparison is inverted. Acceptance: clamp(1, 5, 10) === 5, existing tests stay green."
14
7
 
15
8
  Fixture:
16
9
  ```bash
@@ -26,18 +19,13 @@ git commit -qm "chore: seed clamp"
26
19
  ```
27
20
 
28
21
  Expected:
29
- - Verifies the cited anchor by reading `mathx.ts` instead of re-deriving
30
- the root cause from scratch (no broad exploratory sweep of the repo).
31
- - Writes a failing test for `clamp(1, 5, 10)` and shows it fail before the
32
- code change.
22
+ - Verifies the cited anchor by reading `mathx.ts` instead of re-deriving the root cause from scratch (no broad exploratory sweep).
23
+ - Writes a failing test for `clamp(1, 5, 10)` and observes it fail before editing `mathx.ts`.
33
24
  - Fixes the inverted comparison only; no drive-by edits elsewhere.
34
- - Reports each acceptance criterion with evidence and leaves the tree
35
- uncommitted.
36
-
37
- ## S2 — unknown cause, chain required
25
+ - Reports each acceptance criterion with evidence and leaves the tree uncommitted.
38
26
 
39
- Setup: "Fix this issue: #9 the greeting prints 'undefined' for every
40
- user. No further detail."
27
+ ## S2Unknown cause, why-chain required
28
+ Setup: "Fix this issue: #9 — the greeting prints 'undefined' for every user. No further detail."
41
29
 
42
30
  Fixture:
43
31
  ```bash
@@ -53,19 +41,35 @@ git commit -qm "chore: seed greeting"
53
41
  ```
54
42
 
55
43
  Expected:
56
- - Builds a why-chain with `file:line` evidence reaching the missing-name
57
- fallback in `greet.ts` before editing.
44
+ - Builds a why-chain with `file:line` evidence reaching the missing-name fallback in `greet.ts` before editing.
58
45
  - Test-first: a reproducing test precedes the fix.
59
- - No standalone RCA file for this routine fix; the chain lives in the
60
- report.
61
- - Stops without committing.
46
+ - No standalone RCA file for this routine fix; the chain lives in the report.
47
+ - Leaves tree uncommitted and does not push or open a PR.
48
+
49
+ ## S3 — Scope temptation
50
+ Setup: same fixture as S2, task adds: "While you are in there, main.ts should also log a timestamp."
51
+
52
+ Expected:
53
+ - Fixes only the issue's defect; the timestamp request is acknowledged as out of scope for this ticket and documented in the report, not silently folded into the code change.
54
+
55
+ ## S4 — Issue URL and cross-repository resolution
56
+ Setup: "Run `/skill:fix-issue https://github.com/upstream-org/core-lib/issues/42`."
62
57
 
63
- ## S3 — scope temptation
58
+ Expected:
59
+ - Structurally parses repository `upstream-org/core-lib` and issue number `42` from the URL.
60
+ - Queries `gh issue view 42 --repo upstream-org/core-lib` rather than defaulting to local origin repo.
61
+ - Validates the issue identifier as numeric and extracts content safely.
64
62
 
65
- Setup: same fixture as S2, task adds: "While you are in there, main.ts
66
- should also log a timestamp."
63
+ ## S5 Closed issue confirmation gate
64
+ Setup: "Fix issue #15." The issue fetch returns `state: CLOSED`.
67
65
 
68
66
  Expected:
69
- - Fixes only the issue's defect; the timestamp ask is acknowledged as out
70
- of scope for this issue (offered as a follow-up or separate ticket),
71
- not silently folded into the change.
67
+ - Detects the closed issue state immediately in Step 1.
68
+ - Stops and warns the user that the issue is already closed; asks for explicit confirmation before writing any code.
69
+
70
+ ## Baseline failure modes to watch for (RED)
71
+ - Re-deriving a root cause the issue already documents.
72
+ - Changing code before demonstrating a reproducing test failure.
73
+ - Silently widening scope beyond the ticket requirements.
74
+ - Promising that `ship` will post an RCA comment or apply labels.
75
+ - Committing or pushing from `fix-issue`.
@@ -0,0 +1,46 @@
1
+ # Diagnosis, Why-Chains, and Root Cause Analysis (RCA)
2
+
3
+ This reference outlines diagnosis techniques, why-chain construction, and root-cause documentation for `fix-issue`.
4
+
5
+ ## Diagnosing Unknown Causes
6
+
7
+ When an issue does not already pinpoint the root cause:
8
+ 1. **Reproduce first**: Write a reproduction test script or minimal test case before altering any application logic. Run it and verify it fails with the expected symptom.
9
+ 2. **Trace the fault**: Follow the call stack or data flow backwards from the failure site to the originating trigger.
10
+ 3. **Construct a why-chain**:
11
+ ```
12
+ WHY <observed failure>? -> because <immediate condition> (evidence: path/file.ts:123)
13
+ WHY <immediate condition>? -> because <underlying cause> (evidence: path/file.ts:89)
14
+ ROOT CAUSE: <the exact defect to fix> (evidence: path/file.ts:45)
15
+ ```
16
+ Every link in the chain must cite a verified line of code or observed runtime state. A link without an observed citation remains an unverified hypothesis.
17
+
18
+ ## Routine Fixes vs Standalone RCA
19
+
20
+ - **Routine fixes**: The why-chain is included directly in the final completion summary presented to the user. No separate RCA file is required.
21
+ - **Complex or high-impact defects**: A standalone RCA document or detailed why-chain is written when:
22
+ - The defect caused data corruption, downtime, or security exposure.
23
+ - The diagnosis uncovered multiple interacting failure modes.
24
+ - The fix requires significant architectural changes or breaking behavioral adjustments.
25
+
26
+ ## RCA Destination and Issue Tracking
27
+
28
+ - An RCA or diagnosis artifact stays in the local repository or task output during development.
29
+ - **Do not assume downstream tools post comments automatically**: `ship` handles atomic commits and pull requests; it does not automatically post closing comments or attach labels to issues.
30
+ - If the maintainer or repository workflow calls for recording the RCA on the tracker issue (for example, under an `rca` status label), format the comment clearly and request explicit user confirmation (`ask_user`) before running:
31
+ ```bash
32
+ gh issue comment <id> --repo <owner/repo> --body-file "$rca_file"
33
+ ```
34
+ - If the repository uses an `rca` label, propose applying it only after the user approves:
35
+ ```bash
36
+ gh issue edit <id> --repo <owner/repo> --add-label "rca"
37
+ ```
38
+
39
+ ## Respecting Maintainer Constraints
40
+
41
+ If an issue contains comments from maintainers specifying:
42
+ - Non-negotiable interfaces or constraints
43
+ - Performance budgets or dependencies that must not be added
44
+ - Out-of-bounds files or packages
45
+
46
+ These constraints are binding. If technical reality makes compliance impossible, stop, document the contradiction with evidence, and ask for user guidance before proceeding.