home / skills / affaan-m / everything-claude-code / strategic-compact

strategic-compact skill

/skills/strategic-compact

This skill prompts strategic manual compaction at logical task boundaries to preserve context across phases and boost productivity.

npx playbooks add skill affaan-m/everything-claude-code --skill strategic-compact

Review the files below or copy the command above to add this skill to your agents.

Files (2)
SKILL.md
3.9 KB
---
name: strategic-compact
description: Suggests manual context compaction at logical intervals to preserve context through task phases rather than arbitrary auto-compaction.
---

# Strategic Compact Skill

Suggests manual `/compact` at strategic points in your workflow rather than relying on arbitrary auto-compaction.

## When to Activate

- Running long sessions that approach context limits (200K+ tokens)
- Working on multi-phase tasks (research → plan → implement → test)
- Switching between unrelated tasks within the same session
- After completing a major milestone and starting new work
- When responses slow down or become less coherent (context pressure)

## Why Strategic Compaction?

Auto-compaction triggers at arbitrary points:
- Often mid-task, losing important context
- No awareness of logical task boundaries
- Can interrupt complex multi-step operations

Strategic compaction at logical boundaries:
- **After exploration, before execution** — Compact research context, keep implementation plan
- **After completing a milestone** — Fresh start for next phase
- **Before major context shifts** — Clear exploration context before different task

## How It Works

The `suggest-compact.js` script runs on PreToolUse (Edit/Write) and:

1. **Tracks tool calls** — Counts tool invocations in session
2. **Threshold detection** — Suggests at configurable threshold (default: 50 calls)
3. **Periodic reminders** — Reminds every 25 calls after threshold

## Hook Setup

Add to your `~/.claude/settings.json`:

```json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit",
        "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
      },
      {
        "matcher": "Write",
        "hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
      }
    ]
  }
}
```

## Configuration

Environment variables:
- `COMPACT_THRESHOLD` — Tool calls before first suggestion (default: 50)

## Compaction Decision Guide

Use this table to decide when to compact:

| Phase Transition | Compact? | Why |
|-----------------|----------|-----|
| Research → Planning | Yes | Research context is bulky; plan is the distilled output |
| Planning → Implementation | Yes | Plan is in TodoWrite or a file; free up context for code |
| Implementation → Testing | Maybe | Keep if tests reference recent code; compact if switching focus |
| Debugging → Next feature | Yes | Debug traces pollute context for unrelated work |
| Mid-implementation | No | Losing variable names, file paths, and partial state is costly |
| After a failed approach | Yes | Clear the dead-end reasoning before trying a new approach |

## What Survives Compaction

Understanding what persists helps you compact with confidence:

| Persists | Lost |
|----------|------|
| CLAUDE.md instructions | Intermediate reasoning and analysis |
| TodoWrite task list | File contents you previously read |
| Memory files (`~/.claude/memory/`) | Multi-step conversation context |
| Git state (commits, branches) | Tool call history and counts |
| Files on disk | Nuanced user preferences stated verbally |

## Best Practices

1. **Compact after planning** — Once plan is finalized in TodoWrite, compact to start fresh
2. **Compact after debugging** — Clear error-resolution context before continuing
3. **Don't compact mid-implementation** — Preserve context for related changes
4. **Read the suggestion** — The hook tells you *when*, you decide *if*
5. **Write before compacting** — Save important context to files or memory before compacting
6. **Use `/compact` with a summary** — Add a custom message: `/compact Focus on implementing auth middleware next`

## Related

- [The Longform Guide](https://x.com/affaanmustafa/status/2014040193557471352) — Token optimization section
- Memory persistence hooks — For state that survives compaction
- `continuous-learning` skill — Extracts patterns before session ends

Overview

This skill suggests manual /compact at logical points in long sessions to preserve important context across task phases. It encourages deliberate compaction when context is bulky or when you transition between distinct phases, instead of letting auto-compaction trigger arbitrarily. The goal is smoother multi-step workflows and fewer lost details during complex operations.

How this skill works

A small hook script runs before edit/write tool use and tracks tool invocations in the session. When a configurable threshold is reached it suggests running /compact, then issues periodic reminders after additional invocations. You keep full control: the skill only recommends compaction and provides a short decision guide to help choose when to apply it.

When to use it

  • Working sessions that approach large context sizes (200K+ tokens)
  • Multi-phase tasks: research → plan → implement → test
  • After finishing a major milestone before starting a new phase
  • When switching to an unrelated task inside the same session
  • If responses slow down or become less coherent due to context pressure

Best practices

  • Compact after finalizing a plan to start implementation with a distilled context
  • Save key outputs to files or memory before compacting to avoid accidental loss
  • Avoid compacting mid-implementation to preserve variable names, file paths, and partial state
  • Use /compact with a short summary message to record intent (e.g., "/compact Focus on implementing auth middleware next")
  • Treat the hook suggestion as advisory — read the prompt and decide whether to compact
  • Configure thresholds to match your workflow; default first suggestion is 50 tool calls

Example use cases

  • Research sprint: compact after exploration and before converting findings into an implementation plan
  • Feature development: compact after planning so implementation has a clean, focused context
  • Debugging sessions: compact after resolving an issue to avoid carrying noisy traces into new features
  • Long hacking session: receive reminders when tool-call volume grows and decide safe compaction points
  • Context-heavy testing: compact between unrelated test suites to reduce cross-test interference

FAQ

Does the hook automatically compact my session?

No. The skill only suggests /compact at configured thresholds; you manually confirm and can add a summary message.

How do I change when suggestions appear?

Set the COMPACT_THRESHOLD environment variable to change the initial trigger, and adjust reminder intervals in the script if desired.