@rune-kit/rune 2.8.0 → 2.11.0

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 (287) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +68 -34
  3. package/agents/adversary.md +27 -0
  4. package/agents/architect.md +19 -29
  5. package/agents/asset-creator.md +18 -4
  6. package/agents/audit.md +25 -4
  7. package/agents/autopsy.md +19 -4
  8. package/agents/ba.md +35 -0
  9. package/agents/brainstorm.md +31 -4
  10. package/agents/browser-pilot.md +21 -4
  11. package/agents/coder.md +21 -29
  12. package/agents/completion-gate.md +20 -4
  13. package/agents/constraint-check.md +18 -4
  14. package/agents/context-engine.md +22 -4
  15. package/agents/context-pack.md +32 -0
  16. package/agents/cook.md +41 -4
  17. package/agents/db.md +19 -4
  18. package/agents/debug.md +33 -4
  19. package/agents/dependency-doctor.md +20 -4
  20. package/agents/deploy.md +27 -4
  21. package/agents/design.md +22 -4
  22. package/agents/doc-processor.md +27 -0
  23. package/agents/docs-seeker.md +19 -4
  24. package/agents/docs.md +31 -0
  25. package/agents/fix.md +37 -4
  26. package/agents/git.md +29 -0
  27. package/agents/hallucination-guard.md +20 -4
  28. package/agents/incident.md +21 -4
  29. package/agents/integrity-check.md +18 -4
  30. package/agents/journal.md +19 -4
  31. package/agents/launch.md +32 -4
  32. package/agents/logic-guardian.md +26 -11
  33. package/agents/marketing.md +23 -4
  34. package/agents/mcp-builder.md +26 -0
  35. package/agents/neural-memory.md +30 -0
  36. package/agents/onboard.md +22 -4
  37. package/agents/perf.md +21 -4
  38. package/agents/plan.md +29 -4
  39. package/agents/preflight.md +22 -4
  40. package/agents/problem-solver.md +20 -4
  41. package/agents/rescue.md +23 -4
  42. package/agents/research.md +19 -4
  43. package/agents/researcher.md +19 -29
  44. package/agents/retro.md +32 -0
  45. package/agents/review-intake.md +20 -4
  46. package/agents/review.md +32 -4
  47. package/agents/reviewer.md +20 -28
  48. package/agents/safeguard.md +19 -4
  49. package/agents/sast.md +18 -4
  50. package/agents/scaffold.md +41 -0
  51. package/agents/scanner.md +19 -28
  52. package/agents/scope-guard.md +18 -4
  53. package/agents/scout.md +23 -4
  54. package/agents/sentinel-env.md +26 -0
  55. package/agents/sentinel.md +33 -4
  56. package/agents/sequential-thinking.md +20 -4
  57. package/agents/session-bridge.md +24 -4
  58. package/agents/skill-forge.md +22 -4
  59. package/agents/skill-router.md +26 -4
  60. package/agents/slides.md +24 -0
  61. package/agents/surgeon.md +19 -4
  62. package/agents/team.md +30 -4
  63. package/agents/test.md +36 -4
  64. package/agents/trend-scout.md +17 -4
  65. package/agents/verification.md +20 -4
  66. package/agents/video-creator.md +20 -4
  67. package/agents/watchdog.md +19 -4
  68. package/agents/worktree.md +17 -4
  69. package/commands/rune.md +168 -168
  70. package/compiler/__tests__/analytics.test.js +370 -0
  71. package/compiler/adapters/openclaw.js +2 -2
  72. package/compiler/analytics.js +385 -0
  73. package/compiler/bin/rune.js +68 -2
  74. package/compiler/dashboard.js +883 -0
  75. package/compiler/transforms/branding.js +1 -1
  76. package/contexts/dev.md +34 -34
  77. package/contexts/research.md +43 -43
  78. package/contexts/review.md +55 -55
  79. package/extensions/ai-ml/PACK.md +88 -88
  80. package/extensions/ai-ml/skills/ai-agents.md +172 -172
  81. package/extensions/ai-ml/skills/code-sandbox.md +187 -187
  82. package/extensions/ai-ml/skills/deep-research.md +146 -146
  83. package/extensions/ai-ml/skills/embedding-search.md +66 -66
  84. package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
  85. package/extensions/ai-ml/skills/llm-architect.md +125 -125
  86. package/extensions/ai-ml/skills/llm-integration.md +64 -64
  87. package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
  88. package/extensions/ai-ml/skills/rag-patterns.md +66 -66
  89. package/extensions/ai-ml/skills/web-extraction.md +114 -114
  90. package/extensions/analytics/PACK.md +92 -92
  91. package/extensions/analytics/skills/ab-testing.md +72 -72
  92. package/extensions/analytics/skills/dashboard-patterns.md +83 -83
  93. package/extensions/analytics/skills/data-validation.md +68 -68
  94. package/extensions/analytics/skills/funnel-analysis.md +81 -81
  95. package/extensions/analytics/skills/sql-patterns.md +57 -57
  96. package/extensions/analytics/skills/statistical-analysis.md +79 -79
  97. package/extensions/analytics/skills/tracking-setup.md +71 -71
  98. package/extensions/backend/PACK.md +104 -104
  99. package/extensions/backend/skills/api-patterns.md +84 -84
  100. package/extensions/backend/skills/async-pipeline.md +193 -193
  101. package/extensions/backend/skills/auth-patterns.md +97 -97
  102. package/extensions/backend/skills/background-jobs.md +133 -133
  103. package/extensions/backend/skills/caching-patterns.md +108 -108
  104. package/extensions/backend/skills/cli-generation.md +133 -133
  105. package/extensions/backend/skills/database-patterns.md +87 -87
  106. package/extensions/backend/skills/middleware-patterns.md +104 -104
  107. package/extensions/chrome-ext/PACK.md +93 -93
  108. package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
  109. package/extensions/chrome-ext/skills/cws-publish.md +104 -104
  110. package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
  111. package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
  112. package/extensions/chrome-ext/skills/ext-storage.md +133 -133
  113. package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
  114. package/extensions/content/PACK.md +96 -96
  115. package/extensions/content/skills/blog-patterns.md +88 -88
  116. package/extensions/content/skills/cms-integration.md +131 -131
  117. package/extensions/content/skills/content-scoring.md +107 -107
  118. package/extensions/content/skills/i18n.md +83 -83
  119. package/extensions/content/skills/mdx-authoring.md +137 -137
  120. package/extensions/content/skills/reference.md +1014 -1014
  121. package/extensions/content/skills/seo-patterns.md +67 -67
  122. package/extensions/content/skills/video-repurpose.md +153 -153
  123. package/extensions/devops/PACK.md +101 -101
  124. package/extensions/devops/skills/chaos-testing.md +67 -67
  125. package/extensions/devops/skills/ci-cd.md +75 -75
  126. package/extensions/devops/skills/docker.md +58 -58
  127. package/extensions/devops/skills/edge-serverless.md +163 -163
  128. package/extensions/devops/skills/infra-as-code.md +158 -158
  129. package/extensions/devops/skills/kubernetes.md +110 -110
  130. package/extensions/devops/skills/monitoring.md +57 -57
  131. package/extensions/devops/skills/server-setup.md +64 -64
  132. package/extensions/devops/skills/ssl-domain.md +42 -42
  133. package/extensions/ecommerce/PACK.md +116 -116
  134. package/extensions/ecommerce/skills/cart-system.md +79 -79
  135. package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
  136. package/extensions/ecommerce/skills/order-management.md +126 -126
  137. package/extensions/ecommerce/skills/payment-integration.md +472 -472
  138. package/extensions/ecommerce/skills/shopify-dev.md +69 -69
  139. package/extensions/ecommerce/skills/subscription-billing.md +93 -93
  140. package/extensions/ecommerce/skills/tax-compliance.md +117 -117
  141. package/extensions/gamedev/PACK.md +142 -142
  142. package/extensions/gamedev/skills/asset-pipeline.md +74 -74
  143. package/extensions/gamedev/skills/audio-system.md +129 -129
  144. package/extensions/gamedev/skills/camera-system.md +87 -87
  145. package/extensions/gamedev/skills/ecs.md +98 -98
  146. package/extensions/gamedev/skills/game-loops.md +72 -72
  147. package/extensions/gamedev/skills/input-system.md +199 -199
  148. package/extensions/gamedev/skills/multiplayer.md +180 -180
  149. package/extensions/gamedev/skills/particles.md +105 -105
  150. package/extensions/gamedev/skills/physics-engine.md +89 -89
  151. package/extensions/gamedev/skills/scene-management.md +146 -146
  152. package/extensions/gamedev/skills/threejs-patterns.md +90 -90
  153. package/extensions/gamedev/skills/webgl.md +71 -71
  154. package/extensions/mobile/PACK.md +106 -106
  155. package/extensions/mobile/skills/app-store-connect.md +152 -152
  156. package/extensions/mobile/skills/app-store-prep.md +66 -66
  157. package/extensions/mobile/skills/deep-linking.md +109 -109
  158. package/extensions/mobile/skills/flutter.md +60 -60
  159. package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
  160. package/extensions/mobile/skills/native-bridge.md +66 -66
  161. package/extensions/mobile/skills/ota-updates.md +97 -97
  162. package/extensions/mobile/skills/push-notifications.md +111 -111
  163. package/extensions/mobile/skills/react-native.md +82 -82
  164. package/extensions/saas/PACK.md +116 -116
  165. package/extensions/saas/skills/billing-integration.md +200 -200
  166. package/extensions/saas/skills/feature-flags.md +130 -130
  167. package/extensions/saas/skills/multi-tenant.md +103 -103
  168. package/extensions/saas/skills/onboarding-flow.md +139 -139
  169. package/extensions/saas/skills/subscription-flow.md +95 -95
  170. package/extensions/saas/skills/team-management.md +144 -144
  171. package/extensions/security/PACK.md +99 -99
  172. package/extensions/security/skills/api-security.md +140 -140
  173. package/extensions/security/skills/compliance.md +68 -68
  174. package/extensions/security/skills/owasp-audit.md +64 -64
  175. package/extensions/security/skills/pentest-patterns.md +77 -77
  176. package/extensions/security/skills/secret-mgmt.md +65 -65
  177. package/extensions/security/skills/supply-chain.md +65 -65
  178. package/extensions/trading/PACK.md +80 -80
  179. package/extensions/trading/skills/chart-components.md +55 -55
  180. package/extensions/trading/skills/experiment-loop.md +125 -125
  181. package/extensions/trading/skills/fintech-patterns.md +47 -47
  182. package/extensions/trading/skills/indicator-library.md +58 -58
  183. package/extensions/trading/skills/quant-analysis.md +111 -111
  184. package/extensions/trading/skills/realtime-data.md +58 -58
  185. package/extensions/trading/skills/trade-logic.md +104 -104
  186. package/extensions/ui/PACK.md +130 -130
  187. package/extensions/ui/skills/a11y-audit.md +91 -91
  188. package/extensions/ui/skills/animation-patterns.md +127 -106
  189. package/extensions/ui/skills/component-patterns.md +100 -75
  190. package/extensions/ui/skills/design-decision.md +108 -108
  191. package/extensions/ui/skills/design-system.md +68 -68
  192. package/extensions/ui/skills/landing-patterns.md +155 -155
  193. package/extensions/ui/skills/palette-picker.md +173 -173
  194. package/extensions/ui/skills/react-health.md +90 -90
  195. package/extensions/ui/skills/type-system.md +125 -125
  196. package/extensions/ui/skills/web-vitals.md +153 -153
  197. package/extensions/zalo/PACK.md +145 -145
  198. package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
  199. package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
  200. package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
  201. package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
  202. package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
  203. package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
  204. package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
  205. package/hooks/auto-format/index.cjs +48 -48
  206. package/hooks/context-watch/index.cjs +95 -68
  207. package/hooks/hooks.json +111 -111
  208. package/hooks/metrics-collector/index.cjs +86 -42
  209. package/hooks/post-session-reflect/index.cjs +189 -153
  210. package/hooks/pre-compact/index.cjs +95 -95
  211. package/hooks/run-hook.cmd +1 -1
  212. package/hooks/secrets-scan/index.cjs +100 -100
  213. package/hooks/session-start/index.cjs +71 -65
  214. package/hooks/typecheck/index.cjs +65 -65
  215. package/package.json +63 -63
  216. package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
  217. package/references/ui-pro-max-data/charts.csv +26 -26
  218. package/references/ui-pro-max-data/colors.csv +161 -161
  219. package/references/ui-pro-max-data/styles.csv +68 -68
  220. package/references/ui-pro-max-data/typography.csv +74 -74
  221. package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
  222. package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
  223. package/skills/adversary/SKILL.md +283 -283
  224. package/skills/asset-creator/SKILL.md +157 -157
  225. package/skills/audit/SKILL.md +148 -2
  226. package/skills/autopsy/SKILL.md +335 -259
  227. package/skills/autopsy/references/repo-analysis-patterns.md +113 -0
  228. package/skills/ba/SKILL.md +72 -2
  229. package/skills/brainstorm/SKILL.md +342 -341
  230. package/skills/browser-pilot/SKILL.md +168 -168
  231. package/skills/constraint-check/SKILL.md +165 -165
  232. package/skills/context-engine/SKILL.md +404 -404
  233. package/skills/cook/SKILL.md +917 -834
  234. package/skills/cook/references/output-format.md +33 -0
  235. package/skills/db/SKILL.md +273 -272
  236. package/skills/debug/SKILL.md +465 -443
  237. package/skills/dependency-doctor/SKILL.md +265 -235
  238. package/skills/deploy/SKILL.md +274 -231
  239. package/skills/design/DESIGN-REFERENCE.md +365 -365
  240. package/skills/design/SKILL.md +589 -482
  241. package/skills/doc-processor/SKILL.md +254 -254
  242. package/skills/docs/SKILL.md +374 -373
  243. package/skills/docs-seeker/SKILL.md +177 -177
  244. package/skills/fix/SKILL.md +330 -308
  245. package/skills/git/SKILL.md +339 -339
  246. package/skills/graft/SKILL.md +352 -0
  247. package/skills/graft/references/challenge-framework.md +98 -0
  248. package/skills/graft/references/mode-decision.md +44 -0
  249. package/skills/hallucination-guard/SKILL.md +219 -219
  250. package/skills/incident/SKILL.md +254 -251
  251. package/skills/integrity-check/SKILL.md +169 -169
  252. package/skills/journal/SKILL.md +240 -238
  253. package/skills/launch/SKILL.md +344 -342
  254. package/skills/logic-guardian/SKILL.md +251 -251
  255. package/skills/marketing/SKILL.md +290 -245
  256. package/skills/mcp-builder/SKILL.md +425 -423
  257. package/skills/mcp-builder/references/auto-discovery-pattern.md +169 -0
  258. package/skills/neural-memory/SKILL.md +362 -362
  259. package/skills/onboard/SKILL.md +404 -403
  260. package/skills/perf/SKILL.md +346 -346
  261. package/skills/plan/SKILL.md +433 -370
  262. package/skills/plan/references/feature-map.md +84 -0
  263. package/skills/preflight/SKILL.md +415 -396
  264. package/skills/problem-solver/SKILL.md +380 -284
  265. package/skills/rescue/SKILL.md +474 -450
  266. package/skills/retro/SKILL.md +5 -1
  267. package/skills/review/SKILL.md +612 -535
  268. package/skills/review-intake/SKILL.md +249 -249
  269. package/skills/safeguard/SKILL.md +200 -200
  270. package/skills/sast/SKILL.md +190 -190
  271. package/skills/scaffold/SKILL.md +328 -286
  272. package/skills/scope-guard/SKILL.md +180 -162
  273. package/skills/scout/SKILL.md +263 -263
  274. package/skills/sentinel/SKILL.md +382 -353
  275. package/skills/sentinel-env/SKILL.md +254 -254
  276. package/skills/sequential-thinking/SKILL.md +234 -234
  277. package/skills/session-bridge/SKILL.md +543 -397
  278. package/skills/skill-forge/SKILL.md +581 -539
  279. package/skills/skill-router/{skill.md → SKILL.md} +30 -2
  280. package/skills/surgeon/SKILL.md +215 -215
  281. package/skills/team/SKILL.md +556 -514
  282. package/skills/test/SKILL.md +614 -587
  283. package/skills/trend-scout/SKILL.md +145 -145
  284. package/skills/verification/SKILL.md +326 -325
  285. package/skills/video-creator/SKILL.md +201 -201
  286. package/skills/watchdog/SKILL.md +168 -168
  287. package/skills/worktree/SKILL.md +140 -140
