@iowarp/clio-coder 0.5.0 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/CHANGELOG.md +35 -0
  3. package/CONTRIBUTING.md +9 -0
  4. package/README.md +12 -9
  5. package/ROADMAP.md +30 -5
  6. package/dist/{acp-KS7ARGV6.js → acp-F6PGOFZ4.js} +2 -2
  7. package/dist/{agents-YOGJ2YEJ.js → agents-ZHP4R6EX.js} +22 -21
  8. package/dist/assets/codewiki.json +1 -1
  9. package/dist/{auth-CEDCO6O6.js → auth-N75U2H3Z.js} +4 -4
  10. package/dist/{chunk-D3KWFOUT.js → chunk-23UIXH6Z.js} +3 -3
  11. package/dist/{chunk-ZR5YA6ZF.js → chunk-36XVK5P5.js} +5 -5
  12. package/dist/{chunk-AVSR2HKI.js → chunk-3DZ4LPLS.js} +6 -6
  13. package/dist/{chunk-LYJJ6546.js → chunk-3GSPCWFX.js} +12 -12
  14. package/dist/{chunk-CRHPCPZP.js → chunk-4KC4CHKJ.js} +2 -2
  15. package/dist/{chunk-4VDHLCF5.js → chunk-4WJBWKMI.js} +2 -2
  16. package/dist/{chunk-KBUTSJSR.js → chunk-4XBYHXGK.js} +2 -2
  17. package/dist/{chunk-6W75D37F.js → chunk-53P775GE.js} +6 -3
  18. package/dist/{chunk-XZWSP67B.js → chunk-5APYAXCB.js} +2 -2
  19. package/dist/{chunk-D65E25JG.js → chunk-67HPYNTJ.js} +2 -2
  20. package/dist/{chunk-5JQR5B4D.js → chunk-6KV4KCQZ.js} +4 -4
  21. package/dist/{chunk-V4XJWDHR.js → chunk-6UKFRTXI.js} +2 -1
  22. package/dist/{chunk-NDPF2N2L.js → chunk-7DW7CJW2.js} +2 -2
  23. package/dist/{chunk-5KQEUIWM.js → chunk-7LUEQODV.js} +4 -4
  24. package/dist/{chunk-LNOXCGN2.js → chunk-7UFDIOBT.js} +3 -3
  25. package/dist/{chunk-DXSETN72.js → chunk-7WUGNN43.js} +2 -2
  26. package/dist/{chunk-V35KZDUZ.js → chunk-AA3GRZWS.js} +2 -2
  27. package/dist/{chunk-X4CEFOSG.js → chunk-ADO3OQIC.js} +4 -4
  28. package/dist/{chunk-UX2L5CUD.js → chunk-AI36V3ON.js} +3 -3
  29. package/dist/{chunk-B7GY6QER.js → chunk-B26OUMJW.js} +2 -2
  30. package/dist/{chunk-LAR7DX5E.js → chunk-B5TASTCK.js} +153 -62
  31. package/dist/{chunk-TGWZXJ7L.js → chunk-BEMQK5Q7.js} +92 -84
  32. package/dist/{chunk-RNDCROSG.js → chunk-CNXU7TR2.js} +3 -3
  33. package/dist/{chunk-3JLTRPN7.js → chunk-CVMUXT64.js} +35 -66
  34. package/dist/{chunk-733ZBT5P.js → chunk-E74MJF6G.js} +4 -4
  35. package/dist/{chunk-T2MDZES3.js → chunk-EBMTBE76.js} +3 -3
  36. package/dist/{chunk-OZ76TLGU.js → chunk-EEITU7S6.js} +2 -2
  37. package/dist/{chunk-GRHOXDKB.js → chunk-ELDJWJKM.js} +97 -14
  38. package/dist/{chunk-GCQFN7YI.js → chunk-EMYEQLWO.js} +2 -2
  39. package/dist/{chunk-LTWH2ACR.js → chunk-EQPFEDFV.js} +222 -127
  40. package/dist/{chunk-TDGYTWM6.js → chunk-F4I3H56H.js} +2 -2
  41. package/dist/chunk-F6KCJO3U.js +523 -0
  42. package/dist/{chunk-FGSQHUCK.js → chunk-F6VKWTTY.js} +5 -5
  43. package/dist/{chunk-UJD5MPP6.js → chunk-FLNXQQ5B.js} +2 -2
  44. package/dist/{chunk-EX57VVWW.js → chunk-FOSRJ2VZ.js} +4 -4
  45. package/dist/{chunk-ZARZ4POR.js → chunk-G5ZDQQE3.js} +3 -3
  46. package/dist/{chunk-HQVN7G4F.js → chunk-G62JBPXN.js} +7 -7
  47. package/dist/{chunk-ZJPORZTC.js → chunk-GIAI7A2K.js} +2 -2
  48. package/dist/chunk-GPTR6OTU.js +2551 -0
  49. package/dist/{chunk-EZD2BXGP.js → chunk-GUFQPTQK.js} +2 -2
  50. package/dist/{chunk-OPD7GL6F.js → chunk-H6FQVNZC.js} +8 -7
  51. package/dist/chunk-H7REJ7L5.js +80 -0
  52. package/dist/{chunk-EYTLV3W3.js → chunk-HTWTORF7.js} +2 -2
  53. package/dist/{chunk-DF6PI6GN.js → chunk-I6UKQPGS.js} +3 -3
  54. package/dist/{chunk-ISHUS7HC.js → chunk-JRW236JT.js} +3 -3
  55. package/dist/{chunk-DE2LU267.js → chunk-KKAJGT3B.js} +3 -2
  56. package/dist/{chunk-OV62D6KO.js → chunk-KQMYL5GR.js} +3 -3
  57. package/dist/{chunk-QDUUOZ3S.js → chunk-KWMFC7FN.js} +3 -3
  58. package/dist/{chunk-R7FGRZNF.js → chunk-LXYHCCIZ.js} +9 -9
  59. package/dist/{chunk-NFSK2VNU.js → chunk-LZMTVVN4.js} +2 -2
  60. package/dist/{chunk-62UK7AGW.js → chunk-M5PMRZSR.js} +397 -44
  61. package/dist/chunk-MMZMM6SW.js +131 -0
  62. package/dist/{chunk-FFYTC2KQ.js → chunk-MNABNEBX.js} +2 -2
  63. package/dist/{chunk-XMDBTYCH.js → chunk-N3CWOGVF.js} +3 -3
  64. package/dist/{chunk-VYRQHORQ.js → chunk-NMQSO6Z6.js} +4 -3
  65. package/dist/{chunk-R2UUNSNQ.js → chunk-O3ZAF7UY.js} +18 -5
  66. package/dist/{chunk-4SYHGVDE.js → chunk-OQNCLZI4.js} +4 -4
  67. package/dist/{chunk-EG4ARXPC.js → chunk-OX6QTA4N.js} +3 -3
  68. package/dist/{chunk-P4GNZPXO.js → chunk-OYUS3UZP.js} +2 -2
  69. package/dist/{chunk-OQ2EOAHA.js → chunk-PF36KOGI.js} +291 -112
  70. package/dist/{chunk-55RMDDFM.js → chunk-PGQG7ZMW.js} +2 -2
  71. package/dist/{chunk-CBAQPTDU.js → chunk-PIU6BXXW.js} +2 -2
  72. package/dist/{chunk-EKV4UBCM.js → chunk-PZBQUJ2F.js} +2 -2
  73. package/dist/{chunk-7RET77VB.js → chunk-Q2HKY32Y.js} +2 -2
  74. package/dist/{chunk-U6YTUVOX.js → chunk-Q4RMNWMZ.js} +4 -4
  75. package/dist/chunk-Q6FRR3AQ.js +48 -0
  76. package/dist/{chunk-6RJMYYIE.js → chunk-QJSIAJBY.js} +3 -3
  77. package/dist/{chunk-DOUISWEE.js → chunk-QOJ4ERMU.js} +5 -5
  78. package/dist/{chunk-IFPDAD7R.js → chunk-RWSRKXLT.js} +3 -3
  79. package/dist/{chunk-T33IYTZM.js → chunk-SAASVMIY.js} +3 -3
  80. package/dist/{chunk-2DTIWSAW.js → chunk-SEQDH6JC.js} +3 -3
  81. package/dist/{chunk-BRCOSE7O.js → chunk-SZUO5BSE.js} +2 -2
  82. package/dist/{chunk-HOEDA42N.js → chunk-T7HZ7KJF.js} +2 -2
  83. package/dist/{chunk-OJXOA6YU.js → chunk-TL6LNERH.js} +2 -2
  84. package/dist/{chunk-UCINIRHW.js → chunk-TPCZXWLT.js} +3 -3
  85. package/dist/{chunk-ZUKUCZYZ.js → chunk-TQ2KTH4A.js} +2 -2
  86. package/dist/{chunk-4WOOTKFD.js → chunk-U3FETNQB.js} +341 -20
  87. package/dist/{chunk-5B3RTYAK.js → chunk-UGDSB4AN.js} +2 -2
  88. package/dist/{chunk-VKHLUZNO.js → chunk-UZ7YBL43.js} +3 -3
  89. package/dist/{chunk-QNUQ7K7D.js → chunk-VKMSEO7Y.js} +4 -4
  90. package/dist/{chunk-IN7DGBVS.js → chunk-VLX5VZ35.js} +5 -5
  91. package/dist/{chunk-SJGS3GDI.js → chunk-WAGBMMNX.js} +5 -5
  92. package/dist/{chunk-BFOSV5EZ.js → chunk-WX2YCH7F.js} +2 -2
  93. package/dist/{chunk-3LT34CAM.js → chunk-XBIGUILU.js} +32 -17
  94. package/dist/{chunk-XDHUDE5K.js → chunk-XKYBFRWR.js} +5 -5
  95. package/dist/{chunk-U5QU5ZOD.js → chunk-XYPWFSU5.js} +3 -3
  96. package/dist/{chunk-YBUECLAF.js → chunk-YEJQDODA.js} +2 -2
  97. package/dist/{chunk-YQ6XEFVK.js → chunk-Z74OGONW.js} +39 -7
  98. package/dist/{chunk-I4ELN5BX.js → chunk-ZTNOEJRI.js} +2 -2
  99. package/dist/cli/index.js +26 -26
  100. package/dist/{clio-K2PBVCEM.js → clio-4IKFE25F.js} +2 -2
  101. package/dist/{clio-context-tools-GR4OHFSO.js → clio-context-tools-OHJXYX4R.js} +25 -23
  102. package/dist/{code-nav-4X3OI6DK.js → code-nav-XPM3MY5I.js} +7 -7
  103. package/dist/{config-Q5J7UBAB.js → config-343YS25T.js} +43 -41
  104. package/dist/{config-graph-P3555574.js → config-graph-WI263KDX.js} +43 -41
  105. package/dist/{configure-KIJ32ZO6.js → configure-GZDG4HER.js} +21 -21
  106. package/dist/{context-LFBQOSXT.js → context-4OFO7N7Y.js} +12 -12
  107. package/dist/{context-WBH3KSVR.js → context-JLK2RLOG.js} +42 -40
  108. package/dist/{context-NNLBES2Y.js → context-O6DIWCF6.js} +23 -21
  109. package/dist/{context-clear-YOHMQ6SQ.js → context-clear-MR7KOGQI.js} +42 -40
  110. package/dist/{context-working-set-MRAEVDNV.js → context-working-set-YZAD3KWO.js} +14 -13
  111. package/dist/{data-tool-JJPBGMQJ.js → data-tool-EKD7DFHG.js} +7 -7
  112. package/dist/{detail-RHJOTGN4.js → detail-YZPHFEVJ.js} +43 -41
  113. package/dist/{dispatch-runner-NC7PYNIO.js → dispatch-runner-VKVXVTWJ.js} +44 -42
  114. package/dist/{doctor-S5KZ2GTN.js → doctor-53AVQXAO.js} +17 -16
  115. package/dist/{doctor-deep-2EJQSHIZ.js → doctor-deep-BLRB2NCG.js} +5 -5
  116. package/dist/{eval-3D6M36N7.js → eval-P3BQSLQE.js} +21 -20
  117. package/dist/{evidence-XNVPPLVK.js → evidence-6LLI6SZH.js} +44 -42
  118. package/dist/{evidence-6IYN52ET.js → evidence-HTN3JLUO.js} +42 -40
  119. package/dist/{evidence-JVECPI3F.js → evidence-NJRE3R5H.js} +42 -40
  120. package/dist/{evolve-TLPUDJDM.js → evolve-WWZHJVJP.js} +42 -40
  121. package/dist/{fleet-WKVBF5SZ.js → fleet-GGZ4BVJE.js} +64 -62
  122. package/dist/{fleet-6RJWIOEO.js → fleet-QG3IIWWM.js} +44 -42
  123. package/dist/{fleet-commands-L6WFT7KZ.js → fleet-commands-J2ZIKISQ.js} +7 -7
  124. package/dist/{fleet-decisions-BTQMWU5A.js → fleet-decisions-Y2Q7375Q.js} +8 -8
  125. package/dist/{fleet-graph-553DZ67Q.js → fleet-graph-TCBCCCBP.js} +11 -11
  126. package/dist/{fleet-inspect-236FZPRB.js → fleet-inspect-KOLKBC56.js} +44 -42
  127. package/dist/{fleet-preflight-NZQHABWO.js → fleet-preflight-44UNCC4Y.js} +27 -25
  128. package/dist/{fleet-validate-7NLAE26R.js → fleet-validate-K2FXRZVA.js} +13 -13
  129. package/dist/{fleet-verify-E3RO6A5W.js → fleet-verify-AS444WDW.js} +42 -40
  130. package/dist/{fleet-view-KMZQY7YJ.js → fleet-view-X4JU4J6O.js} +43 -41
  131. package/dist/gui/ops-worker.js +9 -9
  132. package/dist/gui/reads-worker.js +9 -8
  133. package/dist/{init-DV5B6HQG.js → init-VSOWFHVL.js} +54 -52
  134. package/dist/{interactive-OXGYZYAS.js → interactive-JRCBENLZ.js} +1733 -577
  135. package/dist/{interop-J7UOBOSF.js → interop-JR6BCY7R.js} +10 -10
  136. package/dist/{inventory-OEGIL6PY.js → inventory-3JUGLVJI.js} +43 -41
  137. package/dist/{library-ROZAMUIL.js → library-7BOH3Y7N.js} +15 -15
  138. package/dist/{library-B3UPGY4V.js → library-7PFONXUI.js} +9 -9
  139. package/dist/{library-MXQA5DLT.js → library-TUYZMFIA.js} +7 -7
  140. package/dist/{library-import-2LTWOVBD.js → library-import-TJVXKLDK.js} +10 -10
  141. package/dist/{library-inventory-LJ3XHLWO.js → library-inventory-MD3AYTP4.js} +9 -9
  142. package/dist/{library-validation-DARHHUNW.js → library-validation-ZDLITEA3.js} +7 -7
  143. package/dist/{mcp-2GSPYQ54.js → mcp-EFCWUPUR.js} +3 -3
  144. package/dist/{memory-J3STUUIK.js → memory-Q2YVOKK5.js} +42 -40
  145. package/dist/{models-Y3GMFJ2V.js → models-M7BOCW7F.js} +17 -16
  146. package/dist/{monitor-LHNH577J.js → monitor-2HD3MC67.js} +47 -45
  147. package/dist/{orchestrator-DTAPXULA.js → orchestrator-OUW3ZN6Y.js} +1894 -226
  148. package/dist/{panes-A743ONZ5.js → panes-TTPPSYCL.js} +3 -3
  149. package/dist/{preload-OJBMAIXF.js → preload-A47C2NUF.js} +42 -40
  150. package/dist/{providers-CMETPZNS.js → providers-T43W7EL4.js} +4 -4
  151. package/dist/{resources-FY6XYFN2.js → resources-TP6X2V6W.js} +20 -11
  152. package/dist/{run-H64MEVTA.js → run-LDSBPMCS.js} +61 -59
  153. package/dist/{share-CAFMMQLM.js → share-URHKKMHR.js} +9 -9
  154. package/dist/{skills-ERKQUC7L.js → skills-E477MOOO.js} +13 -11
  155. package/dist/{skills-eval-CQ23MYQK.js → skills-eval-AIBR2L7H.js} +583 -93
  156. package/dist/{skills-inventory-TVUYJDVN.js → skills-inventory-HLMKY3R5.js} +13 -11
  157. package/dist/{slash-commands-ROG3KIFJ.js → slash-commands-LIIZKA5Y.js} +28 -26
  158. package/dist/{startup-background-KDWCQMWT.js → startup-background-JR2KDK6R.js} +43 -41
  159. package/dist/{steer-KKYXJSH4.js → steer-D7RTAPCM.js} +3 -3
  160. package/dist/{system-ZDW44ZGX.js → system-X2P5N4IY.js} +14 -13
  161. package/dist/{targets-AJWA6E7Z.js → targets-VFFAKUFM.js} +25 -24
  162. package/dist/{tasks-6L2JJRC5.js → tasks-ERAWZA22.js} +6 -6
  163. package/dist/{terminal-lease-YFUSDPAD.js → terminal-lease-V2N2BIKQ.js} +2 -2
  164. package/dist/{trace-LA5MVR4Y.js → trace-MA5BT7XY.js} +3 -3
  165. package/dist/{usage-XSILDHKF.js → usage-WYFY2L6M.js} +50 -48
  166. package/dist/{verifiers-ECA5GIHL.js → verifiers-TYIW2XKF.js} +7 -7
  167. package/dist/{verify-R6QQCCEB.js → verify-242UFYTP.js} +6 -6
  168. package/dist/{web-fetch-PVZNMBOB.js → web-fetch-LRAGYU6Y.js} +3 -3
  169. package/dist/{wiki-generate-RP22WP5K.js → wiki-generate-OFKOX2T6.js} +53 -51
  170. package/dist/worker/entry.js +31 -29
  171. package/docs/architecture/architecture.md +1 -0
  172. package/docs/architecture/context-engine.md +4 -2
  173. package/docs/architecture/observability.md +6 -4
  174. package/docs/architecture/prompt-envelope-and-tools.md +1 -1
  175. package/docs/architecture/session-lifecycle.md +1 -1
  176. package/docs/architecture/tui-design.md +12 -9
  177. package/docs/gui/parity/02-slash-and-surfaces.md +1 -1
  178. package/docs/guide/commands-and-modes.md +91 -5
  179. package/docs/guide/configuration-and-targets.md +2 -2
  180. package/docs/guide/context-continuity.md +49 -0
  181. package/docs/guide/proactive-memory.md +6 -3
  182. package/library/registry.yaml +292 -32
  183. package/library/skills/README.md +27 -2
  184. package/library/skills/context/context-handoff/SKILL.md +10 -4
  185. package/library/skills/meta/clio-coder-dev/SKILL.md +92 -88
  186. package/library/skills/meta/clio-coder-dev/evals.md +51 -46
  187. package/library/skills/meta/clio-coder-dev/plugin.json +2 -2
  188. package/library/skills/meta/clio-coder-dev/references/change-map.md +49 -0
  189. package/library/skills/meta/clio-coder-test/SKILL.md +89 -142
  190. package/library/skills/meta/clio-coder-test/evals.md +58 -62
  191. package/library/skills/meta/clio-coder-test/plugin.json +2 -2
  192. package/library/skills/meta/clio-coder-test/references/harness.md +3 -3
  193. package/library/skills/meta/clio-coder-test/references/lifecycle-validation.md +30 -0
  194. package/library/skills/meta/clio-coder-test/references/test-map.md +60 -89
  195. package/library/skills/registry.yaml +5 -5
  196. package/library/skills/skill-marketplace.json +12 -14
  197. package/package.json +1 -1
  198. package/src/cli/skills-eval.ts +1064 -54
  199. package/src/cli/usage.ts +2 -2
  200. package/src/core/clio-repo.ts +3 -0
  201. package/src/core/tool-names.ts +1 -0
  202. package/src/domains/context/budget/inspection.ts +9 -0
  203. package/src/domains/context/budget/live-view.ts +418 -0
  204. package/src/domains/context/budget/pressure.ts +393 -0
  205. package/src/domains/context/budget/request-fit.ts +15 -0
  206. package/src/domains/evidence/build.ts +24 -0
  207. package/src/domains/gateway/mcp/client.ts +1 -1
  208. package/src/domains/memory/commit-state.ts +160 -0
  209. package/src/domains/memory/operations.ts +18 -10
  210. package/src/domains/memory/prompt-cache.ts +95 -0
  211. package/src/domains/memory/prompt-section.ts +50 -7
  212. package/src/domains/memory/relevance.ts +93 -0
  213. package/src/domains/memory/restoration.ts +78 -0
  214. package/src/domains/memory/store.ts +39 -1
  215. package/src/domains/middleware/memory-intervention.ts +116 -24
  216. package/src/domains/observability/background-memory-usage.ts +1 -1
  217. package/src/domains/observability/cost.ts +3 -3
  218. package/src/domains/observability/extension.ts +1 -1
  219. package/src/domains/observability/metrics.ts +1 -1
  220. package/src/domains/prompts/compiler.ts +1 -1
  221. package/src/domains/prompts/extension.ts +38 -1
  222. package/src/domains/quota/anthropic-max-provider.ts +134 -0
  223. package/src/domains/quota/anthropic-usage.ts +220 -0
  224. package/src/domains/quota/antigravity-provider.ts +339 -0
  225. package/src/domains/quota/cache.ts +87 -0
  226. package/src/domains/quota/claude-code-provider.ts +169 -0
  227. package/src/domains/quota/codex-provider.ts +237 -0
  228. package/src/domains/quota/presentation.ts +240 -0
  229. package/src/domains/quota/registry.ts +23 -0
  230. package/src/domains/quota/service.ts +93 -0
  231. package/src/domains/quota/summary-feed.ts +86 -0
  232. package/src/domains/quota/types.ts +84 -0
  233. package/src/domains/resources/index.ts +11 -0
  234. package/src/domains/resources/skills/catalog-view.ts +571 -0
  235. package/src/domains/resources/skills/lexical-match.ts +136 -0
  236. package/src/domains/resources/skills/loader.ts +38 -0
  237. package/src/domains/resources/skills/promotion.ts +1 -55
  238. package/src/domains/resources/skills/provenance-pin.ts +50 -20
  239. package/src/domains/safety/action-classifier.ts +1 -0
  240. package/src/domains/session/compaction/branch-summary.ts +4 -1
  241. package/src/domains/session/compaction/compact.ts +18 -2
  242. package/src/domains/session/compaction/cut-point.ts +20 -1
  243. package/src/domains/session/compaction/tokens.ts +48 -3
  244. package/src/domains/session/context-accounting.ts +8 -1
  245. package/src/domains/session/continuity/carry.ts +59 -0
  246. package/src/domains/session/continuity/contract.ts +592 -0
  247. package/src/domains/session/continuity/evidence.ts +290 -0
  248. package/src/domains/session/continuity/fold.ts +1075 -0
  249. package/src/domains/session/continuity/note.ts +79 -0
  250. package/src/domains/session/continuity/operator-request.ts +104 -0
  251. package/src/domains/session/continuity/persistence.ts +408 -0
  252. package/src/domains/session/continuity/ports.ts +231 -0
  253. package/src/domains/session/continuity/projection.ts +538 -0
  254. package/src/domains/session/continuity/validate.ts +352 -0
  255. package/src/domains/session/entries.ts +50 -3
  256. package/src/domains/session/index.ts +48 -0
  257. package/src/domains/session/migrations/index.ts +7 -3
  258. package/src/domains/session/tree/fork.ts +15 -1
  259. package/src/domains/session/usage.ts +2 -2
  260. package/src/engine/acp/commands.ts +1 -1
  261. package/src/engine/agent.ts +133 -9
  262. package/src/engine/session.ts +13 -6
  263. package/src/entry/orchestrator.ts +116 -33
  264. package/src/interactive/chat-loop-messages.ts +2 -2
  265. package/src/interactive/chat-loop.ts +219 -63
  266. package/src/interactive/chat-renderer.ts +99 -8
  267. package/src/interactive/context-overlay.ts +24 -3
  268. package/src/interactive/continuity-controller.ts +526 -0
  269. package/src/interactive/dispatch-board.ts +21 -3
  270. package/src/interactive/footer/dashboard.ts +25 -1
  271. package/src/interactive/footer/key-hints.ts +2 -2
  272. package/src/interactive/footer/pages.ts +70 -27
  273. package/src/interactive/footer/widgets.ts +32 -7
  274. package/src/interactive/footer-panel.ts +1 -1
  275. package/src/interactive/interactive-application.ts +7 -2
  276. package/src/interactive/interactive-input-runtime.ts +2 -2
  277. package/src/interactive/interactive-presentation.ts +15 -0
  278. package/src/interactive/interactive-slash-runtime.ts +45 -8
  279. package/src/interactive/interactive-tickers.ts +7 -1
  280. package/src/interactive/model-session-replay.ts +130 -3
  281. package/src/interactive/output-reserve.ts +35 -0
  282. package/src/interactive/overlay-general-openers.ts +12 -8
  283. package/src/interactive/overlay-key-routing.ts +6 -9
  284. package/src/interactive/overlay-lifecycle.ts +10 -6
  285. package/src/interactive/overlay-session-lifecycle.ts +21 -14
  286. package/src/interactive/quota-view.ts +229 -0
  287. package/src/interactive/session-last-turn.ts +1 -1
  288. package/src/interactive/session-transcript.ts +2 -1
  289. package/src/interactive/session-usage-reseed.ts +2 -2
  290. package/src/interactive/side-question.ts +2 -2
  291. package/src/interactive/slash-commands.ts +28 -9
  292. package/src/interactive/turn-context.ts +686 -63
  293. package/src/interactive/turn-middleware.ts +39 -6
  294. package/src/interactive/turn-persistence.ts +15 -2
  295. package/src/interactive/turn-prewarm.ts +1 -1
  296. package/src/interactive/turn-runtime.ts +48 -5
  297. package/src/interactive/{cost-overlay.ts → usage-overlay.ts} +121 -33
  298. package/src/interactive/welcome-dashboard.ts +26 -3
  299. package/src/tools/agent-tools.ts +3 -1
  300. package/src/tools/bootstrap.ts +6 -0
  301. package/src/tools/builtin-tool-catalog.ts +9 -0
  302. package/src/tools/context/index.ts +148 -113
  303. package/src/tools/context/surface.ts +11 -7
  304. package/src/tools/core-bootstrap.ts +4 -0
  305. package/src/tools/observation.ts +8 -2
  306. package/src/tools/policy.ts +3 -0
  307. package/src/tools/self-compact.ts +31 -0
  308. package/src/tools/surface.ts +1 -0
  309. package/src/tools/tasks.ts +1 -1
  310. package/dist/chunk-CTFPFW3H.js +0 -44
  311. package/dist/chunk-EOJPDNUP.js +0 -1325
  312. package/dist/chunk-I4Y4WKZR.js +0 -386
