Claude-skill-registry compact
Manually trigger context save when auto-compact fails in VSCode/Cursor extensions. Use when context is high and you need to preserve state before starting fresh.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/compact" ~/.claude/skills/majiayu000-claude-skill-registry-compact && rm -rf "$T"
manifest:
skills/data/compact/SKILL.mdsource content
Manual Context Save (Compact Workaround)
Why This Exists
VSCode and Cursor extensions have limited hook support (GitHub issue #15021). The
PreCompact hook may not trigger automatically, leading to lost context.
This skill provides manual control to save state before context overflow.
When to Use
- Context warning shows 80%+ usage
- Working in VSCode or Cursor extension
- Before starting a new conversation
- When auto-compact doesn't seem to work
Execution Steps
Step 1: Detect Environment
# Check current environment source ~/.claude/hooks/detect-environment.sh 2>/dev/null && print_env_info || echo "Environment detection unavailable"
Step 2: Get Current Session ID
The session ID is needed to save context properly:
# Try to get session ID from state SESSION_ID=$(cat ~/.ralph/state/current-session 2>/dev/null || echo "manual-$(date +%Y%m%d-%H%M%S)") echo "Session: $SESSION_ID"
Step 3: Extract and Save Context
# Run the pre-compact hook manually export SESSION_ID="${SESSION_ID:-manual-$(date +%Y%m%d-%H%M%S)}" # Create input JSON for the hook echo "{\"hook_event_name\":\"PreCompact\",\"session_id\":\"$SESSION_ID\",\"transcript_path\":\"\"}" | \ ~/.claude/hooks/pre-compact-handoff.sh echo "" echo "✅ Context saved to:" echo " Ledger: ~/.ralph/ledgers/CONTINUITY_RALPH-$SESSION_ID.md" echo " Handoff: ~/.ralph/handoffs/$SESSION_ID/"
Step 4: Verify Save
# Show the saved ledger echo "=== SAVED LEDGER ===" head -30 ~/.ralph/ledgers/CONTINUITY_RALPH-$SESSION_ID.md 2>/dev/null || echo "Ledger not found"
Alternative: Use Ralph CLI
If the above doesn't work, use the Ralph CLI directly:
ralph compact
This wrapper command handles all the complexity automatically.
Post-Compact Actions
After saving context:
- Start fresh: Use
or start a new conversation/clear - Restore context: The
hook will auto-load the saved ledgerSessionStart - Verify restoration: Check that your objective is loaded
Recovery
If context was lost without saving:
# List recent ledgers ralph ledger list # Load a specific ledger ralph ledger load <session-id> # Search handoffs ralph handoff search "keyword"
Troubleshooting
Hook not found
# Verify hooks exist ls -la ~/.claude/hooks/pre-compact-handoff.sh ls -la ~/.claude/hooks/detect-environment.sh # If missing, sync from repo ralph sync-global
Permission denied
# Make hooks executable chmod +x ~/.claude/hooks/*.sh chmod +x ~/.claude/scripts/*.py
Context extractor fails
# Test context extractor directly python3 ~/.claude/scripts/context-extractor.py --project . --pretty