compact-guard · diff
git:20260331.68dbd4b to git:20260718.7f7209d
1 added, 0 removed. Audit A to A.
---
name: compact-guard
description: Smart context compaction with state preservation. Saves critical files, task progress, and working state before compaction, restores after. Use before manual compact or when auto-compact triggers.
+ user-invocable: true
---
# Compact Guard
Protect important context through compaction cycles. Based on Claude Code internals: compaction restores max 5 files with 5K tokens each, within a 50K total budget.
## Trigger
Use before `/compact` or when auto-compact warning appears.
## Key Constants (from Claude Code source)
- `POST_COMPACT_MAX_FILES_TO_RESTORE = 5` — only 5 files survive
- `POST_COMPACT_TOKEN_BUDGET = 50K` — total restore budget
- `POST_COMPACT_MAX_TOKENS_PER_FILE = 5K` — per-file limit
- Auto-compact fires at `context_window - 13K` buffer
## Pre-Compact Checklist
Before compacting, save these to memory or a scratch file:
1. **Current task** — What are you working on? One sentence.
2. **Files in progress** — Which files are being edited? (max 5 — compaction only restores 5)
3. **Decisions made** — Any architectural choices made this session
4. **Blockers** — What's preventing progress?
5. **Next steps** — What to do immediately after compact
## Strategy: Microcompact First
Before full compaction, try microcompact:
- Large tool results (test output, grep results) can be trimmed
- File reads that are no longer relevant can be dropped
- Use subagents for heavy exploration to keep main context clean
## Post-Compact Recovery
After compaction, immediately:
1. Re-read the top-priority file (the one you're actively editing)
2. Check task list for current progress
3. Review any scratch notes saved pre-compact
4. Resume from next steps
## Prevention Strategies
| Strategy | Token Savings | When |
|----------|--------------|------|
| Delegate grep/search to subagent | 30-60% per search | Always for broad searches |
| Read only needed lines (`offset`/`limit`) | 50-90% per read | Large files |
| Compact at task boundaries | Preserves coherence | Between logical steps |
| Use `/resume` for fresh start | 100% | Unrelated new task |
## Output
After running compact-guard:
```text
COMPACT GUARD
Files to preserve: [list top 5]
Task state: [one sentence]
Decisions: [key choices]
Next step: [immediate action after compact]
Ready to compact. Run /compact now.
```
## Rules
- Always save state before compacting — never compact blind
- Prioritize the file you're actively editing as #1 to restore
- If auto-compact fires unexpectedly, immediately re-read your working file
- Keep CLAUDE.md under 60 lines to leave room for actual context