@@ -148,53 +148,50 @@ entries:
148
148
  worktree-create. Not for integrating branches; use worktre
149
149
  - kind: skill
150
150
  name: clio-coder-dev
151
- description: "Governs changes to Clio Coder's own source and harness (TUI,
152
- skills, agents, tools, prompts, domains): what may change freely, what
153
- needs explicit user intent, and how to change it without breaking the
154
- architecture. Not for verifying a change against the harness; use
155
- clio-coder-test."
151
+ description: "Develop Clio Coder inside its own repository: trace source
152
+ contracts, implement bounded changes, coordinate sprint work, and preserve
153
+ running-agent and session correctness. Use before changing Clio source,
154
+ prompts, tools, or library; pair with clio-coder-test for validation."
156
155
  category: meta
157
156
  audit: pass
158
157
  triggers:
159
- - modify Clio Coder
160
- - change the Clio harness
161
- - edit Clio skills or agents
162
- - evolve Clio tools or prompts
163
- - Clio contribution boundary
164
- version: 0.4.0
158
+ - develop Clio in its own repository
159
+ - implement a Clio sprint packet
160
+ - change Clio context or session lifecycle
161
+ - edit Clio skills tools or prompts
162
+ version: 0.5.0
165
163
  sourceUrl: skills/meta/clio-coder-dev
