Agents: - Add YAML frontmatter (model, tools) to all 7 existing agents - New agents: planner (opus), build-error-resolver (sonnet), loop-operator (sonnet) Skills: - search-first: research before building (Adopt/Extend/Compose/Build) - verification-loop: full quality gate pipeline (Build→TypeCheck→Lint→Test→Security→Diff) - strategic-compact: when and how to run /compact effectively - autonomous-loops: 6 patterns for autonomous agent workflows - continuous-learning: extract session learnings into instincts Hooks: - Profile system (minimal/standard/strict) via run-with-profile.sh - config-protection: block linter/formatter config edits (standard) - suggest-compact: remind about /compact every ~50 tool calls (standard) - auto-tmux-dev: suggest tmux for dev servers (standard) - session-save/session-load: persist and restore session context (Stop/SessionStart) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.3 KiB
3.3 KiB
name, description, disable-model-invocation
| name | description | disable-model-invocation |
|---|---|---|
| strategic-compact | Guide for when and how to run /compact effectively — preserving critical context while freeing token budget. Use at phase transitions, before large implementations, or when context is bloated. | true |
Strategic Compact
Evaluate whether /compact should be run now, and if so, prepare for it.
Context
Current conversation state:
!echo "Working directory: $(pwd)" && echo "Git branch: $(git branch --show-current 2>/dev/null)" && echo "Modified files: $(git diff --name-only 2>/dev/null | wc -l | tr -d ' ')" && echo "Staged files: $(git diff --cached --name-only 2>/dev/null | wc -l | tr -d ' ')"
When to Compact
Use this decision table:
| Trigger | Should Compact? | Priority |
|---|---|---|
| Phase transition (planning → implementation) | Yes | High |
| Starting a new major feature | Yes | High |
| After completing a large task (before next) | Yes | Medium |
| Context feels sluggish or repetitive | Yes | Medium |
| Mid-implementation (code partially written) | No — finish first | - |
| Debugging an active issue | No — need full context | - |
| Waiting for user input | Maybe — depends on context size | Low |
Do NOT compact when:
- You're in the middle of writing code (partial state will be lost)
- You're debugging and need the full error trail
- You have uncommitted understanding of complex relationships
- The user just gave important instructions that aren't saved to files
Pre-Compact Checklist
Before running /compact, ensure critical context survives:
1. Save state to files
Information that exists only in conversation will be lost. Save to appropriate places:
- Implementation plan → Update or create a task list
- Decisions made → Record in
RECOMMENDATIONS.mdor ADR - Current phase/status → Verify
docs/phases-plan.mdis current - Known issues → Document in code comments or issues
2. Commit work in progress
# Check for uncommitted changes
git status
# If meaningful changes exist, commit them
git add -A && git commit -m "wip: [what was in progress]"
3. Verify anchors
Ensure these files are up-to-date (they'll be re-read after compact):
RULES.md— project conventionsRECOMMENDATIONS.md— current decisions and constraintsdocs/phases-plan.md— phase status
4. Write a compact summary
Create a brief note of what survives compaction vs. what's re-derivable:
Survives (in files):
- Project rules and recommendations
- Code changes (committed)
- Documentation updates
Lost (conversation-only):
- Reasoning chains and trade-off discussions
- Rejected approaches and why
- Nuanced context from user messages
After Compact
After /compact runs:
- Re-read
RULES.mdandRECOMMENDATIONS.md - Check task list for current progress
- Review
git log --oneline -5for recent context - Resume work from the task list
Token Optimization Tips
- Before compact: Write meaningful commit messages — they're your post-compact memory
- File references: Use
file:linereferences instead of pasting code blocks - Avoid re-reading: Once you've read a file, note the key facts — don't re-read it
- Trim conversation: If the user asks a tangential question, answer it concisely without pulling in the full project context