@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.
- package/LICENSE +21 -21
- package/README.md +65 -6
- package/commands/rune.md +168 -168
- package/compiler/__tests__/detect-invariants.test.js +136 -0
- package/compiler/__tests__/doctor-mesh.test.js +229 -0
- package/compiler/__tests__/hook-dispatch.test.js +91 -0
- package/compiler/__tests__/hooks-antigravity.test.js +118 -0
- package/compiler/__tests__/hooks-cursor.test.js +139 -0
- package/compiler/__tests__/hooks-install.test.js +305 -0
- package/compiler/__tests__/hooks-merge.test.js +204 -0
- package/compiler/__tests__/hooks-tiers.test.js +519 -0
- package/compiler/__tests__/hooks-windsurf.test.js +115 -0
- package/compiler/__tests__/inject-claude-md.test.js +152 -0
- package/compiler/__tests__/load-invariants.test.js +408 -0
- package/compiler/__tests__/onboard-invariants.test.js +240 -0
- package/compiler/adapters/hooks/antigravity.js +140 -0
- package/compiler/adapters/hooks/claude.js +166 -0
- package/compiler/adapters/hooks/cursor.js +191 -0
- package/compiler/adapters/hooks/index.js +82 -0
- package/compiler/adapters/hooks/tier-emitter.js +182 -0
- package/compiler/adapters/hooks/windsurf.js +202 -0
- package/compiler/bin/rune.js +196 -6
- package/compiler/commands/hook-dispatch.js +87 -0
- package/compiler/commands/hooks/install.js +120 -0
- package/compiler/commands/hooks/merge.js +211 -0
- package/compiler/commands/hooks/presets.js +116 -0
- package/compiler/commands/hooks/status.js +112 -0
- package/compiler/commands/hooks/tiers.js +221 -0
- package/compiler/commands/hooks/uninstall.js +94 -0
- package/compiler/doctor.js +236 -0
- package/contexts/dev.md +34 -34
- package/contexts/research.md +43 -43
- package/contexts/review.md +55 -55
- package/extensions/ai-ml/PACK.md +88 -88
- package/extensions/ai-ml/skills/ai-agents.md +172 -172
- package/extensions/ai-ml/skills/code-sandbox.md +187 -187
- package/extensions/ai-ml/skills/deep-research.md +146 -146
- package/extensions/ai-ml/skills/embedding-search.md +66 -66
- package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
- package/extensions/ai-ml/skills/llm-architect.md +125 -125
- package/extensions/ai-ml/skills/llm-integration.md +64 -64
- package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
- package/extensions/ai-ml/skills/rag-patterns.md +66 -66
- package/extensions/ai-ml/skills/web-extraction.md +114 -114
- package/extensions/analytics/PACK.md +92 -92
- package/extensions/analytics/skills/ab-testing.md +72 -72
- package/extensions/analytics/skills/dashboard-patterns.md +83 -83
- package/extensions/analytics/skills/data-validation.md +68 -68
- package/extensions/analytics/skills/funnel-analysis.md +81 -81
- package/extensions/analytics/skills/sql-patterns.md +57 -57
- package/extensions/analytics/skills/statistical-analysis.md +79 -79
- package/extensions/analytics/skills/tracking-setup.md +71 -71
- package/extensions/backend/PACK.md +104 -104
- package/extensions/backend/skills/api-patterns.md +84 -84
- package/extensions/backend/skills/async-pipeline.md +193 -193
- package/extensions/backend/skills/auth-patterns.md +97 -97
- package/extensions/backend/skills/background-jobs.md +133 -133
- package/extensions/backend/skills/caching-patterns.md +108 -108
- package/extensions/backend/skills/cli-generation.md +133 -133
- package/extensions/backend/skills/database-patterns.md +87 -87
- package/extensions/backend/skills/middleware-patterns.md +104 -104
- package/extensions/chrome-ext/PACK.md +93 -93
- package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
- package/extensions/chrome-ext/skills/cws-publish.md +104 -104
- package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
- package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
- package/extensions/chrome-ext/skills/ext-storage.md +133 -133
- package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
- package/extensions/content/PACK.md +96 -96
- package/extensions/content/skills/blog-patterns.md +88 -88
- package/extensions/content/skills/cms-integration.md +131 -131
- package/extensions/content/skills/content-scoring.md +107 -107
- package/extensions/content/skills/i18n.md +83 -83
- package/extensions/content/skills/mdx-authoring.md +137 -137
- package/extensions/content/skills/reference.md +1014 -1014
- package/extensions/content/skills/seo-patterns.md +67 -67
- package/extensions/content/skills/video-repurpose.md +153 -153
- package/extensions/devops/PACK.md +101 -101
- package/extensions/devops/skills/chaos-testing.md +67 -67
- package/extensions/devops/skills/ci-cd.md +75 -75
- package/extensions/devops/skills/docker.md +58 -58
- package/extensions/devops/skills/edge-serverless.md +163 -163
- package/extensions/devops/skills/infra-as-code.md +158 -158
- package/extensions/devops/skills/kubernetes.md +110 -110
- package/extensions/devops/skills/monitoring.md +57 -57
- package/extensions/devops/skills/server-setup.md +64 -64
- package/extensions/devops/skills/ssl-domain.md +42 -42
- package/extensions/ecommerce/PACK.md +116 -116
- package/extensions/ecommerce/skills/cart-system.md +79 -79
- package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
- package/extensions/ecommerce/skills/order-management.md +126 -126
- package/extensions/ecommerce/skills/payment-integration.md +472 -472
- package/extensions/ecommerce/skills/shopify-dev.md +69 -69
- package/extensions/ecommerce/skills/subscription-billing.md +93 -93
- package/extensions/ecommerce/skills/tax-compliance.md +117 -117
- package/extensions/gamedev/PACK.md +142 -142
- package/extensions/gamedev/skills/asset-pipeline.md +74 -74
- package/extensions/gamedev/skills/audio-system.md +129 -129
- package/extensions/gamedev/skills/camera-system.md +87 -87
- package/extensions/gamedev/skills/ecs.md +98 -98
- package/extensions/gamedev/skills/game-loops.md +72 -72
- package/extensions/gamedev/skills/input-system.md +199 -199
- package/extensions/gamedev/skills/multiplayer.md +180 -180
- package/extensions/gamedev/skills/particles.md +105 -105
- package/extensions/gamedev/skills/physics-engine.md +89 -89
- package/extensions/gamedev/skills/scene-management.md +146 -146
- package/extensions/gamedev/skills/threejs-patterns.md +90 -90
- package/extensions/gamedev/skills/webgl.md +71 -71
- package/extensions/mobile/PACK.md +106 -106
- package/extensions/mobile/skills/app-store-connect.md +152 -152
- package/extensions/mobile/skills/app-store-prep.md +66 -66
- package/extensions/mobile/skills/deep-linking.md +109 -109
- package/extensions/mobile/skills/flutter.md +60 -60
- package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
- package/extensions/mobile/skills/native-bridge.md +66 -66
- package/extensions/mobile/skills/ota-updates.md +97 -97
- package/extensions/mobile/skills/push-notifications.md +111 -111
- package/extensions/mobile/skills/react-native.md +82 -82
- package/extensions/saas/PACK.md +116 -116
- package/extensions/saas/skills/billing-integration.md +200 -200
- package/extensions/saas/skills/feature-flags.md +130 -130
- package/extensions/saas/skills/multi-tenant.md +103 -103
- package/extensions/saas/skills/onboarding-flow.md +139 -139
- package/extensions/saas/skills/subscription-flow.md +95 -95
- package/extensions/saas/skills/team-management.md +144 -144
- package/extensions/security/PACK.md +99 -99
- package/extensions/security/skills/api-security.md +140 -140
- package/extensions/security/skills/compliance.md +68 -68
- package/extensions/security/skills/owasp-audit.md +64 -64
- package/extensions/security/skills/pentest-patterns.md +77 -77
- package/extensions/security/skills/secret-mgmt.md +65 -65
- package/extensions/security/skills/supply-chain.md +65 -65
- package/extensions/trading/PACK.md +80 -80
- package/extensions/trading/skills/chart-components.md +55 -55
- package/extensions/trading/skills/experiment-loop.md +125 -125
- package/extensions/trading/skills/fintech-patterns.md +47 -47
- package/extensions/trading/skills/indicator-library.md +58 -58
- package/extensions/trading/skills/quant-analysis.md +111 -111
- package/extensions/trading/skills/realtime-data.md +58 -58
- package/extensions/trading/skills/trade-logic.md +104 -104
- package/extensions/ui/PACK.md +130 -130
- package/extensions/ui/skills/a11y-audit.md +91 -91
- package/extensions/ui/skills/animation-patterns.md +127 -127
- package/extensions/ui/skills/component-patterns.md +100 -100
- package/extensions/ui/skills/design-decision.md +108 -108
- package/extensions/ui/skills/design-system.md +68 -68
- package/extensions/ui/skills/landing-patterns.md +155 -155
- package/extensions/ui/skills/palette-picker.md +173 -173
- package/extensions/ui/skills/react-health.md +90 -90
- package/extensions/ui/skills/type-system.md +125 -125
- package/extensions/ui/skills/web-vitals.md +153 -153
- package/extensions/zalo/PACK.md +145 -145
- package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
- package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
- package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
- package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
- package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
- package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
- package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
- package/hooks/auto-format/index.cjs +48 -48
- package/hooks/hooks.json +111 -111
- package/hooks/post-session-reflect/index.cjs +189 -189
- package/hooks/pre-compact/index.cjs +95 -95
- package/hooks/run-hook.cmd +1 -1
- package/hooks/secrets-scan/index.cjs +100 -100
- package/hooks/session-start/index.cjs +71 -71
- package/hooks/typecheck/index.cjs +65 -65
- package/package.json +63 -63
- package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
- package/references/ui-pro-max-data/charts.csv +26 -26
- package/references/ui-pro-max-data/colors.csv +161 -161
- package/references/ui-pro-max-data/styles.csv +68 -68
- package/references/ui-pro-max-data/typography.csv +74 -74
- package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
- package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
- package/skills/adversary/SKILL.md +283 -283
- package/skills/asset-creator/SKILL.md +157 -157
- package/skills/audit/SKILL.md +147 -2
- package/skills/autopsy/SKILL.md +335 -335
- package/skills/ba/SKILL.md +85 -1
- package/skills/brainstorm/SKILL.md +380 -342
- package/skills/browser-pilot/SKILL.md +169 -168
- package/skills/constraint-check/SKILL.md +165 -165
- package/skills/context-engine/SKILL.md +408 -404
- package/skills/cook/SKILL.md +917 -863
- package/skills/db/SKILL.md +273 -273
- package/skills/debug/SKILL.md +465 -465
- package/skills/dependency-doctor/SKILL.md +265 -235
- package/skills/deploy/SKILL.md +274 -231
- package/skills/design/DESIGN-REFERENCE.md +365 -365
- package/skills/design/SKILL.md +590 -589
- package/skills/doc-processor/SKILL.md +254 -254
- package/skills/docs/SKILL.md +374 -374
- package/skills/docs-seeker/SKILL.md +178 -177
- package/skills/fix/SKILL.md +332 -330
- package/skills/git/SKILL.md +339 -339
- package/skills/hallucination-guard/SKILL.md +220 -219
- package/skills/incident/SKILL.md +254 -253
- package/skills/integrity-check/SKILL.md +169 -169
- package/skills/journal/SKILL.md +241 -240
- package/skills/launch/SKILL.md +344 -344
- package/skills/logic-guardian/SKILL.md +269 -251
- package/skills/marketing/SKILL.md +351 -289
- package/skills/mcp-builder/SKILL.md +425 -425
- package/skills/neural-memory/SKILL.md +359 -362
- package/skills/onboard/SKILL.md +432 -403
- package/skills/onboard/references/invariants-template.md +76 -0
- package/skills/onboard/scripts/detect-invariants.js +439 -0
- package/skills/onboard/scripts/inject-claude-md.js +150 -0
- package/skills/onboard/scripts/onboard-invariants.js +194 -0
- package/skills/perf/SKILL.md +347 -346
- package/skills/plan/SKILL.md +435 -428
- package/skills/preflight/SKILL.md +415 -415
- package/skills/problem-solver/SKILL.md +380 -284
- package/skills/rescue/SKILL.md +474 -474
- package/skills/research/SKILL.md +4 -0
- package/skills/retro/SKILL.md +3 -1
- package/skills/review/SKILL.md +614 -588
- package/skills/review-intake/SKILL.md +249 -249
- package/skills/safeguard/SKILL.md +200 -200
- package/skills/sast/SKILL.md +190 -190
- package/skills/scaffold/SKILL.md +328 -287
- package/skills/scope-guard/SKILL.md +183 -180
- package/skills/scout/SKILL.md +269 -263
- package/skills/sentinel/SKILL.md +384 -381
- package/skills/sentinel-env/SKILL.md +254 -254
- package/skills/sequential-thinking/SKILL.md +234 -234
- package/skills/session-bridge/SKILL.md +595 -543
- package/skills/session-bridge/scripts/load-invariants.js +397 -0
- package/skills/skill-forge/SKILL.md +581 -581
- package/skills/skill-router/SKILL.md +3 -0
- package/skills/slides/SKILL.md +19 -0
- package/skills/surgeon/SKILL.md +215 -215
- package/skills/team/SKILL.md +557 -537
- package/skills/test/SKILL.md +620 -614
- package/skills/trend-scout/SKILL.md +145 -145
- package/skills/verification/SKILL.md +334 -326
- package/skills/video-creator/SKILL.md +201 -201
- package/skills/watchdog/SKILL.md +168 -168
- 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.
|
|
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
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
### Step
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
-
|
|
172
|
-
- [
|
|
173
|
-
|
|
174
|
-
###
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
###
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
- **
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
{
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
- **
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
-
|
|
291
|
-
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
|
306
|
-
|
|
307
|
-
|
|
|
308
|
-
|
|
|
309
|
-
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
**
|
|
327
|
-
|
|
328
|
-
**
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
|
389
|
-
|
|
390
|
-
|
|
|
391
|
-
|
|
|
392
|
-
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
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: "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 6 — Report
|
|
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
|
+
| Research → Planning | YES | Research findings summarize well; key decisions survive |
|
|
308
|
+
| Planning → Implementation | 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.
|