166
- sha256: d72e2dcd441600f927738d352766a7472e2340bb60b1a23b6894f921079e4243
164
+ sha256: a2a9558348234ef5fb5fe821651ef57b8f6430473bd48818a1d468b405c1f61a
167
165
  provides:
168
166
  - kind: skill
169
167
  name: clio-coder-dev
170
- description: "Governs changes to Clio Coder's own source and harness (TUI,
171
- skills, agents, tools, prompts, domains): what may change freely, what
172
- needs explicit user intent, and how to change it without breaking the
173
- architecture. Not for verifying a change against the h"
168
+ description: "Develop Clio Coder inside its own repository: trace source
169
+ contracts, implement bounded changes, coordinate sprint work, and
170
+ preserve running-agent and session correctness. Use before changing
171
+ Clio source, prompts, tools, or library; pair with clio-coder-t"
174
172
  - kind: skill
175
173
  name: clio-coder-test
176
- description: Verifies a Clio Coder source change against the current contract,
177
- smoke, boundary, and application test lanes, including temporary-state and
178
- local-provider harnesses. Not for deciding what may change; use
179
- clio-coder-dev.
174
+ description: Validate Clio Coder changes using focused source regressions, built
175
+ CLI and ACP fixtures, skill/library checks, and isolated package or GUI
176
+ gates. Use when developing or diagnosing Clio itself; select checks from
177
+ the changed behavior and report evidence without claiming unrun coverage.
180
178
  category: meta
