CLAUDE.md Progressive Disclosure Optimizer
Analyze and optimize user CLAUDE.md files to reduce context overhead while preserving functionality.
Quick Start
- •Backup the original file first
- •Audit the current state (list all sections with line counts)
- •Classify each section using the criteria below
- •Propose optimizations with before/after comparison table
- •Verify information completeness checklist before executing
- •Execute approved changes
- •Test that moved content remains discoverable
Section Classification
Analyze each section and classify:
| Category | Criteria | Action |
|---|---|---|
| Keep in CLAUDE.md | Core principles, short rules (<10 lines), frequently needed | Keep as-is |
| Move to references/ | Detailed procedures, code examples, troubleshooting guides | Create ~/.claude/references/<name>.md |
| Extract to skill | Reusable workflows, scripts, domain-specific knowledge | Create skill in skills repository |
| Remove | Duplicates existing skills, outdated, or unnecessary | Delete after confirmation |
Exceptions to Size Guidelines
Even if a section is >50 lines, KEEP in CLAUDE.md if any of these apply:
| Exception | Reason | Example |
|---|---|---|
| Safety-critical | Consequences of forgetting are severe | Deployment protocols, "never force push to main" |
| High-frequency | Referenced in most conversations | Core development patterns, common commands |
| Easy to violate | Claude tends to ignore when not visible | Code style rules, permission requirements |
| Security-sensitive | Must be always enforced | Production access restrictions, data handling rules |
Rule of thumb: If forgetting the rule could cause production incidents, data loss, or security breaches, keep it visible regardless of length.
Optimization Workflow
Step 0: Backup Original File
CRITICAL: Always create a backup before any changes.
# Create timestamped backup cp ~/.claude/CLAUDE.md ~/.claude/CLAUDE.md.bak.$(date +%Y%m%d_%H%M%S) # For project-level CLAUDE.md cp CLAUDE.md CLAUDE.md.bak.$(date +%Y%m%d_%H%M%S)
If issues found after optimization:
# Restore from backup cp ~/.claude/CLAUDE.md.bak.YYYYMMDD_HHMMSS ~/.claude/CLAUDE.md
Step 1: Audit Current State
Task Progress: - [ ] Create backup (Step 0) - [ ] Read ~/.claude/CLAUDE.md - [ ] Count total lines - [ ] List all ## sections with line counts - [ ] Identify sections >20 lines
Step 2: Classify Each Section
For each section >20 lines, determine:
- •Frequency: How often is this information needed?
- •Complexity: Does it contain code blocks, tables, or detailed steps?
- •Reusability: Could other users benefit from this as a skill?
Step 3: Propose Changes
Present optimization plan in this format:
## Optimization Proposal **Current**: X lines **After**: Y lines (Z% reduction) | Section | Lines | Action | Destination | |---------|-------|--------|-------------| | Section A | 50 | Move to references | ~/.claude/references/section_a.md | | Section B | 80 | Extract to skill | skill-name/ | | Section C | 5 | Keep | - |
Step 3.5: Pre-execution Verification Checklist
CRITICAL: Before executing any changes, verify information completeness.
For each section being moved or modified:
- •
Extract key items to verify:
- •Credentials/passwords/API keys
- •Critical rules ("never do X", "always do Y")
- •Specific values (ports, IPs, URLs, paths)
- •Code snippets that are frequently referenced
- •Cross-references to other sections
- •
Create verification checklist:
markdown## Verification Checklist for [Section Name] | Key Item | Original Location | New Location | Verified | |----------|-------------------|--------------|----------| | Server IP 47.96.x.x | Line 123 | infrastructure.md:15 | [ ] | | "Never push to main" rule | Line 45 | Kept in CLAUDE.md | [ ] | | Login credentials | Line 200 | api-login.md:30 | [ ] |
- •
Check cross-references:
- •If Section A references Section B, ensure links work after moving
- •Update any relative paths to absolute paths if needed
Step 4: Execute Changes
After user approval AND verification checklist complete:
- •Create reference files in
~/.claude/references/ - •Update CLAUDE.md with pointers to moved content
- •Create skills if applicable
- •Verify each checklist item exists in new location
- •Report final line count
Step 5: Post-optimization Testing
Verify that Claude can still discover moved content:
- •
Test discoverability - Ask questions that require moved content:
codeTest queries to run: - "How do I connect to the production database?" - "What are the deployment steps for [service]?" - "Show me the credentials for [system]"
- •
Verify pointer functionality - Each "See
reference.md" link should work:bash# Check all referenced files exist grep -oh '`~/.claude/references/[^`]*`' ~/.claude/CLAUDE.md | \ sed 's/`//g' | while read f; do eval test -f "$f" && echo "✓ $f" || echo "✗ MISSING: $f" done - •
Compare with backup - Ensure no unintended deletions:
bashdiff ~/.claude/CLAUDE.md.bak.* ~/.claude/CLAUDE.md | grep "^<" | head -20
- •
Document results:
markdown## Optimization Results | Metric | Before | After | |--------|--------|-------| | Total lines | X | Y | | Reduction | - | Z% | | References created | - | N files | | Skills extracted | - | M skills | **Verification**: All N checklist items verified ✓ **Testing**: All K test queries returned correct information ✓
Reference File Format
When moving content to ~/.claude/references/:
# [Section Title] [Full original content, possibly enhanced with additional examples]
CLAUDE.md Pointer Format
Replace moved sections with:
## [Section Title] [One-line summary]. See `~/.claude/references/[filename].md`
Best Practices
- •Keep core principles visible: Rules like "never do X" should stay in CLAUDE.md
- •Group related references: Combine small related sections into one reference file
- •Preserve quick commands: Keep frequently-used command snippets in CLAUDE.md
- •Test after optimization: Ensure Claude can still find moved information
Common Patterns
Pattern: Infrastructure/Credentials
Before: Full API examples, deployment scripts, server lists
After: One-line pointer to ~/.claude/references/infrastructure.md
Pattern: Code Generation Rules
Before: 50+ lines of coding standards with examples After: Keep bullet-point rules, move examples to references
Pattern: Reusable Workflows
Before: Complete scripts embedded in CLAUDE.md After: Extract to skill with scripts/ directory
Project-Level vs User-Level CLAUDE.md
This skill handles both types, but strategies differ:
User-Level (~/.claude/CLAUDE.md)
| Aspect | Approach |
|---|---|
| Reference location | ~/.claude/references/ |
| Scope | Personal preferences, global rules |
| Sharing | Not shared, personal only |
| Size target | 100-200 lines ideal |
Project-Level (/path/to/project/CLAUDE.md)
| Aspect | Approach |
|---|---|
| Reference location | docs/ or .claude/ in project root |
| Scope | Project-specific patterns, architecture |
| Sharing | Committed to git, shared with team |
| Size target | 300-600 lines acceptable (more project context needed) |
Key Differences
- •Reference paths: Use relative paths for project-level (
docs/best-practices/) - •Git considerations: Project references are versioned with code
- •Team alignment: Project CLAUDE.md should reflect team consensus
- •Update frequency: Project-level changes more often as code evolves
Project-Level Pointer Format
## [Section Title] [Summary]. See `docs/06-best-practices/[topic].md`
Note: For project CLAUDE.md, prefer docs/ over hidden directories for discoverability by human team members.