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
bash
# 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:
bash
# 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
bash
# 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
bash
# 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:
bash
ralph compact
This wrapper command handles all the complexity automatically.
Post-Compact Actions
After saving context:
- •Start fresh: Use
/clearor start a new conversation - •Restore context: The
SessionStarthook will auto-load the saved ledger - •Verify restoration: Check that your objective is loaded
Recovery
If context was lost without saving:
bash
# 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
bash
# 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
bash
# Make hooks executable chmod +x ~/.claude/hooks/*.sh chmod +x ~/.claude/scripts/*.py
Context extractor fails
bash
# Test context extractor directly python3 ~/.claude/scripts/context-extractor.py --project . --pretty