181
179
  audit: pass
182
180
  triggers:
183
- - test Clio Coder
184
- - verify a Clio source change
185
- - run Clio contract tests
186
- - test ACP over stdio
187
- - Clio mock provider harness
188
- version: 0.3.1
181
+ - validate a Clio change
182
+ - test Clio context compaction or memory
183
+ - verify Clio skill activation
184
+ - choose Clio test gates
185
+ version: 0.4.0
189
186
  sourceUrl: skills/meta/clio-coder-test
190
- sha256: c5a1fa81a19d671560d98a5f4e78f56a0515294611bc9ae796aac37165719a92
187
+ sha256: 6a4748d77d27be81da75ae8359cde2c44f76db83f025920b102a8aa309e17208
191
188
  provides:
192
189
  - kind: skill
193
190
  name: clio-coder-test
194
- description: Verifies a Clio Coder source change against the current contract,
195
- smoke, boundary, and application test lanes, including temporary-state
196
- and local-provider harnesses. Not for deciding what may change; use
197
- clio-coder-dev.
191
+ description: Validate Clio Coder changes using focused source regressions, built
192
+ CLI and ACP fixtures, skill/library checks, and isolated package or
193
+ GUI gates. Use when developing or diagnosing Clio itself; select
194
+ checks from the changed behavior and report evidence wi
198
195
  - kind: skill
