Agent skill
anchor-based-context-recovery
Use when starting work after context compaction, switching features, or gathering context without re-reading entire files - searches anchor tags to find relevant architecture/pattern documentation
Install this agent skill to your Project
npx add-skill https://github.com/DrSatsuma1/catherine-claude-skills/tree/main/anchor-based-context-recovery
SKILL.md
Anchor-Based Context Recovery
When to Use
ALWAYS use when:
- Starting work on a feature/bug after context compaction
- Switching between different features in same session
- User says "work on feature X" or "fix bug Y"
- About to modify code you haven't read in current context
DO NOT use when:
- You just read the relevant files in current conversation
- Working on trivial changes (<10 lines)
- User is asking general questions, not requesting implementation
The Problem
After context compaction or in new sessions:
- Claude loses track of what files were already modified
- Must re-read 500+ line files to understand architecture
- Forgets critical constraints and validation rules
- Wastes context re-learning project structure
The Solution: Searchable Anchors
Projects embed HTML comment anchors in their documentation:
<!-- anchor: validation-rules -->
## Validation Architecture
- Foreign language: Warning only
- AP Calculus: Hard block
- Located: App.jsx:229-474
<!-- anchor: state-management -->
## Core State Structure
- courses array: Primary schedule data
- Located: App.jsx:285-290
Key principle: Anchors survive file splits and refactoring. Code locations change, but anchor names remain stable.
Phase 1: Discover Relevant Anchors
Step 1: Search for anchor documentation
# Find all anchor files
find docs/ -name "*anchor*" -o -name "architecture.md" -o -name "context-map.md" 2>/dev/null
# Or search all docs for anchors
grep -r "<!-- anchor:" docs/ 2>/dev/null | head -20
Step 2: Search for task-specific anchors
If working on feature F012:
grep -r "anchor:.*F012" docs/ 2>/dev/null
grep -r "anchor:.*refactor" docs/ 2>/dev/null
If working on validation bug:
grep -r "anchor:.*validation" docs/ 2>/dev/null
grep -r "anchor:.*rules" docs/ 2>/dev/null
Step 3: List all available anchors
grep -r "<!-- anchor:" docs/ 2>/dev/null | sed 's/.*anchor: //' | sed 's/ -->.*//' | sort -u
Phase 2: Collect Context
Step 1: Read anchor sections ONLY
Do NOT read entire files. Use grep with context:
# Read validation anchor + 20 lines after
grep -A 20 "<!-- anchor: validation-rules -->" docs/architecture/core.md
# Or read multiple related anchors
grep -A 15 "<!-- anchor: state-management -->" docs/architecture/core.md
grep -A 15 "<!-- anchor: credit-calculation -->" docs/architecture/core.md
Step 2: Find related code locations
Anchors should reference exact file locations. Extract them:
<!-- anchor: validation-rules -->
Located: App.jsx:229-474
Related: SchedulingEngine.js:150-200
Then use Read tool with those specific line ranges, or use Grep to find the relevant sections.
Step 3: Search for related patterns
Based on anchor info, search for related code:
# If anchor mentions "validation rules", find all validators
grep -r "validate.*course" src/ --include="*.js"
# Find related hooks
grep -r "use.*Validation" src/hooks/
Phase 3: Verify Understanding
Before making changes, verify:
-
Architecture constraints from anchors
- File size limits?
- Required patterns?
- Validation rules?
-
Current state from code search
- Where is the relevant code?
- What are the dependencies?
- Are there existing tests?
-
Related components from anchor links
- What else might be affected?
- Are there anchor references to related features?
Phase 4: Document Your Changes (Optional)
When adding new patterns, suggest anchor additions:
If you extract validation logic to a new file:
<!-- anchor: course-validator -->
## Course Validator Module
- Extracted from: App.jsx:229-474 (Nov 2024)
- Located: src/domain/validators/courseValidator.js
- Used by: App.jsx, SchedulingEngine.js
- Related: validation-rules anchor (original pattern)
When modifying existing patterns, note anchor updates needed:
Suggest updating the anchor documentation when you make significant changes to referenced code.
Anchor Naming Conventions
Good anchor names:
<!-- anchor: validation-rules -->- Describes the concept<!-- anchor: F012-refactor-plan -->- References feature ID<!-- anchor: state-management -->- Clear, searchable<!-- anchor: 300-line-enforcement -->- References constraint
Bad anchor names:
<!-- anchor: important -->- Too vague<!-- anchor: app-stuff -->- Not searchable<!-- anchor: temp-notes -->- Implies temporary<!-- anchor: section-3 -->- Meaningless number
Expected Workflow Example
# User says: "Fix the foreign language validation bug"
# Phase 1: Find anchors
grep -r "anchor:.*validation" docs/
# Result: <!-- anchor: validation-rules --> in docs/architecture/core.md
# Phase 2: Collect context
grep -A 30 "<!-- anchor: validation-rules -->" docs/architecture/core.md
# Reads: Validation rules are in App.jsx:229-474
# Use Grep to find the exact code
grep -n "foreign.*language" src/App.jsx
# Phase 3: Verify understanding
# - Rule: Foreign language validation is WARNING only (from anchor)
# - Location: App.jsx:229-293 (from anchor)
# - Current behavior: Need to check implementation
# Phase 4: Make the fix with full context
# - Know where the code is
# - Know the expected pattern
# - Know related constraints from anchors
Benefits
Compared to re-reading full files:
- 940-line file → 50 lines of anchor context (95% reduction)
- Survives refactoring (anchors update when files split)
- Searchable by concept, not by file path
- Works across sessions and compaction
Compared to manual summarization:
- Consistent structure across features
- Easy to update when code changes
- Machine-readable (grep-able)
- No information loss from summarization
Common Anchor Patterns
Pattern 1: Feature Development
<!-- anchor: F012-refactor-plan -->
## Feature F012: Extract Validation Logic
- Status: in_progress
- Files to modify: App.jsx (reduce 940→300 lines)
- Extract to: src/domain/validators/
- Tests: tests/validators/
- Related: validation-rules, 300-line-enforcement anchors
Pattern 2: Bug Fixes
<!-- anchor: bug-foreign-language-validation -->
## Bug: Foreign Language Prerequisites Not Checking
- Reported: 2024-11-27
- Expected: Warning when skipping levels
- Actual: No warning shown
- Root cause: TBD
- Related: validation-rules anchor
Pattern 3: Architecture Constraints
<!-- anchor: 300-line-rule -->
## Architecture Constraint: File Size Limit
- Hard limit: 300 lines per file
- Enforcement: .github/workflows/architecture-check.yml
- Current violations: App.jsx (940 lines)
- Refactor priority: HIGH
- Related: F012-refactor-plan
Checklist
Before claiming you've used this skill:
- Searched for relevant anchors (
grep -r "anchor:.*keyword" docs/) - Read ONLY anchor sections (not full files)
- Found code locations from anchor references
- Searched for related patterns in codebase
- Verified architecture constraints from anchors
- Ready to implement without re-reading full context
Anti-Patterns to Avoid
DON'T:
- Read entire files when anchors exist
- Assume anchor content from previous sessions
- Skip anchor search because "I remember this"
- Create anchors for trivial code (<20 lines)
- Use anchors as TODO lists (use feature roadmap instead)
DO:
- Search for anchors at start of EVERY task
- Reference exact file locations in anchors
- Link related anchors together
- Keep anchor descriptions concise (20-50 lines)
- Update anchor docs when making significant changes
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
multi-ai-orchestration
Use when stuck on complex problems, need architecture validation, want code review from multiple perspectives, or debugging hits a wall - guides leveraging multiple AI models in parallel for better results
us-tax-code
Complete US Internal Revenue Code (Title 26) with 2,160 sections covering individual income tax, business deductions, corporate tax, partnerships, international tax, capital gains, and all federal tax provisions. Search by section number or topic.
react-architecture-enforcer
Use when fixing bugs, something broken, not working, or doesn't work in React - also when adding features, request says "quick fix", "keep it simple", or "follow existing pattern"
obsidian-vault
Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.
edit-article
Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.
handoff
Compact the current conversation into a handoff document for another agent to pick up.
Didn't find tool you were looking for?