@iowarp/clio-coder 0.5.1 → 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 (263) hide show
  1. package/.claude-plugin/marketplace.json +4 -4
  2. package/CHANGELOG.md +24 -0
  3. package/CONTRIBUTING.md +9 -0
  4. package/README.md +3 -3
  5. package/ROADMAP.md +30 -5
  6. package/dist/{acp-X3N7JDGS.js → acp-F6PGOFZ4.js} +2 -2
  7. package/dist/{agents-UYGSMAWR.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-DGMY2DWE.js → chunk-23UIXH6Z.js} +3 -3
  11. package/dist/{chunk-QTYRMBW6.js → chunk-36XVK5P5.js} +5 -5
  12. package/dist/{chunk-BIQLF3NZ.js → chunk-3DZ4LPLS.js} +6 -6
  13. package/dist/{chunk-7VNLPEUG.js → chunk-3GSPCWFX.js} +12 -12
  14. package/dist/{chunk-CRHPCPZP.js → chunk-4KC4CHKJ.js} +2 -2
  15. package/dist/{chunk-M5FPIZQW.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-A7G7OUND.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-GW2KVAVI.js → chunk-AA3GRZWS.js} +2 -2
  27. package/dist/{chunk-6B76U65H.js → chunk-ADO3OQIC.js} +3 -3
  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-AKQ3N3L4.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-7KI4ZSEB.js → chunk-ELDJWJKM.js} +97 -14
  38. package/dist/{chunk-GCQFN7YI.js → chunk-EMYEQLWO.js} +2 -2
  39. package/dist/{chunk-7FHSA7VB.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-GGEEG7CD.js → chunk-FOSRJ2VZ.js} +4 -4
  45. package/dist/{chunk-ZARZ4POR.js → chunk-G5ZDQQE3.js} +3 -3
  46. package/dist/{chunk-QM7HFPQQ.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-WAISUJNQ.js → chunk-KWMFC7FN.js} +3 -3
  58. package/dist/{chunk-4D7QM7S5.js → chunk-LXYHCCIZ.js} +9 -9
  59. package/dist/{chunk-NFSK2VNU.js → chunk-LZMTVVN4.js} +2 -2
  60. package/dist/{chunk-ZNTGRDFA.js → chunk-M5PMRZSR.js} +123 -37
  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-4SYHGVDE.js → chunk-OQNCLZI4.js} +4 -4
  66. package/dist/{chunk-EG4ARXPC.js → chunk-OX6QTA4N.js} +3 -3
  67. package/dist/{chunk-P4GNZPXO.js → chunk-OYUS3UZP.js} +2 -2
  68. package/dist/{chunk-VWKR2NN5.js → chunk-PF36KOGI.js} +290 -111
  69. package/dist/{chunk-LFYA3HYH.js → chunk-PIU6BXXW.js} +2 -2
  70. package/dist/{chunk-EKV4UBCM.js → chunk-PZBQUJ2F.js} +2 -2
  71. package/dist/{chunk-7RET77VB.js → chunk-Q2HKY32Y.js} +2 -2
  72. package/dist/{chunk-VMTCZ2GR.js → chunk-Q4RMNWMZ.js} +4 -4
  73. package/dist/chunk-Q6FRR3AQ.js +48 -0
  74. package/dist/{chunk-6RJMYYIE.js → chunk-QJSIAJBY.js} +3 -3
  75. package/dist/{chunk-DOUISWEE.js → chunk-QOJ4ERMU.js} +5 -5
  76. package/dist/{chunk-IFPDAD7R.js → chunk-RWSRKXLT.js} +3 -3
  77. package/dist/{chunk-T33IYTZM.js → chunk-SAASVMIY.js} +3 -3
  78. package/dist/{chunk-2DTIWSAW.js → chunk-SEQDH6JC.js} +3 -3
  79. package/dist/{chunk-BRCOSE7O.js → chunk-SZUO5BSE.js} +2 -2
  80. package/dist/{chunk-HOEDA42N.js → chunk-T7HZ7KJF.js} +2 -2
  81. package/dist/{chunk-UCINIRHW.js → chunk-TPCZXWLT.js} +3 -3
  82. package/dist/{chunk-ZUKUCZYZ.js → chunk-TQ2KTH4A.js} +2 -2
  83. package/dist/{chunk-4WOOTKFD.js → chunk-U3FETNQB.js} +341 -20
  84. package/dist/{chunk-5B3RTYAK.js → chunk-UGDSB4AN.js} +2 -2
  85. package/dist/{chunk-VKHLUZNO.js → chunk-UZ7YBL43.js} +3 -3
  86. package/dist/{chunk-OXWRE2QJ.js → chunk-VKMSEO7Y.js} +4 -4
  87. package/dist/{chunk-FBXTHPNZ.js → chunk-VLX5VZ35.js} +5 -5
  88. package/dist/{chunk-KIAUZGKF.js → chunk-WAGBMMNX.js} +5 -5
  89. package/dist/{chunk-BFOSV5EZ.js → chunk-WX2YCH7F.js} +2 -2
  90. package/dist/{chunk-SAL2SBP4.js → chunk-XBIGUILU.js} +25 -10
  91. package/dist/{chunk-XOH3SD7H.js → chunk-XKYBFRWR.js} +5 -5
  92. package/dist/{chunk-U5QU5ZOD.js → chunk-XYPWFSU5.js} +3 -3
  93. package/dist/{chunk-YBUECLAF.js → chunk-YEJQDODA.js} +2 -2
  94. package/dist/{chunk-YQ6XEFVK.js → chunk-Z74OGONW.js} +39 -7
  95. package/dist/{chunk-I4ELN5BX.js → chunk-ZTNOEJRI.js} +2 -2
  96. package/dist/cli/index.js +25 -25
  97. package/dist/{clio-Z3JTEL2I.js → clio-4IKFE25F.js} +2 -2
  98. package/dist/{clio-context-tools-GR4OHFSO.js → clio-context-tools-OHJXYX4R.js} +25 -23
  99. package/dist/{code-nav-4X3OI6DK.js → code-nav-XPM3MY5I.js} +7 -7
  100. package/dist/{config-QYIRZHI7.js → config-343YS25T.js} +42 -40
  101. package/dist/{config-graph-TS3SGGQW.js → config-graph-WI263KDX.js} +42 -40
  102. package/dist/{configure-OX7KVJTQ.js → configure-GZDG4HER.js} +21 -21
  103. package/dist/{context-2BNF6HTP.js → context-4OFO7N7Y.js} +12 -12
  104. package/dist/{context-GTMUGAR4.js → context-JLK2RLOG.js} +41 -39
  105. package/dist/{context-NNLBES2Y.js → context-O6DIWCF6.js} +23 -21
  106. package/dist/{context-clear-FVJQBBL7.js → context-clear-MR7KOGQI.js} +41 -39
  107. package/dist/{context-working-set-MOE72SD6.js → context-working-set-YZAD3KWO.js} +14 -13
  108. package/dist/{data-tool-JJPBGMQJ.js → data-tool-EKD7DFHG.js} +7 -7
  109. package/dist/{detail-QZM3QAAU.js → detail-YZPHFEVJ.js} +42 -40
  110. package/dist/{dispatch-runner-2KSQO5FU.js → dispatch-runner-VKVXVTWJ.js} +43 -41
  111. package/dist/{doctor-2U6YR5NH.js → doctor-53AVQXAO.js} +16 -15
  112. package/dist/{doctor-deep-2EJQSHIZ.js → doctor-deep-BLRB2NCG.js} +5 -5
  113. package/dist/{eval-ZKK77JWZ.js → eval-P3BQSLQE.js} +21 -20
  114. package/dist/{evidence-POSEQW4Q.js → evidence-6LLI6SZH.js} +43 -41
  115. package/dist/{evidence-FMP7KZZ2.js → evidence-HTN3JLUO.js} +41 -39
  116. package/dist/{evidence-PJTOE7JA.js → evidence-NJRE3R5H.js} +41 -39
  117. package/dist/{evolve-JT6PAMZE.js → evolve-WWZHJVJP.js} +41 -39
  118. package/dist/{fleet-4XR2ZEOF.js → fleet-GGZ4BVJE.js} +63 -61
  119. package/dist/{fleet-6JJKNIMV.js → fleet-QG3IIWWM.js} +43 -41
  120. package/dist/{fleet-commands-L6WFT7KZ.js → fleet-commands-J2ZIKISQ.js} +7 -7
  121. package/dist/{fleet-decisions-BTQMWU5A.js → fleet-decisions-Y2Q7375Q.js} +8 -8
  122. package/dist/{fleet-graph-553DZ67Q.js → fleet-graph-TCBCCCBP.js} +11 -11
  123. package/dist/{fleet-inspect-SWJMFVDP.js → fleet-inspect-KOLKBC56.js} +43 -41
  124. package/dist/{fleet-preflight-KSIHWQAU.js → fleet-preflight-44UNCC4Y.js} +26 -24
  125. package/dist/{fleet-validate-7NLAE26R.js → fleet-validate-K2FXRZVA.js} +13 -13
  126. package/dist/{fleet-verify-QM6XU2KL.js → fleet-verify-AS444WDW.js} +41 -39
  127. package/dist/{fleet-view-RLKFHFCM.js → fleet-view-X4JU4J6O.js} +42 -40
  128. package/dist/gui/ops-worker.js +9 -9
  129. package/dist/gui/reads-worker.js +9 -8
  130. package/dist/{init-VBUPHABR.js → init-VSOWFHVL.js} +53 -51
  131. package/dist/{interactive-JCVBPVYT.js → interactive-JRCBENLZ.js} +154 -92
  132. package/dist/{interop-J7UOBOSF.js → interop-JR6BCY7R.js} +10 -10
  133. package/dist/{inventory-54G7FSVY.js → inventory-3JUGLVJI.js} +42 -40
  134. package/dist/{library-ROZAMUIL.js → library-7BOH3Y7N.js} +15 -15
  135. package/dist/{library-B3UPGY4V.js → library-7PFONXUI.js} +9 -9
  136. package/dist/{library-MXQA5DLT.js → library-TUYZMFIA.js} +7 -7
  137. package/dist/{library-import-2LTWOVBD.js → library-import-TJVXKLDK.js} +10 -10
  138. package/dist/{library-inventory-LJ3XHLWO.js → library-inventory-MD3AYTP4.js} +9 -9
  139. package/dist/{library-validation-DARHHUNW.js → library-validation-ZDLITEA3.js} +7 -7
  140. package/dist/{memory-5BPQSSOP.js → memory-Q2YVOKK5.js} +41 -39
  141. package/dist/{models-R6HILX6X.js → models-M7BOCW7F.js} +17 -16
  142. package/dist/{monitor-HVRKSFEQ.js → monitor-2HD3MC67.js} +46 -44
  143. package/dist/{orchestrator-OR7V4YWK.js → orchestrator-OUW3ZN6Y.js} +1890 -222
  144. package/dist/{panes-A743ONZ5.js → panes-TTPPSYCL.js} +3 -3
  145. package/dist/{preload-KLXFOX2F.js → preload-A47C2NUF.js} +41 -39
  146. package/dist/{providers-CMETPZNS.js → providers-T43W7EL4.js} +4 -4
  147. package/dist/{resources-FY6XYFN2.js → resources-TP6X2V6W.js} +20 -11
  148. package/dist/{run-UIDRUYAY.js → run-LDSBPMCS.js} +60 -58
  149. package/dist/{share-CAFMMQLM.js → share-URHKKMHR.js} +9 -9
  150. package/dist/{skills-ERKQUC7L.js → skills-E477MOOO.js} +13 -11
  151. package/dist/{skills-eval-JDAXOPWC.js → skills-eval-AIBR2L7H.js} +582 -92
  152. package/dist/{skills-inventory-TVUYJDVN.js → skills-inventory-HLMKY3R5.js} +13 -11
  153. package/dist/{slash-commands-MNKQ5QP3.js → slash-commands-LIIZKA5Y.js} +26 -24
  154. package/dist/{startup-background-PJMWTKVO.js → startup-background-JR2KDK6R.js} +42 -40
  155. package/dist/{steer-KKYXJSH4.js → steer-D7RTAPCM.js} +3 -3
  156. package/dist/{system-IVVZRKGI.js → system-X2P5N4IY.js} +14 -13
  157. package/dist/{targets-RFRUMCQ5.js → targets-VFFAKUFM.js} +25 -24
  158. package/dist/{tasks-6L2JJRC5.js → tasks-ERAWZA22.js} +6 -6
  159. package/dist/{trace-LA5MVR4Y.js → trace-MA5BT7XY.js} +3 -3
  160. package/dist/{usage-LA33SG3R.js → usage-WYFY2L6M.js} +49 -47
  161. package/dist/{verifiers-ECA5GIHL.js → verifiers-TYIW2XKF.js} +7 -7
  162. package/dist/{verify-R6QQCCEB.js → verify-242UFYTP.js} +6 -6
  163. package/dist/{web-fetch-PVZNMBOB.js → web-fetch-LRAGYU6Y.js} +3 -3
  164. package/dist/{wiki-generate-HL73TICA.js → wiki-generate-OFKOX2T6.js} +52 -50
  165. package/dist/worker/entry.js +30 -28
  166. package/docs/architecture/context-engine.md +2 -0
  167. package/docs/guide/context-continuity.md +49 -0
  168. package/docs/guide/proactive-memory.md +3 -0
  169. package/library/registry.yaml +292 -32
  170. package/library/skills/README.md +27 -2
  171. package/library/skills/context/context-handoff/SKILL.md +10 -4
  172. package/library/skills/meta/clio-coder-dev/SKILL.md +92 -88
  173. package/library/skills/meta/clio-coder-dev/evals.md +51 -46
  174. package/library/skills/meta/clio-coder-dev/plugin.json +2 -2
  175. package/library/skills/meta/clio-coder-dev/references/change-map.md +49 -0
  176. package/library/skills/meta/clio-coder-test/SKILL.md +89 -142
  177. package/library/skills/meta/clio-coder-test/evals.md +58 -62
  178. package/library/skills/meta/clio-coder-test/plugin.json +2 -2
  179. package/library/skills/meta/clio-coder-test/references/harness.md +3 -3
  180. package/library/skills/meta/clio-coder-test/references/lifecycle-validation.md +30 -0
  181. package/library/skills/meta/clio-coder-test/references/test-map.md +60 -89
  182. package/library/skills/registry.yaml +5 -5
  183. package/library/skills/skill-marketplace.json +12 -14
  184. package/package.json +1 -1
  185. package/src/cli/skills-eval.ts +1064 -54
  186. package/src/core/clio-repo.ts +3 -0
  187. package/src/core/tool-names.ts +1 -0
  188. package/src/domains/context/budget/inspection.ts +9 -0
  189. package/src/domains/context/budget/live-view.ts +418 -0
  190. package/src/domains/context/budget/pressure.ts +393 -0
  191. package/src/domains/context/budget/request-fit.ts +15 -0
  192. package/src/domains/evidence/build.ts +24 -0
  193. package/src/domains/memory/commit-state.ts +160 -0
  194. package/src/domains/memory/operations.ts +18 -10
  195. package/src/domains/memory/prompt-cache.ts +95 -0
  196. package/src/domains/memory/prompt-section.ts +50 -7
  197. package/src/domains/memory/relevance.ts +93 -0
  198. package/src/domains/memory/restoration.ts +78 -0
  199. package/src/domains/memory/store.ts +39 -1
  200. package/src/domains/middleware/memory-intervention.ts +116 -24
  201. package/src/domains/prompts/compiler.ts +1 -1
  202. package/src/domains/prompts/extension.ts +38 -1
  203. package/src/domains/resources/index.ts +11 -0
  204. package/src/domains/resources/skills/catalog-view.ts +571 -0
  205. package/src/domains/resources/skills/lexical-match.ts +136 -0
  206. package/src/domains/resources/skills/loader.ts +38 -0
  207. package/src/domains/resources/skills/promotion.ts +1 -55
  208. package/src/domains/resources/skills/provenance-pin.ts +50 -20
  209. package/src/domains/safety/action-classifier.ts +1 -0
  210. package/src/domains/session/compaction/branch-summary.ts +4 -1
  211. package/src/domains/session/compaction/compact.ts +18 -2
  212. package/src/domains/session/compaction/cut-point.ts +20 -1
  213. package/src/domains/session/compaction/tokens.ts +48 -3
  214. package/src/domains/session/context-accounting.ts +8 -1
  215. package/src/domains/session/continuity/carry.ts +59 -0
  216. package/src/domains/session/continuity/contract.ts +592 -0
  217. package/src/domains/session/continuity/evidence.ts +290 -0
  218. package/src/domains/session/continuity/fold.ts +1075 -0
  219. package/src/domains/session/continuity/note.ts +79 -0
  220. package/src/domains/session/continuity/operator-request.ts +104 -0
  221. package/src/domains/session/continuity/persistence.ts +408 -0
  222. package/src/domains/session/continuity/ports.ts +231 -0
  223. package/src/domains/session/continuity/projection.ts +538 -0
  224. package/src/domains/session/continuity/validate.ts +352 -0
  225. package/src/domains/session/entries.ts +50 -3
  226. package/src/domains/session/index.ts +48 -0
  227. package/src/domains/session/migrations/index.ts +7 -3
  228. package/src/domains/session/tree/fork.ts +15 -1
  229. package/src/engine/agent.ts +133 -9
  230. package/src/engine/session.ts +13 -6
  231. package/src/entry/orchestrator.ts +114 -31
  232. package/src/interactive/chat-loop.ts +216 -60
  233. package/src/interactive/chat-renderer.ts +99 -8
  234. package/src/interactive/context-overlay.ts +24 -3
  235. package/src/interactive/continuity-controller.ts +526 -0
  236. package/src/interactive/footer/dashboard.ts +12 -1
  237. package/src/interactive/footer/pages.ts +15 -7
  238. package/src/interactive/footer/widgets.ts +32 -7
  239. package/src/interactive/interactive-application.ts +2 -0
  240. package/src/interactive/interactive-slash-runtime.ts +43 -6
  241. package/src/interactive/model-session-replay.ts +130 -3
  242. package/src/interactive/output-reserve.ts +35 -0
  243. package/src/interactive/overlay-session-lifecycle.ts +18 -11
  244. package/src/interactive/session-transcript.ts +2 -1
  245. package/src/interactive/slash-commands.ts +20 -1
  246. package/src/interactive/turn-context.ts +685 -62
  247. package/src/interactive/turn-middleware.ts +39 -6
  248. package/src/interactive/turn-persistence.ts +15 -2
  249. package/src/interactive/turn-runtime.ts +48 -5
  250. package/src/tools/agent-tools.ts +3 -1
  251. package/src/tools/bootstrap.ts +6 -0
  252. package/src/tools/builtin-tool-catalog.ts +9 -0
  253. package/src/tools/context/index.ts +148 -113
  254. package/src/tools/context/surface.ts +11 -7
  255. package/src/tools/core-bootstrap.ts +4 -0
  256. package/src/tools/observation.ts +8 -2
  257. package/src/tools/policy.ts +3 -0
  258. package/src/tools/self-compact.ts +31 -0
  259. package/src/tools/surface.ts +1 -0
  260. package/src/tools/tasks.ts +1 -1
  261. package/dist/chunk-3OODBJ45.js +0 -1325
  262. package/dist/chunk-CTFPFW3H.js +0 -44
  263. package/dist/chunk-I4Y4WKZR.js +0 -386
