The Problem: 181 Skills Burning 1.18 Million Tokens Per Session
I'm a power user of Claude Code — Anthropic's CLI for AI-assisted development. Over weeks of installing skill packs from GitHub repos, I accumulated 181 skills from multiple sources:
- gstack agents (QA, design, deploy, monitoring)
- marketingskills by Corey Haines (36 CRO/SEO/copywriting skills)
- wondelai/skills (42 product/engineering frameworks)
- superpowers by obra (14 dev methodology skills)
- claude-mem (persistent memory plugin)
- Deep-Research-skills (structured research workflows)
- Custom skills I built myself
Sounds great, right? More skills = more capability.
Wrong. Every new conversation, Claude Code injects ALL skill descriptions into the system prompt. With 181 skills, that's approximately 1.18 million tokens of overhead per session — before I even type my first message.
Tokens were burning like a wildfire. Every task was expensive. Context windows were filling up fast.
The Discovery: Measuring the Actual Cost
I ran a simple audit to see exactly what was happening:
# Count total SKILL.md bytes across all skills
total=0
for f in ~/.claude/skills/*/SKILL.md; do
size=$(wc -c < "$f" 2>/dev/null)
total=$((total + size))
done
echo "Total bytes: $total"
echo "Approx tokens: $((total / 4))"
Result: 4.7MB of SKILL.md files = ~1.18 million tokens.
The top offenders were massive:
| Skill | Size | Tokens |
|---|---|---|
| ship (gstack) | 130KB | ~32K |
| plan-ceo-review | 112KB | ~28K |
| office-hours | 101KB | ~25K |
| seedance-15-real-estate | 95KB | ~24K |
| plan-devex-review | 93KB | ~23K |
15 Seedance video skills alone consumed ~265K tokens. I used them maybe once a month.
The Solution: The Skill Vault Pattern
The idea is simple:
- Move rarely-used skills to a vault directory (out of auto-load)
- Keep a lightweight index skill that tells Claude what's available
- Claude restores skills on-demand when your request matches one
- Optionally move it back after the task
Step 1: Create the Vault
mkdir -p ~/.claude/skills-vault
Step 2: Audit Your Skills by Usage Frequency
Sort all skills by file size to find the biggest offenders:
for f in ~/.claude/skills/*/SKILL.md; do
dir=$(dirname "$f")
name=$(basename "$dir")
size=$(wc -c < "$f")
echo "$size $name"
done | sort -rn | head -30
Then categorize them:
- Tier 1 (Daily use): Keep active — your core dev workflow skills
- Tier 2 (Project-specific): Keep active — skills tied to current projects
- Tier 3 (Occasional): Vault — heavy skills used weekly/monthly
- Tier 4 (Rare): Vault — frameworks and reference skills
Step 3: Move Skills to the Vault
# Move video generation skills (rarely used)
mv ~/.claude/skills/seedance-* ~/.claude/skills-vault/
# Move heavy plan review skills
mv ~/.claude/skills/{plan-ceo-review,plan-eng-review,plan-design-review} \
~/.claude/skills-vault/
# Move framework/reference skills
mv ~/.claude/skills/{clean-architecture,domain-driven-design,system-design} \
~/.claude/skills-vault/
# Move marketing skills you don't use daily
mv ~/.claude/skills/{copywriting,seo-audit,paid-ads,cold-email} \
~/.claude/skills-vault/
Step 4: Create the Index Skill (The Key Ingredient)
This is what makes the pattern work. Create a lightweight skill that acts as a lookup table for Claude:
mkdir -p ~/.claude/skills/skill-vault
Create ~/.claude/skills/skill-vault/SKILL.md:
---
name: skill-vault
description: Index of vaulted skills at ~/.claude/skills-vault/.
When the user's request matches a vaulted skill, restore it with
mv ~/.claude/skills-vault/<name> ~/.claude/skills/ then use it.
Use when user asks about design, SEO, CRO, copywriting,
architecture patterns, security audit, deployment, video
generation, or any topic not covered by active skills.
---
## Skill Vault
Skills stored in `~/.claude/skills-vault/` to save tokens.
When a user request matches one, restore it:
mv ~/.claude/skills-vault/<skill-name> ~/.claude/skills/
Then invoke it normally. After the task, optionally move back:
mv ~/.claude/skills/<skill-name> ~/.claude/skills-vault/
## Vaulted Skills Index
### Design & UI
- `design-review` — Visual QA, spacing/hierarchy fixes
- `design-html` — Production HTML/CSS from mockups
- `design-shotgun` — Generate multiple design variants
- `top-design` — Awwwards-quality web experiences
### Engineering Frameworks
- `clean-architecture` — Dependency rule, ports/adapters
- `domain-driven-design` — Bounded contexts, aggregates
- `system-design` — Distributed systems, scaling
- `refactoring-patterns` — Extract method, code smells
### DevOps & Monitoring
- `land-and-deploy` — Merge, CI, verify production
- `canary` — Post-deploy monitoring
- `cso` — Security audit (OWASP, STRIDE)
### Marketing
- `copywriting` — Marketing copy for any page
- `seo-audit` — Technical SEO audit
- `paid-ads` — Google/Meta/LinkedIn campaigns
(... add all your vaulted skills here ...)
This index costs only ~1.5K tokens but gives Claude awareness of all 139 vaulted skills.
The Results
| Metric | Before | After | Reduction |
|---|---|---|---|
| Active skills | 181 | 43 | 76% fewer |
| Tokens per session | ~1.18M | ~51K | 96% |
| Vaulted (on-demand) | 0 | 139 | — |
| Capability lost | — | None | 0% |
96% token reduction with zero capability loss.
How It Works at Runtime
You: "audit my design for visual issues"
Claude thinks:
1. No active skill matches "design audit"
2. skill-vault index matches: design-review
3. Run: mv ~/.claude/skills-vault/design-review ~/.claude/skills/
4. Now use design-review skill normally
5. Task complete
Claude reads the vault index, finds the right skill, restores it with a single mv command, and proceeds normally. The user experience is seamless.
My Final Active Skill Set (43 Skills)
Here's what I kept always-active:
Core Dev Workflow (Superpowers):
ship, qa, browse, review, investigate, writing-plans, executing-plans, brainstorming, subagent-driven-development, systematic-debugging, test-driven-development, verification-before-completion
Project-Specific:
ecommerce-architect, staff-engineer-interview, claude-api-patterns, claude-code-mastery, mcp-server-development
Marketing (Khetisahayak):
cmo, mkt-content, mkt-seo, mkt-social, mkt-growth, mkt-email, mkt-pr, mkt-review
Research:
research, research-deep, research-report
The Vault Index:
skill-vault (the 1.5K token index that knows about 139 other skills)
Tips for Your Own Vault
Audit first. Run the size audit script before moving anything. You might be surprised which skills are the heaviest.
Keep your daily drivers active. Don't vault skills you use every session. The restore step adds a small delay.
Group by category. Makes it easy to restore a whole category:
mv ~/.claude/skills-vault/seedance-* ~/.claude/skills/
Update the index when you add new skills to the vault.
Restore everything if you need full power for a complex session:
mv ~/.claude/skills-vault/* ~/.claude/skills/
Where to Find Great Skills
Here are the skill repos I installed from:
- marketingskills — 36 marketing skills by Corey Haines
- wondelai/skills — 42 product/engineering framework skills
- obra/superpowers — Dev methodology (TDD, planning, subagents)
- Deep-Research-skills — Structured research workflows
- claude-mem — Persistent memory across sessions
Installing is simple — symlink into ~/.claude/skills/:
git clone https://github.com/coreyhaines31/marketingskills.git
for skill_dir in marketingskills/skills/*/; do
ln -s "$(pwd)/$skill_dir" ~/.claude/skills/$(basename "$skill_dir")
done
Then vault what you don't need daily.
Conclusion
The Skill Vault pattern is dead simple:
-
~/.claude/skills/= active skills (loaded every turn) -
~/.claude/skills-vault/= dormant skills (restored on demand) -
skill-vault/SKILL.md= lightweight index that bridges the two
If you're running more than 50 skills in Claude Code, you're probably burning hundreds of thousands of unnecessary tokens per session. The vault pattern gives you the full arsenal without the cost.
96% fewer tokens. Zero lost capability. One mv command away.
I'm Prakash Ponali, a Staff Engineer with 16+ years in enterprise eCommerce. Currently building Khetisahayak — a farming helper app for Telugu-speaking farmers in Andhra Pradesh. Find me on LinkedIn.
Top comments (0)