optimize
Optimize context usage for the session by reducing bloat, improving token efficiency, and focusing on relevant areas. Use when context is growing large, responses are slow, or switching between unrela
SKILL.mdpackages/catalog/catalog/skills/adt-optimize/SKILL.md
GitHubOptimize: Context Optimization Workflow
Complete guidance for optimizing context usage, reducing token consumption, and improving session efficiency.
When to Use
- Context is growing large or responses are slowing down
- Approaching context window limits
- Switching between unrelated features or domains
- Responses lack relevance or precision
- Session continuity must be preserved during optimization
Context Optimization Strategy
Priority-Ordered Techniques
- Remove irrelevant context - Identify files/turns not related to current task
- Use @file references - Reference files instead of reading full contents
- Delegate to subagents - Move independent research to parallel tasks
- MCP-first approach - Use specialized MCP tools (Context7, Serena) instead of raw file reads
- Compress - Use
/compactwhen approaching 70% context window
Optimization Modes
| Mode | Action | When to Use |
|---|---|---|
analyze |
Report context state without changes | Diagnosing bloat, no immediate action needed |
compact |
Run /compact immediately |
Approaching context limits, need instant reduction |
targeted |
Ask for current task, prune everything else | Switching domains, clear task focus available |
mcp-first |
Suggest MCP alternatives for raw reads | Using many manual file reads, want tool automation |
focus <area> |
Narrow to specific development area | Switching features, want domain-specific context |
Context Analysis Framework
Estimate Current Usage
- Low: <40% of window used, no urgency
- Medium: 40-70% used, monitor, may need soon
- High: 70-85% used, start optimization
- Critical: >85% used, optimize immediately
Identify Top 3 Context Contributors
Typical large items:
- Large source files (>500 lines)
- Conversation history (many turns)
- Test outputs and logs
- Error traces and stack overflows
- Multiple dependency trees
- External docs or guides
Relevance Assessment
For each large contributor, ask:
- Is this still needed for the current task?
- Was it loaded for a previous, completed task?
- Can it be referenced instead of loaded?
- Can an MCP tool provide it on-demand instead?
Focused Scoping by Area
When switching development areas, use focused scoping to reduce noise:
Area Patterns
| Area | Key Paths | Focus Signal |
|---|---|---|
| auth | auth/, middleware/, session, JWT, cookies |
User management, login/signup |
| frontend | components/, app/, hooks, UI, styles, Tailwind |
Component development, styling |
| backend | api/, routes/, services/, handlers |
Endpoints, business logic |
| database | migrations/, schema, models/, RLS |
Data layer, queries |
| testing | __tests__/, *.test.*, *.spec.* |
Test development, coverage |
| payments | billing/, stripe, subscription |
Payment processing |
| mcp | tools/, server, Zod schemas |
Tool development |
When focusing on an area:
- Identify all files, modules, tests related to the area
- Summarize current state (recent changes, open issues, key files)
- Set mental context: only suggest changes relevant to this area
- List top 3-5 files to start with for any task in this area
Compacting and Pruning
When to Compact
- Context usage exceeds 70% window
- Response latency noticeably increases
- Model shows signs of context saturation (longer thinking, less precision)
- Switching to a completely unrelated task
Compacting Strategy
- Summarize conversation into key decisions and blockers
- Drop irrelevant files from context
- Replace full file reads with @file references
- Move research tasks to
/dispatchor subagent calls - Keep only task-critical information
Targeted Pruning
When the next task is clear:
- Ask: "What is the specific task ahead?"
- Remove all context not required for that task
- Keep only: task description, relevant code files, active blockers
- Add back context incrementally if needed
MCP-First Approach
MCP Tools That Reduce Context Load
| Tool | Replaces |
|---|---|
| Context7 | Manual doc reads (libraries, frameworks) |
| Serena | Symbol lookup, refactoring, codebase navigation |
| Bash (grep/find) | Massive file listings |
| GitHub API | Full diff reviews, PR inspection |
Using MCP Instead of Raw Files
Instead of reading a 400-line library file:
Use Context7 to query library docs for the specific API
Instead of searching codebase manually:
Use Serena find_referencing_symbols to locate usage patterns
Instead of loading CI logs:
Use GitHub Actions API or ci-watch skill to get structured results
Session State Preservation
When to Use context-save
Preserve session state when:
- Work is not yet complete
- Decision points need to be remembered
- Complex interdependencies exist
- Session may be interrupted
Write to ~/.claude/handoffs/<project>/latest.md:
- Current task and progress
- Key decisions made
- Active blockers
- Files under active development
- Next immediate step
When to Use session-cleanup
Do a deliberate reset when:
- The old task is fully complete
- Switching to an unrelated project
- Accumulated stale context is causing confusion
- Starting fresh work with different assumptions
Diagnostic Checklist
- Identify current context bloat source
- Confirm current task and scope
- Measure estimated reduction if action taken
- Choose the minimal technique that solves the problem
- Verify relevance of remaining context after action
Common Optimization Patterns
Pattern: Slow Response
Symptom: Model takes longer to think, response latency increases
Root cause: Usually context bloat, not compute
Fix: Run /optimize analyze, identify largest items, remove irrelevant context
Pattern: Loss of Focus
Symptom: Model suggests unrelated changes, forgets current task
Root cause: Too many active threads in context
Fix: Run /optimize focus <area> or /compact
Pattern: Approaching Limits
Symptom: Context window warnings, truncation
Root cause: Accumulation of conversation and files
Fix: Run /compact immediately, then assess what should stay
Pattern: Switching Tasks
Symptom: Need to move to a different feature
Root cause: Old task context is now noise
Fix: Run /context-save if work may resume, then /optimize focus <new-area>
Output Format
Context Optimization Report
────────────────────────────
Current Usage: [low/medium/high/critical] (est. N% of window)
Top 3 Items: [item1, item2, item3] (N tokens each)
Relevance: [yes/no for each, with reason]
Recommended Action: [compact/focus/mcp-first/delegate/none]
Estimated Savings: [N% reduction expected]
Next Step: [specific command or action]
Outputs / Evidence
- Return the concrete optimization action or recommendation
- Include estimated token/context savings
- Note any preserved state that resumable work requires
- Suggest next actions for the current task
Failure / Stop Conditions
- Stop if required context for the task is not identified
- Stop if optimization would drop critical information
- Do not optimize away preserved decisions or blockers
- Stop if the real problem is not context bloat
Memory Hooks
- Read memory when prior session context affects optimization strategy
- Write memory only if this session establishes a durable context-management policy