@@ -0,0 +1,49 @@
1
+ # Context continuity and recovery
2
+
3
+ Clio can reduce a long native session while preserving the assistant's exact handoff note and the original task. Open `/context` to inspect the next request's input, output reservation, headroom, and pending handoff. The model can read the same accounting with `context(scope="budget")`.
4
+
5
+ ## Choosing a reduction
6
+
7
+ | Action | Use it for |
8
+ | --- | --- |
9
+ | Automatic compaction | Routine pressure management under your configured threshold. |
10
+ | `/context compact [instructions]` | An operator-directed summary, optionally focused on specific information. |
11
+ | `self_compact({"note_to_self":"…"})` | An assistant-directed handoff followed by continuation of the same task. |
12
+ | `/context recover <handoffId> <reduce\|deliver>` | Explicit recovery of an interrupted handoff. |
13
+
14
+ `self_compact` is available to the native orchestrator. Dispatched workers do not receive its host callback, and external agents that own their own loop do not receive its schema through the native session tool surface. Skill restrictions and normal tool permission checks still apply.
15
+
16
+ The assistant must call `self_compact` alone. A batch containing it and another tool, or two self-compaction calls, is rejected before any valid sibling executes. The note should preserve the objective, decisions, useful evidence, relevant paths, unresolved questions, and next steps. It must be nonblank and no larger than 8,192 UTF-8 bytes. Clio preserves the accepted text exactly and labels it as assistant-authored recall, rather than presenting it as an operator instruction.
17
+
18
+ ## What the receipt means
19
+
20
+ The tool's first receipt means that the note was prepared and flushed to the session ledger. Reduction happens after that receipt has been persisted. Clio records the reduction attempt before invoking the summarizer, checkpoints the outcome, and records delivery intent before allowing another foreground request.
21
+
22
+ A final, nonempty, successful assistant response acknowledges that delivery. Intermediate tool calls, empty responses, errors, cancellation, and a generic end-of-run event do not acknowledge it. Continuation does not append another operator turn or create a fresh durable-memory selection attempt.
23
+
24
+ Each handoff allows at most two reduction attempts, with at most two summary stream invocations per attempt. The automatic window is bounded to 15 minutes. A new operator recovery request may renew that window, but does not refund spent attempts or mint a replacement handoff identity. Summarizer calls, including failed calls with known usage, remain attributable to their originating session.
25
+
26
+ ## Recovering an interrupted handoff
27
+
28
+ The `/context` overlay shows the pending handoff ID and its phase. Use the exact ID:
29
+
30
+ ```text
31
+ /context recover <handoffId> reduce
32
+ /context recover <handoffId> deliver
33
+ ```
34
+
35
+ `reduce` is available when the handoff has not committed and an attempt remains. `deliver` is available when a validated commit exists. A restarted process first records the interrupted state as paused; it does not automatically repeat an uncertain delivery. Recovery authority comes from the operator command and its durable control record, never from a tool argument or text found in a note.
36
+
37
+ If the continuation still cannot fit, use `/context compact` to reduce more history before trying delivery again. Missing or conflicting storage evidence can prevent recovery. Clio retains uncertainty instead of silently creating a new transaction. A missing commit can be reconstructed only from a validated summary carry, using its original reserved identity and an exact storage check.
38
+
39
+ Session forks inherit notes as recall only. They do not inherit permission to resume the parent's handoff. Ordinary summaries persist in the session ledger and replay after `/resume`; a separate handoff file remains useful when moving work to another session or another agent.
40
+
41
+ ## Request budgets and memory
42
+
43
+ Submission and native continuation require estimated input plus the resolved output reservation to fit the effective window. Pending user-message framing and images count. A final check inspects the actual request after steering has been drained. Ordinary automatic-compaction preferences remain separate from this hard admission check: disabling automatic compaction cannot authorize an oversized request.
44
+
45
+ Successful durable reductions invalidate older private-memory content jobs and queued memory reminders. Their known usage still counts. Restoration retains the private bank, selects a bounded set of remembered facts and procedures, and suppresses stale private status when an authoritative summary or handoff is available. The full reminder wrapper must fit, and restoration is consumed only after installation in an admitted context. This does not make remembered claims independently verified.
46
+
47
+ Approved durable-memory selection is frozen for a prepared turn and its continuations. Changes in session, repository, runtime, model, or memory configuration invalidate that authority. A subsequent turn reads the current bounded store contents; a same-size rewrite cannot hide behind a file-size cache key. Default selection limits remain five records and 400 tokens. Experimental lexical ranking is not enabled by default.
48
+
49
+ Token counts remain estimates unless a provider has attested the relevant prefix. Flush and checkpoint success establish the filesystem durability available to the running process; they do not guarantee survival of every hardware or power failure, or exactly-once execution by a remote provider.
@@ -1,5 +1,8 @@
1
1
  # Proactive task memory
2
2
 
3
+
4
+ After a durable context reduction, restoration uses a commit-scoped offer: stale content jobs and buffered reminders lose authority, known usage remains attributed, and restoration is consumed only after an admitted installation. See [Context continuity and recovery](context-continuity.md) for the lifecycle and its limits.
5
+
3
6
  Clio's proactive task memory protects long-running work from behavioral state
4
7
  decay: a requirement, environment fact, failed attempt, or diagnosis can still
5
8
  exist in the transcript while no longer influencing the next action. The design
@@ -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.