Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Monitors conversation complexity and manages session boundaries. Proactively secures state and memory before advising the user to split work across separate chat sessions, preventing context bloat.
.claude/skills/bilal140202-context-hygiene-session-management/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 33% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 4% | 0% |
AI context windows degrade as conversations grow. After ~30+ exchanges, the AI loses track of earlier constraints, starts hallucinating details, and wastes tokens re-reading irrelevant history.
This skill teaches Anti-Gravity to actively manage session boundaries automatically — securing all progress to disk before the user moves to a clean chat window.
Recommend the user open a new chat window when:
Never ask Beloved to manually copy-paste a "Handoff Brief." Instead, perform these two steps automatically:
Before suggesting a split, ensure all permanent knowledge from this session is written to disk:
.agents/memory/decisions-log.md..agents/memory/mistakes-to-avoid.md..agents/memory/common-patterns.md.Update .agents/workflow-state.json so the next session knows exactly where to resume. Ensure the notes, key_decisions, and phases fields are perfectly up to date.
Reference format from GLOBAL_MEMORY.md:
json{ "workflow": "build-feature", "current_phase": "IMPLEMENT", "completion_pct": 64, "notes": "Finished the UI layout. Next session must focus on wiring the submit button to the API.", "key_decisions": ["Used Flexbox instead of Grid for the main container"], "blockers": [] }
Once the files are updated, tell Beloved: > "I've secured our progress in `workflow-state.json` and logged our decisions to Memory. This chat is getting long — I recommend opening a new chat window to continue. The new session will automatically read the state file and pick up exactly where we left off."
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 6,540 | 4,768 | -27% | 1 | 1 | 0% | 1,181 | 1,573 | +33% | 0 | 0 | — |
case-02 | fail→fail | 6,421 | 13,488 | +110% | 1 | 1 | 0% | 1,140 | 1,563 | +37% | 0 | 0 | — |
case-03 | fail→pass | 8,120 | 5,897 | -27% | 1 | 1 | 0% | 1,392 | 1,697 | +22% | 0 | 0 | — |
case-04 | fail→pass | 9,597 | 5,120 | -47% | 1 | 1 | 0% | 1,544 | 1,582 | +2% | 0 | 0 | — |
case-05 | pass→pass | 6,968 | 4,550 | -35% | 1 | 1 | 0% | 1,129 | 1,421 | +26% | 0 | 0 | — |
case-06 | fail→pass | 8,431 | 5,685 | -33% | 1 | 1 | 0% | 1,512 | 1,619 | +7% | 0 | 0 | — |
case-07 | fail→pass | 8,585 | 5,176 | -40% | 1 | 1 | 0% | 1,441 | 1,503 | +4% | 0 | 0 | — |
case-08 | fail→pass | 12,801 | 3,880 | -70% | 1 | 1 | 0% | 2,067 | 1,432 | -31% | 0 | 0 | — |
case-09 | fail→pass | 5,222 | 3,537 | -32% | 1 | 1 | 0% | 875 | 1,270 | +45% | 0 | 0 | — |
case-10 | pass→pass | 7,417 | 4,611 | -38% | 1 | 1 | 0% | 1,188 | 1,404 | +18% | 0 | 0 | — |
case-11 | pass→pass | 9,025 | 6,203 | -31% | 1 | 1 | 0% | 1,611 | 1,820 | +13% | 0 | 0 | — |
case-12 | fail→pass | 9,122 | 4,955 | -46% | 1 | 1 | 0% | 1,565 | 1,613 | +3% | 0 | 0 | — |
case-13 | fail→pass | 11,579 | 2,843 | -75% | 1 | 1 | 0% | 1,836 | 1,125 | -39% | 0 | 0 | — |
case-14 | pass→pass | 6,389 | 3,005 | -53% | 1 | 1 | 0% | 1,036 | 1,172 | +13% | 0 | 0 | — |
case-15 | pass→pass | 4,167 | 2,384 | -43% | 1 | 1 | 0% | 624 | 1,095 | +75% | 0 | 0 | — |
case-16 | fail→pass | 5,963 | 2,949 | -51% | 1 | 1 | 0% | 1,027 | 1,174 | +14% | 0 | 0 | — |
case-17 | fail→pass | 7,811 | 3,262 | -58% | 1 | 1 | 0% | 1,328 | 1,285 | -3% | 0 | 0 | — |
case-18 | fail→pass | 7,412 | 3,091 | -58% | 1 | 1 | 0% | 1,247 | 1,182 | -5% | 0 | 0 | — |
case-19 | fail→pass | 8,513 | 3,633 | -57% | 1 | 1 | 0% | 1,594 | 1,423 | -11% | 0 | 0 | — |
case-20 | pass→pass | 5,949 | 3,578 | -40% | 1 | 1 | 0% | 1,021 | 1,302 | +28% | 0 | 0 | — |
case-21 | fail→pass | 8,718 | 1,948 | -78% | 1 | 1 | 0% | 1,570 | 1,015 | -35% | 0 | 0 | — |
case-22 | fail→fail | 8,087 | 3,466 | -57% | 1 | 1 | 0% | 1,199 | 1,254 | +5% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +64 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.