@@ -1,404 +1,404 @@
1
- ---
2
- name: context-engine
3
- description: "Context window management. Auto-triggered when context is filling up. Triggers smart compaction and preserves critical information across compaction boundaries. Called by L1 orchestrators at context thresholds."
4
- user-invocable: false
5
- metadata:
6
- author: runedev
7
- version: "0.9.0"
8
- layer: L3
9
- model: haiku
10
- group: state
11
- tools: "Read, Glob, Grep"
12
- ---
13
-
14
- # context-engine
15
-
16
- ## Purpose
17
-
18
- Context window management for long sessions. Detects when context is approaching limits, triggers smart compaction preserving critical decisions and progress, and coordinates with session-bridge to save state before compaction. Prevents the common failure mode of losing important context mid-workflow.
19
-
20
- ### Behavioral Contexts
21
-
22
- Context-engine also manages **behavioral mode injection** via `contexts/` directory. Three modes are available:
23
-
24
- | Mode | File | When to Use |
25
- |------|------|-------------|
26
- | `dev` | `contexts/dev.md` | Active coding — bias toward action, code-first |
27
- | `research` | `contexts/research.md` | Investigation — read widely, evidence-based |
28
- | `review` | `contexts/review.md` | Code review — systematic, severity-labeled |
29
-
30
- **Mode activation**: Orchestrators (cook, team, rescue) can set the active mode by writing to `.rune/active-context.md`. The session-start hook injects the active context file into the session. Mode switches mid-session are supported — the orchestrator updates the file and references the new behavioral rules.
31
-
32
- **Default**: If no `.rune/active-context.md` exists, no behavioral mode is injected (standard Claude behavior).
33
-
34
- ## Triggers
35
-
36
- - Called by `cook` and `team` automatically at context boundaries
37
- - Auto-trigger: when tool call count exceeds threshold or context utilization is high
38
- - Auto-trigger: before compaction events
39
-
40
- ## Calls (outbound)
41
-
42
- # Exception: L3→L3 coordination
43
- - `session-bridge` (L3): coordinate state save when context critical
44
-
45
- ## Called By (inbound)
46
-
47
- - Auto-triggered at phase boundaries and context thresholds by L1 orchestrators
48
-
49
- ## Execution
50
-
51
- ### Step 1 — Count tool calls
52
-
53
- Count total tool calls made so far in this session. This is the ONLY reliable metric — token usage is not exposed by Claude Code and any estimate will be dangerously inaccurate.
54
-
55
- Do NOT attempt to estimate token percentages. Tool count is a directional proxy, not a precise measurement.
56
-
57
- ### Step 2 — Classify health
58
-
59
- Map tool call count to health level:
60
-
61
- ```
62
- GREEN (<50 calls) — Healthy, continue normally
63
- YELLOW (50-80 calls) — Load only essential files going forward
64
- ORANGE (80-120 calls) — Recommend /compact at next logical boundary
65
- RED (>120 calls) — Trigger immediate compaction, save state first
66
- ```
67
-
68
- These thresholds are directional heuristics, not precise limits. Sessions with many large file reads may hit context limits earlier; sessions with mostly Grep/Glob may go longer.
69
-
70
- #### Large-File Adjustment
71
-
72
- Projects with large source files (Python modules often 500-1500 LOC, Java files similarly) consume significantly more context per `Read` call. If the session has read files averaging >500 lines, apply a 0.8x multiplier to all thresholds:
73
-
74
- ```
75
- Adjusted thresholds (large-file sessions):
76
- GREEN (<40 calls) — Healthy, continue normally
77
- YELLOW (40-65 calls) — Load only essential files going forward
78
- ORANGE (65-100 calls) — Recommend /compact at next logical boundary
79
- RED (>100 calls) — Trigger immediate compaction, save state first
80
- ```
81
-
82
- Detection: count `Read` tool calls that returned >500 lines. If ≥3 such calls → activate large-file thresholds for the remainder of the session.
83
-
84
- ### Step 3 — If YELLOW
85
-
86
- Emit advisory to the calling orchestrator:
87
-
88
- > "[X] tool calls. Load only essential files. Avoid reading full files when Grep will do."
89
-
90
- Do NOT trigger compaction yet. Continue execution.
91
-
92
- ### Step 4 — If ORANGE
93
-
94
- Emit recommendation to the calling orchestrator:
95
-
96
- > "[X] tool calls. Recommend /compact at next phase boundary (after current module completes)."
97
-
98
- Identify the next safe boundary (end of current loop iteration, end of current file being processed) and flag it.
99
-
100
- ### Step 5 — If RED
101
-
102
- Immediately trigger state save via `rune:session-bridge` (Save Mode) before any compaction occurs.
103
-
104
- Pass to session-bridge:
105
- - Current task and phase description
106
- - List of files touched this session
107
- - Decisions made (architectural choices, conventions established)
108
- - Remaining tasks not yet started
109
-
110
- After session-bridge confirms save, emit:
111
-
112
- > "Context CRITICAL ([X] tool calls, likely near limit). State saved to .rune/. Run /compact now."
113
-
114
- Block further tool calls until compaction is acknowledged.
115
-
116
- ### Step 6 — Report
117
-
118
- Emit the context health report to the calling skill.
119
-
120
- ### Step 6b — Context Percentage Advisory
121
-
122
- In addition to tool-call counting, monitor context window percentage when available:
123
-
124
- | Remaining | Level | Action |
125
- |-----------|-------|--------|
126
- | >35% | SAFE | Continue normally |
127
- | 25-35% | WARNING | Advise: "Context at ~[X]%. Consider /compact at next phase boundary" |
128
- | <25% | CRITICAL | Save state via session-bridge → recommend immediate /compact |
129
-
130
- Debounce: emit advisory max once per 5 tool calls to avoid noise.
131
- Tool-call thresholds (Steps 1-2) remain the primary signal. Percentage advisory is supplementary — use when CLI status bar data is available.
132
-
133
- ## Iterative Retrieval (Context-Loading Strategy)
134
-
135
- When loading context for a task (Phase 1 of cook, or onboard), use a 4-phase retrieval loop instead of loading everything at once:
136
-
137
- ```
138
- 1. DISPATCH (broad): Search with initial task keywords → get 5-10 candidate files
139
- 2. EVALUATE: Score each file's relevance (0-1). Note codebase-specific terminology discovered
140
- 3. REFINE: Use discovered terms to search again with better keywords
141
- 4. LOOP: Repeat max 3 cycles. STOP when 3 high-relevance files found (not 10 mediocre ones)
142
- ```
143
-
144
- **Why**: The first search cycle reveals codebase-specific terms (custom class names, project conventions, internal APIs) that produce much better results in cycle 2. Loading 3 deeply relevant files beats loading 10 surface-level matches.
145
-
146
- **Key rule**: Stop at 3 high-relevance files, not 10 mediocre ones. Quality > quantity for context loading.
147
-
148
- ## Compaction Technique: Structured Summary with Continuation Point
149
-
150
- When compaction is triggered (RED or approved ORANGE), generate a **structured summary** that replaces the full conversation history while preserving therapeutic continuity — the ability to resume exactly where work left off.
151
-
152
- ### Summary Structure
153
-
154
- The compaction summary MUST include these sections in order:
155
-
156
- ```markdown
157
- ## Compaction Summary (generated at [tool call count])
158
-
159
- ### Topics Covered
160
- - [bullet list of distinct topics/tasks worked on this session]
161
-
162
- ### Key Decisions Made
163
- - [decision]: [rationale] — affects [files/modules]
164
-
165
- ### Active Threads
166
- - [what was being worked on when compaction triggered — the "where we are now" anchor]
167
- - Current file: [path], current function/section: [name]
168
- - Partial progress: [what's done vs what remains in the immediate task]
169
-
170
- ### Emotional/Priority Context
171
- - [user urgency level, blocking issues, deadlines mentioned]
172
- - [any user frustrations or preferences expressed this session]
173
-
174
- ### Continuation Point
175
- > Resume: [exact next action to take — not vague "continue working" but specific "implement the validation logic in src/auth/validate.ts:47 using the Zod schema defined in Step 2"]
176
- ```
177
-
178
- ### Why This Structure
179
-
180
- Most compaction loses the **continuation point** — the agent knows WHAT was discussed but not WHERE to resume. The "Active Threads" and "Continuation Point" sections solve this by preserving:
181
- 1. The exact file and function being edited
182
- 2. What's done vs remaining in the current micro-task
183
- 3. The specific next action (not a summary of the plan, but the next concrete step)
184
-
185
- ### Rules
186
-
187
- - Summary MUST be <500 tokens — if longer, you're summarizing too much detail
188
- - "Active Threads" section is the most critical — get this wrong and the agent restarts from scratch
189
- - Never include full file contents in the summary — only paths and line references
190
- - Include user tone/urgency signals — these are lost in pure technical summaries
191
-
192
- ## Incremental Stream Processing
193
-
194
- When processing streaming LLM output (e.g., in skills that invoke AI calls or process tool output incrementally), use **sentence-level buffering** instead of waiting for the full response:
195
-
196
- ### Pattern: Buffer → Detect Boundary → Act
197
-
198
- ```
199
- 1. ACCUMULATE: Feed incoming chunks into a text buffer
200
- 2. DETECT: Check for sentence boundaries:
201
- - Primary: 40+ chars ending in . ! ? ; :
202
- - Secondary: paragraph break (\n\n) with 15+ chars accumulated
203
- - Never split mid-word or mid-code-block
204
- 3. EXTRACT: Remove the complete sentence from the buffer
205
- 4. ACT: Process the extracted sentence immediately (e.g., queue for TTS, parse for structured data, update progress display)
206
- 5. CONTINUE: Keep accumulating the next sentence while processing the current one
207
- ```
208
-
209
- ### When to Use
210
-
211
- - **Skills that stream AI responses to the user**: process and display incrementally instead of waiting for the full response
212
- - **Background note-taking**: extract key points from streaming output as they arrive
213
- - **Progress reporting**: detect milestone keywords in streaming output to update progress
214
-
215
- ### When NOT to Use
216
-
217
- - **Code generation**: wait for the full code block — partial code is useless
218
- - **JSON output**: accumulate until the closing brace — partial JSON can't be parsed
219
- - **Short responses** (<100 chars expected): overhead of boundary detection exceeds benefit
220
-
221
- ## Artifact Folding (Large Output Management)
222
-
223
- When tool results are excessively large, they consume disproportionate context without proportionate value. **Artifact folding** saves the full output to a file and replaces it in context with a compact preview.
224
-
225
- ### When to Fold
226
-
227
- | Condition | Action |
228
- |-----------|--------|
229
- | Tool output > 4000 characters | Fold to artifact |
230
- | Tool output > 120 lines | Fold to artifact |
231
- | Multiple tool outputs from the same command class (e.g., 5+ Grep results) | Fold all into single artifact |
232
- | Code block output > 200 lines | Fold to artifact |
233
-
234
- ### Folding Procedure
235
-
236
- 1. **Save full output** to `.rune/artifacts/artifact-{timestamp}-{tool}.md`:
237
- ```markdown
238
- # Artifact: {tool_name} output
239
- Generated: {timestamp}
240
- Command: {tool_call_summary}
241
-
242
- {full_output}
243
- ```
244
-
245
- 2. **Replace in context** with a compact preview:
246
- ```
247
- [FOLDED: {tool_name} output — {line_count} lines, {char_count} chars]
248
- Preview (first 10 lines):
249
- {first_10_lines}
250
- ...
251
- Full output: .rune/artifacts/artifact-{timestamp}-{tool}.md
252
- Use Read to access the full artifact if needed.
253
- ```
254
-
255
- 3. **On compaction**: Artifact files survive compaction — the continuation summary references them by path. This means large outputs are preserved across compaction boundaries without consuming context.
256
-
257
- ### Rules
258
-
259
- - **Never fold user messages** — only tool outputs
260
- - **Never fold error outputs** — errors need full visibility for debugging
261
- - **Never fold outputs < 1000 chars** — folding overhead exceeds savings
262
- - **Fold preemptively in YELLOW/ORANGE** — don't wait for RED to start managing output size
263
- - **Clean up artifacts** at session end: artifacts older than the current session can be deleted (they're already in git history or irrelevant)
264
-
265
- ### Why
266
-
267
- A single `Grep` across a large codebase can return 3000+ lines. Without folding, this consumes ~4000 tokens of context — often more than the rest of the conversation combined. Folding preserves the information (accessible via Read) while keeping context lean. Combined with the Structured Summary compaction technique, artifact folding enables much longer productive sessions.
268
-
269
- ## Context Health Levels
270
-
271
- ```
272
- GREEN (<50 calls) — Healthy, continue normally
273
- YELLOW (50-80 calls) — Load only essential files
274
- ORANGE (80-120 calls) — Recommend /compact at next logical boundary
275
- RED (>120 calls) — Save state NOW via session-bridge, compact immediately
276
- ```
277
-
278
- Note: These are tool call counts, NOT token percentages. Claude Code does not expose context utilization to skills. Tool count is a directional signal only.
279
-
280
- ## Output Format
281
-
282
- ```
283
- ## Context Health
284
- - **Tool Calls**: [count]
285
- - **Status**: GREEN | YELLOW | ORANGE | RED
286
- - **Recommendation**: continue | load-essential-only | compact-at-boundary | compact-immediately
287
- - **Note**: Tool count is a directional proxy. Check CLI status bar for actual context usage.
288
-
289
- ### Critical Context (preserved on compaction)
290
- - Task: [current task]
291
- - Phase: [current phase]
292
- - Decisions: [count saved to .rune/]
293
- - Files touched: [list]
294
- - Blockers: [if any]
295
- ```
296
-
297
- ## Strategic Compact Decision Table
298
-
299
- When ORANGE or RED is reached, use this table to determine whether compaction is safe at the current boundary:
300
-
301
- | Transition | Compact? | Reason |
302
- |-----------|----------|--------|
303
- | Research → Planning | YES | Research findings summarize well; key decisions survive |
304
- | Planning → Implementation | YES | Plan is in files (.rune/plan-*.md); context can reload from artifacts |
305
- | Debug → Next feature | YES | Debug findings are in Debug Report; fix has the diagnosis |
306
- | Mid-implementation (Phase 4) | **CONDITIONAL** | Safe ONLY at task boundaries within Phase 4 (after a file is fully written + tested). Never mid-file-edit. See Mid-Loop Compaction below |
307
- | After failed approach → Pivot | YES | Failed approach should be discarded; fresh context helps |
308
- | Quality (Phase 5) → Verify | **NO** | Quality findings reference specific file:line in current context |
309
- | After commit (Phase 7) | YES | Work is persisted in git; safe boundary |
310
-
311
- **What survives compaction**: Task description, file paths mentioned, key decisions, plan reference, current phase.
312
- **What is lost**: Full file contents read, intermediate reasoning, exact error messages, tool output details.
313
-
314
- ### Mid-Loop Compaction (Phase 4 Emergency)
315
-
316
- > From goclaw (nextlevelbuilder/goclaw, 832★): "Compact during run, not just at session boundary."
317
-
318
- When context hits RED during Phase 4 (implementation), compaction IS possible at **clean split points**:
319
-
320
- 1. **Find a clean boundary**: completed task within the phase (file fully written + tests pass for that file)
321
- 2. **Flush state first**: call `session-bridge` to save progress, then call `neural-memory` to capture decisions
322
- 3. **Split 70/30**: preserve 70% of remaining context for continuation, summarize 30% of completed work
323
- 4. **Never break tool pairs**: compaction MUST NOT split a `tool_use` from its `tool_result` — always keep pairs together
324
- 5. **Inject continuation marker**: after compaction, include: "Resuming Phase 4. Tasks [1-3] complete. Currently on task 4. Plan file: `.rune/plan-X-phaseN.md`"
325
-
326
- **Timeout fallback**: If clean boundary can't be found within 30 seconds, create `.rune/.continue-here.md` and pause instead.
327
-
328
- **Skip if**: Context is ORANGE (not RED), or fewer than 3 tasks remain in the phase.
329
-
330
- ## Context Budget Audit (Baseline Cost Awareness)
331
-
332
- MCP tool schemas and agent descriptions consume significant baseline context before any work begins. This section helps identify and reduce invisible context waste.
333
-
334
- ### Token Cost Reference
335
-
336
- | Source | Approx. Cost | Loaded When |
337
- |--------|-------------|-------------|
338
- | Each MCP tool schema | ~500 tokens | Session start (always) |
339
- | Each agent description | ~200-400 tokens | Every `Task()` invocation |
340
- | CLAUDE.md | ~100-2000 tokens | Session start (always) |
341
- | Skill SKILL.md (full load) | ~500-3000 tokens | When skill is invoked |
342
-
343
- ### Budget Rules
344
-
345
- | Rule | Threshold | Action |
346
- |------|-----------|--------|
347
- | Max MCP servers | <10 active | Disable unused MCP servers in settings |
348
- | Max MCP tools | <80 total | Remove or consolidate bloated MCP servers |
349
- | Agent descriptions | Only load needed | Use specific `subagent_type` to avoid loading all descriptions |
350
- | CLAUDE.md size | <150 lines | Move detailed docs to `.rune/` files, keep CLAUDE.md as index |
351
-
352
- ### Audit Procedure
353
-
354
- When context health is YELLOW or worse, or when onboard detects >80 MCP tools:
355
-
356
- 1. Count total MCP tool schemas loaded (from session start messages)
357
- 2. Count agent descriptions available
358
- 3. Estimate baseline cost: `(tools × 500) + (agents × 300) + CLAUDE.md tokens`
359
- 4. If baseline >15% of estimated context window → flag as **Context Budget Warning**
360
- 5. Rank MCP servers by tool count — suggest disabling servers with most tools and least usage
361
-
362
- ### Report Addition
363
-
364
- When Context Budget Warning fires, append to Context Health report:
365
-
366
- ```
367
- ### Context Budget
368
- - **Baseline cost**: ~[N]k tokens ([X]% of estimated window)
369
- - **MCP tools loaded**: [count] across [N] servers
370
- - **Top consumers**: [server1] ([N] tools), [server2] ([N] tools)
371
- - **Recommendation**: Disable [server] to save ~[N]k tokens
372
- ```
373
-
374
- ## Constraints
375
-
376
- 1. MUST preserve context fidelity — no summarizing away critical details
377
- 2. MUST flag context conflicts between skills — never silently pick one
378
- 3. MUST NOT inject stale context from previous sessions without marking it as historical
379
-
380
- ## Sharp Edges
381
-
382
- Known failure modes for this skill. Check these before declaring done.
383
-
384
- | Failure Mode | Severity | Mitigation |
385
- |---|---|---|
386
- | Triggering compaction without saving state first | CRITICAL | Step 5 (RED): session-bridge MUST run before any compaction — state loss is irreversible |
387
- | Blocking tool calls when context is ORANGE (not RED) | MEDIUM | ORANGE = recommend only; blocking is only for RED (>120 calls) |
388
- | Injecting stale context from previous session without marking it historical | HIGH | Constraint 3: all loaded context must include session date marker |
389
- | Premature compaction from over-estimated utilization | MEDIUM | Tool count is directional only — sessions with heavy Read calls may need lower thresholds; only block at confirmed RED |
390
- | Not activating large-file adjustment on Python/Java codebases | MEDIUM | Track Read calls returning >500 lines; if ≥3 occur, switch to adjusted (0.8x) thresholds for the session |
391
- | Mid-loop compaction breaks tool_use/tool_result pair | CRITICAL | Always keep tool pairs together — splitting causes orphaned results and context corruption |
392
- | Mid-loop compaction without flushing state first | HIGH | session-bridge + neural-memory MUST run before compaction — losing unsaved decisions is worse than hitting context limit |
393
-
394
- ## Done When
395
-
396
- - Tool call count captured
397
- - Health level classified from count thresholds (GREEN / YELLOW / ORANGE / RED)
398
- - Appropriate advisory emitted matching health level (no advisory for GREEN)
399
- - If RED: session-bridge called and confirmed saved before compaction signal
400
- - Context Health Report emitted with tool count, status, and recommendation
401
-
402
- ## Cost Profile
403
-
404
- ~200-500 tokens input, ~100-200 tokens output. Haiku for minimal overhead. Runs frequently as a background monitor.
1
+ ---
2
+ name: context-engine
3
+ description: "Context window management. Auto-triggered when context is filling up. Triggers smart compaction and preserves critical information across compaction boundaries. Called by L1 orchestrators at context thresholds."
4
+ user-invocable: false
5
+ metadata:
6
+ author: runedev
7
+ version: "0.9.0"
8
+ layer: L3
9
+ model: haiku
10
+ group: state
11
+ tools: "Read, Glob, Grep"
12
+ ---
13
+
14
+ # context-engine
15
+
16
+ ## Purpose
17
+
18
+ Context window management for long sessions. Detects when context is approaching limits, triggers smart compaction preserving critical decisions and progress, and coordinates with session-bridge to save state before compaction. Prevents the common failure mode of losing important context mid-workflow.
19
+
20
+ ### Behavioral Contexts
21
+
22
+ Context-engine also manages **behavioral mode injection** via `contexts/` directory. Three modes are available:
23
+
24
+ | Mode | File | When to Use |
25
+ |------|------|-------------|
26
+ | `dev` | `contexts/dev.md` | Active coding — bias toward action, code-first |
27
+ | `research` | `contexts/research.md` | Investigation — read widely, evidence-based |
28
+ | `review` | `contexts/review.md` | Code review — systematic, severity-labeled |
29
+
30
+ **Mode activation**: Orchestrators (cook, team, rescue) can set the active mode by writing to `.rune/active-context.md`. The session-start hook injects the active context file into the session. Mode switches mid-session are supported — the orchestrator updates the file and references the new behavioral rules.
31
+
32
+ **Default**: If no `.rune/active-context.md` exists, no behavioral mode is injected (standard Claude behavior).
33
+
34
+ ## Triggers
35
+
36
+ - Called by `cook` and `team` automatically at context boundaries
37
+ - Auto-trigger: when tool call count exceeds threshold or context utilization is high
38
+ - Auto-trigger: before compaction events
39
+
40
+ ## Calls (outbound)
41
+
42
+ # Exception: L3→L3 coordination
43
+ - `session-bridge` (L3): coordinate state save when context critical
44
+
45
+ ## Called By (inbound)
46
+
47
+ - Auto-triggered at phase boundaries and context thresholds by L1 orchestrators
48
+
49
+ ## Execution
50
+
51
+ ### Step 1 — Count tool calls
52
+
53
+ Count total tool calls made so far in this session. This is the ONLY reliable metric — token usage is not exposed by Claude Code and any estimate will be dangerously inaccurate.
54
+
55
+ Do NOT attempt to estimate token percentages. Tool count is a directional proxy, not a precise measurement.
56
+
57
+ ### Step 2 — Classify health
58
+
59
+ Map tool call count to health level:
60
+
61
+ ```
62
+ GREEN (<50 calls) — Healthy, continue normally
63
+ YELLOW (50-80 calls) — Load only essential files going forward
64
+ ORANGE (80-120 calls) — Recommend /compact at next logical boundary
65
+ RED (>120 calls) — Trigger immediate compaction, save state first
66
+ ```
67
+
68
+ These thresholds are directional heuristics, not precise limits. Sessions with many large file reads may hit context limits earlier; sessions with mostly Grep/Glob may go longer.
69
+
70
+ #### Large-File Adjustment
71
+
72
+ Projects with large source files (Python modules often 500-1500 LOC, Java files similarly) consume significantly more context per `Read` call. If the session has read files averaging >500 lines, apply a 0.8x multiplier to all thresholds:
73
+
74
+ ```
75
+ Adjusted thresholds (large-file sessions):
76
+ GREEN (<40 calls) — Healthy, continue normally
77
+ YELLOW (40-65 calls) — Load only essential files going forward
78
+ ORANGE (65-100 calls) — Recommend /compact at next logical boundary
79
+ RED (>100 calls) — Trigger immediate compaction, save state first
80
+ ```
81
+
82
+ Detection: count `Read` tool calls that returned >500 lines. If ≥3 such calls → activate large-file thresholds for the remainder of the session.
83
+
84
+ ### Step 3 — If YELLOW
85
+
86
+ Emit advisory to the calling orchestrator:
87
+
88
+ > "[X] tool calls. Load only essential files. Avoid reading full files when Grep will do."
89
+
90
+ Do NOT trigger compaction yet. Continue execution.
91
+
92
+ ### Step 4 — If ORANGE
93
+
94
+ Emit recommendation to the calling orchestrator:
95
+
96
+ > "[X] tool calls. Recommend /compact at next phase boundary (after current module completes)."
97
+
98
+ Identify the next safe boundary (end of current loop iteration, end of current file being processed) and flag it.
99
+
100
+ ### Step 5 — If RED
101
+
102
+ Immediately trigger state save via `rune:session-bridge` (Save Mode) before any compaction occurs.
103
+
104
+ Pass to session-bridge:
105
+ - Current task and phase description
106
+ - List of files touched this session
107
+ - Decisions made (architectural choices, conventions established)
108
+ - Remaining tasks not yet started
109
+
110
+ After session-bridge confirms save, emit:
111
+
112
+ > "Context CRITICAL ([X] tool calls, likely near limit). State saved to .rune/. Run /compact now."
113
+
114
+ Block further tool calls until compaction is acknowledged.
115
+
116
+ ### Step 6 — Report
117
+
118
+ Emit the context health report to the calling skill.
119
+
120
+ ### Step 6b — Context Percentage Advisory
121
+
122
+ In addition to tool-call counting, monitor context window percentage when available:
123
+
124
+ | Remaining | Level | Action |
125
+ |-----------|-------|--------|
126
+ | >35% | SAFE | Continue normally |
127
+ | 25-35% | WARNING | Advise: "Context at ~[X]%. Consider /compact at next phase boundary" |
128
+ | <25% | CRITICAL | Save state via session-bridge → recommend immediate /compact |
129
+
130
+ Debounce: emit advisory max once per 5 tool calls to avoid noise.
131
+ Tool-call thresholds (Steps 1-2) remain the primary signal. Percentage advisory is supplementary — use when CLI status bar data is available.
132
+
133
+ ## Iterative Retrieval (Context-Loading Strategy)
134
+
135
+ When loading context for a task (Phase 1 of cook, or onboard), use a 4-phase retrieval loop instead of loading everything at once:
136
+
137
+ ```
138
+ 1. DISPATCH (broad): Search with initial task keywords → get 5-10 candidate files
139
+ 2. EVALUATE: Score each file's relevance (0-1). Note codebase-specific terminology discovered
140
+ 3. REFINE: Use discovered terms to search again with better keywords
141
+ 4. LOOP: Repeat max 3 cycles. STOP when 3 high-relevance files found (not 10 mediocre ones)
142
+ ```
143
+
144
+ **Why**: The first search cycle reveals codebase-specific terms (custom class names, project conventions, internal APIs) that produce much better results in cycle 2. Loading 3 deeply relevant files beats loading 10 surface-level matches.
145
+
146
+ **Key rule**: Stop at 3 high-relevance files, not 10 mediocre ones. Quality > quantity for context loading.
147
+
148
+ ## Compaction Technique: Structured Summary with Continuation Point
149
+
150
+ When compaction is triggered (RED or approved ORANGE), generate a **structured summary** that replaces the full conversation history while preserving therapeutic continuity — the ability to resume exactly where work left off.
151
+
152
+ ### Summary Structure
153
+
154
+ The compaction summary MUST include these sections in order:
155
+
156
+ ```markdown
157
+ ## Compaction Summary (generated at [tool call count])
158
+
159
+ ### Topics Covered
160
+ - [bullet list of distinct topics/tasks worked on this session]
161
+
162
+ ### Key Decisions Made
163
+ - [decision]: [rationale] — affects [files/modules]
164
+
165
+ ### Active Threads
166
+ - [what was being worked on when compaction triggered — the "where we are now" anchor]
167
+ - Current file: [path], current function/section: [name]
168
+ - Partial progress: [what's done vs what remains in the immediate task]
169
+
170
+ ### Emotional/Priority Context
171
+ - [user urgency level, blocking issues, deadlines mentioned]
172
+ - [any user frustrations or preferences expressed this session]
173
+
174
+ ### Continuation Point
175
+ > Resume: [exact next action to take — not vague "continue working" but specific "implement the validation logic in src/auth/validate.ts:47 using the Zod schema defined in Step 2"]
176
+ ```
177
+
178
+ ### Why This Structure
179
+
180
+ Most compaction loses the **continuation point** — the agent knows WHAT was discussed but not WHERE to resume. The "Active Threads" and "Continuation Point" sections solve this by preserving:
181
+ 1. The exact file and function being edited
182
+ 2. What's done vs remaining in the current micro-task
183
+ 3. The specific next action (not a summary of the plan, but the next concrete step)
184
+
185
+ ### Rules
186
+
187
+ - Summary MUST be <500 tokens — if longer, you're summarizing too much detail
188
+ - "Active Threads" section is the most critical — get this wrong and the agent restarts from scratch
189
+ - Never include full file contents in the summary — only paths and line references
190
+ - Include user tone/urgency signals — these are lost in pure technical summaries
191
+
192
+ ## Incremental Stream Processing
193
+
194
+ When processing streaming LLM output (e.g., in skills that invoke AI calls or process tool output incrementally), use **sentence-level buffering** instead of waiting for the full response:
195
+
196
+ ### Pattern: Buffer → Detect Boundary → Act
197
+
198
+ ```
199
+ 1. ACCUMULATE: Feed incoming chunks into a text buffer
200
+ 2. DETECT: Check for sentence boundaries:
201
+ - Primary: 40+ chars ending in . ! ? ; :
202
+ - Secondary: paragraph break (\n\n) with 15+ chars accumulated
203
+ - Never split mid-word or mid-code-block
204
+ 3. EXTRACT: Remove the complete sentence from the buffer
205
+ 4. ACT: Process the extracted sentence immediately (e.g., queue for TTS, parse for structured data, update progress display)
206
+ 5. CONTINUE: Keep accumulating the next sentence while processing the current one
207
+ ```
208
+
209
+ ### When to Use
210
+
211
+ - **Skills that stream AI responses to the user**: process and display incrementally instead of waiting for the full response
212
+ - **Background note-taking**: extract key points from streaming output as they arrive
213
+ - **Progress reporting**: detect milestone keywords in streaming output to update progress
214
+
215
+ ### When NOT to Use
216
+
217
+ - **Code generation**: wait for the full code block — partial code is useless
218
+ - **JSON output**: accumulate until the closing brace — partial JSON can't be parsed
219
+ - **Short responses** (<100 chars expected): overhead of boundary detection exceeds benefit
220
+
221
+ ## Artifact Folding (Large Output Management)
222
+
223
+ When tool results are excessively large, they consume disproportionate context without proportionate value. **Artifact folding** saves the full output to a file and replaces it in context with a compact preview.
224
+
225
+ ### When to Fold
226
+
227
+ | Condition | Action |
228
+ |-----------|--------|
229
+ | Tool output > 4000 characters | Fold to artifact |
230
+ | Tool output > 120 lines | Fold to artifact |
231
+ | Multiple tool outputs from the same command class (e.g., 5+ Grep results) | Fold all into single artifact |
232
+ | Code block output > 200 lines | Fold to artifact |
233
+
234
+ ### Folding Procedure
235
+
236
+ 1. **Save full output** to `.rune/artifacts/artifact-{timestamp}-{tool}.md`:
237
+ ```markdown
238
+ # Artifact: {tool_name} output
239
+ Generated: {timestamp}
240
+ Command: {tool_call_summary}
241
+
242
+ {full_output}
243
+ ```
244
+
245
+ 2. **Replace in context** with a compact preview:
246
+ ```
247
+ [FOLDED: {tool_name} output — {line_count} lines, {char_count} chars]
248
+ Preview (first 10 lines):
249
+ {first_10_lines}
250
+ ...
251
+ Full output: .rune/artifacts/artifact-{timestamp}-{tool}.md
252
+ Use Read to access the full artifact if needed.
253
+ ```
254
+
255
+ 3. **On compaction**: Artifact files survive compaction — the continuation summary references them by path. This means large outputs are preserved across compaction boundaries without consuming context.
256
+
257
+ ### Rules
258
+
259
+ - **Never fold user messages** — only tool outputs
260
+ - **Never fold error outputs** — errors need full visibility for debugging
261
+ - **Never fold outputs < 1000 chars** — folding overhead exceeds savings
262
+ - **Fold preemptively in YELLOW/ORANGE** — don't wait for RED to start managing output size
263
+ - **Clean up artifacts** at session end: artifacts older than the current session can be deleted (they're already in git history or irrelevant)
264
+
265
+ ### Why
266
+
267
+ A single `Grep` across a large codebase can return 3000+ lines. Without folding, this consumes ~4000 tokens of context — often more than the rest of the conversation combined. Folding preserves the information (accessible via Read) while keeping context lean. Combined with the Structured Summary compaction technique, artifact folding enables much longer productive sessions.
268
+
269
+ ## Context Health Levels
270
+
271
+ ```
272
+ GREEN (<50 calls) — Healthy, continue normally
273
+ YELLOW (50-80 calls) — Load only essential files
274
+ ORANGE (80-120 calls) — Recommend /compact at next logical boundary
275
+ RED (>120 calls) — Save state NOW via session-bridge, compact immediately
276
+ ```
277
+
278
+ Note: These are tool call counts, NOT token percentages. Claude Code does not expose context utilization to skills. Tool count is a directional signal only.
279
+
280
+ ## Output Format
281
+
282
+ ```
283
+ ## Context Health
284
+ - **Tool Calls**: [count]
285
+ - **Status**: GREEN | YELLOW | ORANGE | RED
286
+ - **Recommendation**: continue | load-essential-only | compact-at-boundary | compact-immediately
287
+ - **Note**: Tool count is a directional proxy. Check CLI status bar for actual context usage.
288
+
289
+ ### Critical Context (preserved on compaction)
290
+ - Task: [current task]
291
+ - Phase: [current phase]
292
+ - Decisions: [count saved to .rune/]
293
+ - Files touched: [list]
294
+ - Blockers: [if any]
295
+ ```
296
+
297
+ ## Strategic Compact Decision Table
298
+
299
+ When ORANGE or RED is reached, use this table to determine whether compaction is safe at the current boundary:
300
+
301
+ | Transition | Compact? | Reason |
302
+ |-----------|----------|--------|
303
+ | Research → Planning | YES | Research findings summarize well; key decisions survive |
304
+ | Planning → Implementation | YES | Plan is in files (.rune/plan-*.md); context can reload from artifacts |
305
+ | Debug → Next feature | YES | Debug findings are in Debug Report; fix has the diagnosis |
306
+ | Mid-implementation (Phase 4) | **CONDITIONAL** | Safe ONLY at task boundaries within Phase 4 (after a file is fully written + tested). Never mid-file-edit. See Mid-Loop Compaction below |
307
+ | After failed approach → Pivot | YES | Failed approach should be discarded; fresh context helps |
308
+ | Quality (Phase 5) → Verify | **NO** | Quality findings reference specific file:line in current context |
309
+ | After commit (Phase 7) | YES | Work is persisted in git; safe boundary |
310
+
311
+ **What survives compaction**: Task description, file paths mentioned, key decisions, plan reference, current phase.
312
+ **What is lost**: Full file contents read, intermediate reasoning, exact error messages, tool output details.
313
+
314
+ ### Mid-Loop Compaction (Phase 4 Emergency)
315
+
316
+ > From goclaw (nextlevelbuilder/goclaw, 832★): "Compact during run, not just at session boundary."
317
+
318
+ When context hits RED during Phase 4 (implementation), compaction IS possible at **clean split points**:
319
+
320
+ 1. **Find a clean boundary**: completed task within the phase (file fully written + tests pass for that file)
321
+ 2. **Flush state first**: call `session-bridge` to save progress, then call `neural-memory` to capture decisions
322
+ 3. **Split 70/30**: preserve 70% of remaining context for continuation, summarize 30% of completed work
323
+ 4. **Never break tool pairs**: compaction MUST NOT split a `tool_use` from its `tool_result` — always keep pairs together
324
+ 5. **Inject continuation marker**: after compaction, include: "Resuming Phase 4. Tasks [1-3] complete. Currently on task 4. Plan file: `.rune/plan-X-phaseN.md`"
325
+
326
+ **Timeout fallback**: If clean boundary can't be found within 30 seconds, create `.rune/.continue-here.md` and pause instead.
327
+
328
+ **Skip if**: Context is ORANGE (not RED), or fewer than 3 tasks remain in the phase.
329
+
330
+ ## Context Budget Audit (Baseline Cost Awareness)
331
+
332
+ MCP tool schemas and agent descriptions consume significant baseline context before any work begins. This section helps identify and reduce invisible context waste.
333
+
334
+ ### Token Cost Reference
335
+
336
+ | Source | Approx. Cost | Loaded When |
337
+ |--------|-------------|-------------|
338
+ | Each MCP tool schema | ~500 tokens | Session start (always) |
339
+ | Each agent description | ~200-400 tokens | Every `Task()` invocation |
340
+ | CLAUDE.md | ~100-2000 tokens | Session start (always) |
341
+ | Skill SKILL.md (full load) | ~500-3000 tokens | When skill is invoked |
342
+
343
+ ### Budget Rules
344
+
345
+ | Rule | Threshold | Action |
346
+ |------|-----------|--------|
347
+ | Max MCP servers | <10 active | Disable unused MCP servers in settings |
348
+ | Max MCP tools | <80 total | Remove or consolidate bloated MCP servers |
349
+ | Agent descriptions | Only load needed | Use specific `subagent_type` to avoid loading all descriptions |
350
+ | CLAUDE.md size | <150 lines | Move detailed docs to `.rune/` files, keep CLAUDE.md as index |
351
+
352
+ ### Audit Procedure
353
+
354
+ When context health is YELLOW or worse, or when onboard detects >80 MCP tools:
355
+
356
+ 1. Count total MCP tool schemas loaded (from session start messages)
357
+ 2. Count agent descriptions available
358
+ 3. Estimate baseline cost: `(tools × 500) + (agents × 300) + CLAUDE.md tokens`
359
+ 4. If baseline >15% of estimated context window → flag as **Context Budget Warning**
360
+ 5. Rank MCP servers by tool count — suggest disabling servers with most tools and least usage
361
+
362
+ ### Report Addition
363
+
364
+ When Context Budget Warning fires, append to Context Health report:
365
+
366
+ ```
367
+ ### Context Budget
368
+ - **Baseline cost**: ~[N]k tokens ([X]% of estimated window)
369
+ - **MCP tools loaded**: [count] across [N] servers
370
+ - **Top consumers**: [server1] ([N] tools), [server2] ([N] tools)
371
+ - **Recommendation**: Disable [server] to save ~[N]k tokens
372
+ ```
373
+
374
+ ## Constraints
375
+
376
+ 1. MUST preserve context fidelity — no summarizing away critical details
377
+ 2. MUST flag context conflicts between skills — never silently pick one
378
+ 3. MUST NOT inject stale context from previous sessions without marking it as historical
379
+
380
+ ## Sharp Edges
381
+
382
+ Known failure modes for this skill. Check these before declaring done.
383
+
384
+ | Failure Mode | Severity | Mitigation |
385
+ |---|---|---|
386
+ | Triggering compaction without saving state first | CRITICAL | Step 5 (RED): session-bridge MUST run before any compaction — state loss is irreversible |
387
+ | Blocking tool calls when context is ORANGE (not RED) | MEDIUM | ORANGE = recommend only; blocking is only for RED (>120 calls) |
388
+ | Injecting stale context from previous session without marking it historical | HIGH | Constraint 3: all loaded context must include session date marker |
389
+ | Premature compaction from over-estimated utilization | MEDIUM | Tool count is directional only — sessions with heavy Read calls may need lower thresholds; only block at confirmed RED |
390
+ | Not activating large-file adjustment on Python/Java codebases | MEDIUM | Track Read calls returning >500 lines; if ≥3 occur, switch to adjusted (0.8x) thresholds for the session |
391
+ | Mid-loop compaction breaks tool_use/tool_result pair | CRITICAL | Always keep tool pairs together — splitting causes orphaned results and context corruption |
392
+ | Mid-loop compaction without flushing state first | HIGH | session-bridge + neural-memory MUST run before compaction — losing unsaved decisions is worse than hitting context limit |
393
+
394
+ ## Done When
395
+
396
+ - Tool call count captured
397
+ - Health level classified from count thresholds (GREEN / YELLOW / ORANGE / RED)
398
+ - Appropriate advisory emitted matching health level (no advisory for GREEN)
399
+ - If RED: session-bridge called and confirmed saved before compaction signal
400
+ - Context Health Report emitted with tool count, status, and recommendation
401
+
402
+ ## Cost Profile
403
+
404
+ ~200-500 tokens input, ~100-200 tokens output. Haiku for minimal overhead. Runs frequently as a background monitor.