199
196
  name: coding-standards
200
197
  description: Correct-by-construction TypeScript rules (errors as values, parse
@@ -235,7 +232,7 @@ entries:
235
232
  - write a continuation brief
236
233
  version: 0.5.1
237
234
  sourceUrl: skills/context/context-handoff
238
- sha256: f5d32418c95dcc9766b5564b00e9d27de6c86662b742666792f1ef984921ad24
235
+ sha256: 64fc4593679735a9e827d8753183595c48fc38ce031902af2d17da7f747a68b1
239
236
  provides:
240
237
  - kind: skill
241
238
  name: context-handoff
@@ -944,3 +941,266 @@ entries:
944
941
  integration branch, testing after each merge and running the full
945
942
  suite before the main line moves, with exact rollback on failure. Not
946
943
  for creating worktrees; use worktree-create. Not for closeou
944
+ - kind: plugin
945
+ name: wtfp
946
+ description: Portable, evidence-grounded academic research and writing workflows.
947
+ version: 0.7.3
948
+ sourceUrl: https://github.com/akougkas/wtf-p/tree/v0.7.3/vendors/plugin
949
+ sha256: 5a4209bed7c4926dc884c5b04bb66ce5ed61083e1b718045cf720f295cc2f3b5
950
+ provides:
951
+ - kind: agent
952
+ name: wtfp-argument-verifier
953
+ description: Verify that completed section text actually delivers the claims,
954
+ evidence, constraints, and connections promised by its plan. Execution
955
+ summaries are navigation aids, not proof; verdicts must be grounded in
956
+ the manuscript itself.
957
+ - kind: agent
958
+ name: wtfp-citation-expert
959
+ description: "Find a precise, defensible set of sources for explicit manuscript
960
+ claims and analyze whether the existing bibliography covers the
961
+ approved argument. Every recommendation must be grounded in resolvable
962
+ scholarly metadata and its relevance must be explained "
963
+ - kind: agent
964
+ name: wtfp-citation-formatter
965
+ description: Audit bibliography integrity and produce deterministic corrections
966
+ without touching the primary bibliography. The role cross-references
967
+ manuscript citation keys, detects missing and unused entries,
968
+ identifies likely duplicates, and normalizes records while
969
+ - kind: agent
970
+ name: wtfp-coherence-checker
971
+ description: Evaluate the manuscript as a connected argument rather than a set
972
+ of individually acceptable sections. Detect terminology drift, orphan
973
+ or unsupported claims, broken narrative transitions, invalid
974
+ cross-references, and contradictions across the document.
975
+ - kind: agent
976
+ name: wtfp-outliner
977
+ description: Turn the approved project brief into the structural foundation for
978
+ an academic document. The role defines what each section must
979
+ accomplish, how claims depend on one another, where evidence is
980
+ needed, and which sections can be developed concurrently.
981
+ - kind: agent
982
+ name: wtfp-plan-checker
983
+ description: "Determine whether proposed section plans are likely to produce the
984
+ intended academic outcome. Verification is goal-backward: a
985
+ syntactically complete plan still fails if it omits a claim, lacks
986
+ usable evidence, contradicts an author decision, or cannot fit"
987
+ - kind: agent
988
+ name: wtfp-prose-polisher
989
+ description: Improve clarity, rhythm, concision, and authorial voice without
990
+ changing technical meaning, evidence, citation placement, or
991
+ argumentative direction. Polishing is a constrained transformation,
992
+ not a substantive rewrite.
993
+ - kind: agent
994
+ name: wtfp-research-synthesizer
995
+ description: Investigate the literature needed to plan and write a specific
996
+ section well. The output is an evidence-traceable synthesis of
997
+ foundational and recent work, standard approaches, genuine gaps,
998
+ positioning options, and concrete writing guidance—not a search-r
999
+ - kind: agent
1000
+ name: wtfp-section-planner
1001
+ description: "Convert one approved section goal into small, executable writing
1002
+ plans. A plan is a precise writing contract: it connects claims,
1003
+ evidence, word budgets, sequencing, author decisions, and measurable
1004
+ completion criteria without pre-writing the section."
1005
+ - kind: agent
1006
+ name: wtfp-section-reviewer
1007
+ description: Review a section as an academic evaluator and produce prioritized,
1008
+ actionable feedback. The invocation may select a review
1009
+ lens—adversarial peer, significance-focused chair, production editor,
1010
+ or constructive mentor—without changing the underlying evidence
1011
+ - kind: agent
1012
+ name: wtfp-section-writer
1013
+ description: Execute an approved section plan into evidence-grounded academic
1014
+ prose or the explicitly requested scaffold. Preserve the author’s
1015
+ epistemic authority, make only supported claims, and leave an
1016
+ auditable account of what was produced and what remains unresol
1017
+ - kind: fleet
1018
+ name: wtfp-draft-review
1019
+ description: Draft one approved section and independently review its argument
1020
+ and evidence.
1021
+ - kind: fleet
1022
+ name: wtfp-plan-section
1023
+ description: Create and independently check one evidence-grounded section plan.
1024
+ - kind: prompt
1025
+ name: wtfp:add-todo
1026
+ description: Capture a bounded note or task without disrupting the active
1027
+ research flow.
1028
+ - kind: prompt
1029
+ name: wtfp:analyze-bib
1030
+ description: Analyze a bibliography and map its evidence to the paper's sections
1031
+ and claims.
1032
+ - kind: prompt
1033
+ name: wtfp:audit-milestone
1034
+ description: Run readiness checks across section completion, arguments, length,
1035
+ citations, and reviews.
1036
+ - kind: prompt
1037
+ name: wtfp:check-refs
1038
+ description: Audit citation integrity and emit a validated
1039
+ corrected-bibliography candidate without mutating source records or
1040
+ manuscript inputs.
1041
+ - kind: prompt
1042
+ name: wtfp:check-todos
1043
+ description: Review pending tasks and explicitly act on, defer, complete, or
1044
+ dismiss each one.
1045
+ - kind: prompt
1046
+ name: wtfp:checkpoint
1047
+ description: Save, list, or restore an exact portable paper-state checkpoint.
1048
+ - kind: prompt
1049
+ name: wtfp:contribute
1050
+ description: Guide a bounded WTF-P contribution from branch creation through a
1051
+ reviewable change request.
1052
+ - kind: prompt
1053
+ name: wtfp:create-outline
1054
+ description: Build the section structure, argument map, dependencies, and word
1055
+ budgets.
1056
+ - kind: prompt
1057
+ name: wtfp:create-poster
1058
+ description: Transform the paper's argument, methods, and findings into a
1059
+ concise academic poster.
1060
+ - kind: prompt
1061
+ name: wtfp:create-slides
1062
+ description: Transform the paper's argument, evidence, and findings into an
1063
+ audience-appropriate presentation.
1064
+ - kind: prompt
1065
+ name: wtfp:discuss-section
1066
+ description: Capture the researcher's intended purpose, essential content,
1067
+ voice, and boundaries before planning.
1068
+ - kind: prompt
1069
+ name: wtfp:execute-outline
1070
+ description: Draft independent section waves in parallel and verify
1071
+ cross-section coherence.
1072
+ - kind: prompt
1073
+ name: wtfp:export-latex
1074
+ description: Export the manuscript and bibliography to portable LaTeX source
1075
+ with declared formatting.
1076
+ - kind: prompt
1077
+ name: wtfp:help
1078
+ description: Render the stable WTF-P action reference from the canonical catalog.
1079
+ - kind: prompt
1080
+ name: wtfp:insert-section
1081
+ description: Insert a newly discovered section while preserving established
1082
+ numbering and dependencies.
1083
+ - kind: prompt
1084
+ name: wtfp:list-assumptions
1085
+ description: Preview the intended approach and assumptions for a section without
1086
+ changing project files.
1087
+ - kind: prompt
1088
+ name: wtfp:map-project
1089
+ description: Index existing drafts, data, figures, and references into portable
1090
+ project state.
1091
+ - kind: prompt
1092
+ name: wtfp:new-paper
1093
+ description: Interview the researcher and initialize a portable WTF-P project.
1094
+ - kind: prompt
1095
+ name: wtfp:pause-writing
1096
+ description: Record an exact context handoff so another session can resume
1097
+ without reconstructing intent.
1098
+ - kind: prompt
1099
+ name: wtfp:plan-milestone-gaps
1100
+ description: Convert milestone audit failures into targeted, verifiable fix plans.
1101
+ - kind: prompt
1102
+ name: wtfp:plan-revision
1103
+ description: Turn prioritized review findings into a bounded, testable revision
1104
+ plan.
1105
+ - kind: prompt
1106
+ name: wtfp:plan-section
1107
+ description: Create and independently check a detailed writing plan for one section.
1108
+ - kind: prompt
1109
+ name: wtfp:polish-prose
1110
+ description: Improve clarity, flow, precision, and academic voice without
1111
+ changing supported claims.
1112
+ - kind: prompt
1113
+ name: wtfp:progress
1114
+ description: Summarize writing progress, surface blockers, and recommend the
1115
+ next compatible action.
1116
+ - kind: prompt
1117
+ name: wtfp:quick
1118
+ description: Apply a small, bounded writing fix with minimal planning overhead
1119
+ and state tracking.
1120
+ - kind: prompt
1121
+ name: wtfp:remove-section
1122
+ description: Remove an unwritten future section and repair numbering and
1123
+ dependencies.
1124
+ - kind: prompt
1125
+ name: wtfp:report-bug
1126
+ description: Collect a reproducible bug report and publish it only after
1127
+ explicit user approval.
1128
+ - kind: prompt
1129
+ name: wtfp:request-feature
1130
+ description: Shape a concrete feature request and publish it only after explicit
1131
+ user approval.
1132
+ - kind: prompt
1133
+ name: wtfp:research-gap
1134
+ description: Synthesize literature, domain conventions, open gaps, and
1135
+ defensible positioning for a section.
1136
+ - kind: prompt
1137
+ name: wtfp:resume-writing
1138
+ description: Restore the latest portable handoff and route the researcher to the
1139
+ next safe action.
1140
+ - kind: prompt
1141
+ name: wtfp:review-section
1142
+ description: Review a drafted section for evidence, citations, coherence,
1143
+ requirements, and reader expectations.
1144
+ - kind: prompt
1145
+ name: wtfp:settings
1146
+ description: View and update portable project settings after presenting the
1147
+ exact proposed diff.
1148
+ - kind: prompt
1149
+ name: wtfp:submit-milestone
1150
+ description: Archive a completed draft or submission round with its reproducible
1151
+ project state and statistics.
1152
+ - kind: prompt
1153
+ name: wtfp:update
1154
+ description: Check for a newer compatible package or plugin release and install
1155
+ it only after approval.
1156
+ - kind: prompt
1157
+ name: wtfp:verify-work
1158
+ description: Test a drafted section against each plan requirement and record
1159
+ evidence one check at a time.
1160
+ - kind: prompt
1161
+ name: wtfp:write-section
1162
+ description: Execute an approved section plan, update state, and optionally
1163
+ verify argument coverage.
1164
+ - kind: skill
1165
+ name: wtfp-deliver-research
1166
+ description: This skill packages completed research for publication and
1167
+ presentation. It activates when an agent needs to export a manuscript
1168
+ to LaTeX, archive a draft or submission milestone, create research
1169
+ slides, design an academic poster, or perform the WTF-P expo
1170
+ - kind: skill
1171
+ name: wtfp-manage-project
1172
+ description: This skill coordinates the durable state of a research-writing
1173
+ project. It activates when an agent needs to report progress, pause or
1174
+ resume work, save or restore a checkpoint, edit project settings,
1175
+ capture or review todos, choose the next workflow, or pe
1176
+ - kind: skill
1177
+ name: wtfp-plan-section
1178
+ description: This skill plans and safely reshapes manuscript sections. It
1179
+ activates when an agent needs to discuss a section, expose
1180
+ assumptions, make a writing or revision plan, insert a newly
1181
+ discovered section, remove an unstarted section, or perform the WTF-P
1182
+ discu
1183
+ - kind: skill
1184
+ name: wtfp-research-literature
1185
+ description: This skill researches, organizes, and audits scholarly literature
1186
+ for an academic manuscript. It activates when an agent needs to
1187
+ investigate a research gap, analyze a bibliography, map references to
1188
+ sections, validate citation coverage, repair reference m
1189
+ - kind: skill
1190
+ name: wtfp-review-manuscript
1191
+ description: This skill reviews, verifies, audits, and polishes academic
1192
+ manuscripts. It activates when an agent needs to review a section,
1193
+ test work against a plan, refine academic voice, audit submission
1194
+ readiness, create milestone gap plans, or perform the WTF-P rev
1195
+ - kind: skill
1196
+ name: wtfp-start-project
1197
+ description: This skill initializes and structures academic writing projects. It
1198
+ activates when an agent needs to start a paper, map existing drafts,
1199
+ data, or references, create an outline, build an argument map,
1200
+ allocate word budgets, or perform the WTF-P new-paper, m
1201
+ - kind: skill
1202
+ name: wtfp-write-section
1203
+ description: This skill drafts and revises manuscript sections from approved
1204
+ plans and evidence. It activates when an agent needs to write one
1205
+ section, execute an outline in dependency waves, make a small targeted
1206
+ prose or citation change, or perform the WTF-P write-se
@@ -2,8 +2,9 @@
2
2
 
3
3
  This tree contains reviewed skill instructions and authoring evidence. Complete
4
4
  packages participate in the same [library](../../docs/guide/resource-library.md) as
5
- plugins, agents, prompts and fleets. Nothing in this source tree loads merely
6
- because it ships with Clio.
5
+ plugins, agents, prompts and fleets. Bundling a package does not activate it.
6
+ Inside a detected Clio source checkout, the two self-development skills described
7
+ below are also available directly from their authoring directories.
7
8
 
8
9
  `library/skills/` is the canonical source for Clio Coder's curated skills. The npm
9
10
  package includes this tree, `library/plugins/`, and the `library/registry.yaml` index.
@@ -42,6 +43,30 @@ grant authority the host disallows.
42
43
 
43
44
  ## Source organization
44
45
 
46
+ ### Developing Clio itself
47
+
48
+ When Clio detects its own Git checkout (including worktrees and subdirectory
49
+ launches), it discovers `clio-coder-dev` and `clio-coder-test` from
50
+ `library/skills/meta/` as native local skills. This does not install packages or
51
+ discover the rest of the catalog. Source roots must remain inside the checkout;
52
+ an unrelated nested Git repository does not inherit them.
53
+
54
+ The session prompt recommends `clio-coder-dev` for source changes and
55
+ `clio-coder-test` for validation. At `auto-edit` and `full-auto`, the model can
56
+ load ready skills through `context(scope="skills", name="...")`. At `read-only`
57
+ and `suggest`, operator activation is still required. This is automatic discovery
58
+ and task-aware guidance, not automatic body injection or a guarantee of a model's
59
+ tool choice. `--no-skills`, hidden skills, and task/tool restrictions still apply.
60
+
61
+ An installed package owns its name even when disabled, damaged, or pending
62
+ reload; source discovery does not bypass it. Native local overrides keep their
63
+ precedence. Worker recipes retain their declared skill bindings; parent-session
64
+ activation is not inherited. A running process needs a new candidate build and
65
+ restart for runtime changes, while editing these source skills remains ordinary
66
+ repository work. Follow `CONTRIBUTING.md` and the skills' focused references.
67
+
68
+ ## Catalog layout
69
+
45
70
  | Directory | Subject |
46
71
  | --- | --- |
47
72
  | `coding/` | Implementation, structural search, prototyping and tests |
@@ -34,10 +34,16 @@ Write a durable brief so a fresh session continues the work without re-reading
34
34
  the whole transcript. This is the write-side bookend of `context-prime`, which
35
35
  reads what this produces.
36
36
 
37
- Distinct from two things it is often confused with:
38
-
39
- - `/context compact` summarizes *within* the current session; it is ephemeral and lost
40
- when the process exits. A handoff is a file that outlives the session.
37
+ Choose the artifact that matches the continuation:
38
+
39
+ - `/context compact` writes a durable summary in the session ledger. `/resume`
40
+ replays that checkpoint after a restart. A handoff file gives a different
41
+ session or agent an explicit brief without requiring access to that ledger.
42
+ - On native runtimes, `self_compact({note_to_self})` preserves an exact assistant
43
+ note while reducing context and continuing the same task. Call it alone, after
44
+ outstanding tools settle. Its pending receipt does not prove completion; inspect
45
+ `context(scope="budget")` and leave `/context recover <id> <reduce|deliver>` to
46
+ the operator if the handoff is paused.
41
47
  - `/handoff <goal>` is the built-in that writes a quick handoff file from the
42
48
  live session; this skill is the fuller authored version with redaction and
43
49
  reference-not-copy discipline.
@@ -1,13 +1,12 @@
1
1
  ---
2
2
  name: clio-coder-dev
3
- description: "Governs changes to Clio Coder's own source and harness (TUI, skills, agents, tools, prompts, domains): what may change freely, what needs explicit user intent, and how to change it without breaking the architecture. Not for verifying a change against the harness; use clio-coder-test."
3
+ description: "Develop Clio Coder inside its own repository: trace source contracts, implement bounded changes, coordinate sprint work, and preserve running-agent and session correctness. Use before changing Clio source, prompts, tools, or library; pair with clio-coder-test for validation."
4
4
  triggers:
5
- - modify Clio Coder
6
- - change the Clio harness
7
- - edit Clio skills or agents
8
- - evolve Clio tools or prompts
9
- - Clio contribution boundary
10
- version: 0.4.0
5
+ - develop Clio in its own repository
6
+ - implement a Clio sprint packet
7
+ - change Clio context or session lifecycle
8
+ - edit Clio skills tools or prompts
9
+ version: 0.5.0
11
10
  license: Apache-2.0
12
11
  clio-coder:
13
12
  registry-id: iowarp/clio-coder
@@ -18,84 +17,89 @@ clio-coder:
18
17
  model-size: any
19
18
  ---
20
19
 
21
- # Clio Dev (self-development)
22
-
23
- Working inside Clio Coder's own source tree is ordinary repository work with
24
- one extra discipline: the contribution boundary. This skill governs that
25
- boundary and the change workflow.
26
-
27
- **REQUIRED SUB-SKILL:** `clio-coder-test` for test mechanics (which layer to run,
28
- the hot-reload loop). This skill decides *whether* a change may leave the
29
- machine; `clio-coder-test` decides *how* to verify it.
30
-
31
- ## The contribution boundary
32
-
33
- Two categories. They are not the same:
34
-
35
- - **Local development and testing**: editing source, running tests,
36
- reconfiguring the local install, dogfooding skills, making a local commit
37
- when the user asked for the work. **Permitted freely.**
38
- - **Contribution to the shared project**: pushing, opening PRs, publishing
39
- releases, tagging, or altering git remotes. **Requires explicit user intent,
40
- every time.** No exception for "tiny" changes.
41
-
42
- ### STOP red flags
43
-
44
- Any of these thoughts means you are about to cross the boundary. Stop,
45
- validate locally, report, and ask:
46
-
47
- - "The change works, I'll just push it so we're done."
48
- - "It's a tiny PR, I'll open it real quick."
49
- - "Let me tag a release / bump the version while I'm here."
50
- - "I'll commit and push so the next session has it."
51
- - "We're out of time, ship it."
52
-
53
- ### Rationalization table
54
-
55
- | Excuse | Reality |
56
- |---|---|
57
- | "Pushing is the obvious next step." | It is the user's step. Local is done; stop there. |
58
- | "The user clearly wants it shipped." | "Clearly" is an assumption. Get explicit intent. |
59
- | "A commit isn't a push." | A local commit is fine; never push or open a PR without intent. |
60
- | "Tagging is harmless." | Releases/tags/remotes are contribution. Out of bounds. |
61
- | "I'll just fix the remote/branch quickly." | Altering remotes is never implied work. Ask. |
62
-
63
- ## Self-development workflow
64
-
65
- Follow in order for every change:
66
-
67
- 1. **Classify the touched surface.** One of: CLI / user flow · domain contract
68
- · engine boundary · tool profile · prompt-context · session persistence ·
69
- frontend/TUI. The surface determines which contract and tests matter.
70
- 2. **Read the contract and tests before editing.** Open the domain's
71
- `contract.ts` / `index.ts` and its `tests/contracts/*` file first.
72
- 3. **Prefer a small pure-function change** with a focused contract test over a
73
- broad rewrite. Side effects live in `extension.ts`; testable policy lives
74
- in sibling pure modules.
75
- 4. **Respect all six boundary invariants.** Pi SDK imports stay in
76
- `src/engine/**`; worker value imports from domains stay within the declared
77
- provider rehydration seams; domains never import another domain's
78
- `extension.ts`; tools never import the interactive layer;
79
- `src/interactive/turn-*.ts` and `chat-loop.ts` never import entry modules;
80
- Stage 0 is entered only through declared seams. Add or reuse a contract
81
- instead.
82
- 5. **Validate narrowly, then report.** Run the narrowest meaningful layer per
83
- `clio-coder-test`, then state exactly what ran and what remains unverified. Done
84
- when the report names both.
85
-
86
- ## Source is truth
87
-
88
- - `src/domains/**` is the product architecture, `src/engine/**` the pi-ai
89
- adapter boundary, `src/tools/**` the model-visible action surface. A tool or
90
- contract change ripples into safety, dispatch, ACP, and telemetry: check the
91
- consumers, not just the file you edited.
92
- - `CLIO-CODER.md` is the audited constitution; codewiki and the `.clio-coder/state.json`
93
- fingerprint are mutable hints. Never trust a stale summary over source. If
94
- source topology changed, refresh via `clio-coder context init` but a regenerated
95
- `CLIO-CODER.md` is contribution-adjacent; do not commit it without intent.
96
-
97
- ## Continuity
98
-
99
- Pair with the session bookends: `context-prime` to orient before self-dev
100
- work, `context-handoff` to brief the next session when a change spans
101
- sessions.
20
+ # Clio self-development
21
+
22
+ Use this workflow when the requested task changes Clio itself. The canonical
23
+ name is `clio-coder-dev`. In a detected Clio checkout,
24
+ the source skill is natively discoverable unless an installed package owns its
25
+ name. Discovery does not mean its body has already been loaded.
26
+
27
+ ## Establish the actual assignment
28
+
29
+ Read `CONTRIBUTING.md`, applicable repository instructions, and the user's
30
+ assigned packet or issue. Check cwd, branch, status, and the base commit before
31
+ editing. Use the detected repository root even when launched from a subdirectory
32
+ or worktree. A Clio npm installation or an unrelated nested repository is not a
33
+ self-development checkout.
34
+
35
+ Distinguish design, implementation, review, and validation. Deliver the phase the
36
+ user authorized. A comprehensive sprint plan does not launch implementation.
37
+ Existing authorization persists: do not demand a second confirmation for an
38
+ already authorized action. Complete authorized local work and verification;
39
+ remote writes and release actions need matching user intent and repository rules.
40
+
41
+ ## Trace the behavior before changing it
42
+
43
+ Find the owning source and current callers with `rg`, then read its contract,
44
+ nearby tests, and relevant architecture guide. Use code navigation when available
45
+ for symbol/caller relationships; read exact source before changing semantics.
46
+ Treat handbooks, generated wiki, and old sprint reports as navigation aids.
47
+ `CLIO-CODER.md` may be absent or ignored; do not regenerate project context simply
48
+ because you are developing Clio.
49
+
50
+ Choose a checkable before/after behavior and its smallest useful integration
51
+ boundary. Put pure policy next to the owning domain; compose dependencies at the
52
+ entry seam. Preserve these enforced boundaries:
53
+
54
+ - Pi package imports, including types, stay in `src/engine/**`.
55
+ - Worker domain value imports stay within declared provider rehydration seams.
56
+ - Domains communicate through contracts, never another domain's `extension.ts`.
57
+ - Tools do not import interactive UI; turn-runtime modules do not import entry.
58
+ - Keep the protected instant-shell graph and lazy CLI imports within their seams.
59
+
60
+ For source maps and high-risk lifecycle changes, read
61
+ [references/change-map.md](references/change-map.md). Do not widen tool authority,
62
+ worker write scope, memory applicability, or release claims to simplify a change.
63
+
64
+ ## Implement and verify against the requested scope
65
+
66
+ Load `clio-coder-test` through the normal skill interface when choosing checks.
67
+ If it is unavailable, use the checkout's `CONTRIBUTING.md` and package scripts;
68
+ continue the assignment without an installation detour. The two skills are
69
+ companions, not a recursive required-loading chain.
70
+
71
+ Prefer meaningful regression tests for changed contracts. For a documentation
72
+ or instruction-only edit, verify the facts, links, and package metadata without
73
+ inventing runtime tests for prose. For skills, update the manifest version and
74
+ realistic eval scenarios, then regenerate both skill and full-library pins.
75
+ Active installed resource trees remain operator-managed: edit curated source
76
+ under `library/`, not `.clio-coder/plugins`, config plugins, or a symlink to them.
77
+
78
+ A source edit does not change the running agent's loaded ESM modules. Build and
79
+ dogfood a candidate in an isolated worktree when the main checkout's `dist/` may
80
+ back the running CLI. Restart a separate candidate process; do not replace the
81
+ active installation, relink the CLI, or mutate real user state as a test shortcut.
82
+
83
+ ## Working from a sprint packet
84
+
85
+ Read the packet and its approval/status record before coding. If delegation was
86
+ authorized, give each worker a bounded result, exact base/worktree, owned files,
87
+ required checks, and report path. Pass skill bindings through the worker recipe
88
+ when available; do not assume the parent model's loaded skills reach the worker.
89
+ An instruction in this skill is not itself authorization to spawn workers.
90
+
91
+ Ignored `.superpowers/` plans do not appear in a new Git worktree. Supply the
92
+ absolute packet path or a scoped copy of the necessary briefing. Keep each
93
+ worker's write scope inside its assignment; the orchestrator owns shared seams,
94
+ review, and serialized integration. Preserve authorized uncommitted work and
95
+ record unfinished work in a handoff instead of broad staging or cleanup.
96
+
97
+ ## Finish with evidence
98
+
99
+ State what changed, why, the exact checks and outcomes, and remaining limitations.
100
+ Distinguish source tests, built-process tests, installed-package tests, and actual
101
+ model evidence. Update user docs/changelog only for implemented behavior. For a
102
+ long-running task, update the assigned status/report with branch, commits,
103
+ authority, evidence refs, and next action. Use `context-handoff` only when a
104
+ handoff is needed; do not turn every local change into a separate interview,
105
+ release, or repository initialization workflow.