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