| name | baton |
| description | Context management system for solving compaction problems. Provides TLDR summaries, conversation tracking, and efficient post-compaction recovery. Triggers on "/baton". |
Baton - Context Management Skill
Manages context across sessions and compactions using TLDR summaries and structured documentation.
Implementation
When /baton is invoked, parse the subcommand and execute the corresponding action:
Core Commands
- No arguments or
load: Display current TLDR summary init: Initialize new conversationrename <title>: Set conversation title (max 60 chars)rename --suggest: Get AI-generated title suggestionssave [note]: Save current state with optional noteupdate [section]: Update SUMMARY.md sections automaticallyupdate --auto: Auto-generate updates from recent activityhistory: Show all conversations with titlesstatus: Show token usage and save recommendationarchive: Archive completed items to prevent file bloat
Navigation & Switching
switch <conv-id-or-title>: Switch to different conversationswitch --recent: Show recent conversations to choose from
Search & Discovery
search <term>: Search across all conversations, bugs, decisionssearch --bugs <term>: Search only bugssearch --decisions <term>: Search only decisionssearch --conversations <term>: Search only conversationscontext <topic>: Load relevant past context (smart search)
Reporting & Analytics
report [timeframe]: Generate work summary reportreport --today: Today's work summaryreport --week: Past week summaryreport --conversation <id>: Specific conversation reportmetrics: Show baton system effectiveness metricsstats: Alias for metrics
Validation & Health
validate: Check file structure integrityhealth: Alias for validate
Configuration
auto-save on|off|status: Configure auto-save triggerstemplate create <name>: Create custom SUMMARY.md templatetemplate use <name>: Switch to custom templatetemplate list: Show available templates
Git Integration
git-link: Associate conversation with current git branchgit-summary: Generate commit message from SUMMARY.md
Implementation Details
Each command should be implemented by reading/writing the appropriate files in .claude/:
For /baton init
CONV_ID="conv-$(date +%Y%m%d-%H%M%S)"
mkdir -p .claude/conversations/$CONV_ID
echo $CONV_ID > .claude/CURRENT_CONVERSATION_ID
# Create SUMMARY.md from template
# Initialize shared files if they don't exist
touch .claude/{BUGS.md,DECISIONS.md,CONVERSATION_HISTORY.md,ENHANCEMENTS.md,USER_FEEDBACK.md}
mkdir -p .claude/{archive,templates}
# Create default settings if missing
cat > .claude/settings.json <<EOF
{
"autoSave": {
"enabled": true,
"thresholds": [70, 85, 95],
"notifyOnSave": true
},
"archiveThresholds": {
"conversations": 10,
"bugs": 20,
"decisions": 15
},
"defaultTemplate": "standard"
}
EOF
For /baton load
- Read
.claude/CURRENT_CONVERSATION_ID - Display
.claude/conversations/{conv-id}/SUMMARY.md - Display filtered entries from
.claude/BUGS.md(matching conversation ID) - Display filtered entries from
.claude/DECISIONS.md(matching conversation ID) - Display current TODO list if available
For /baton rename <title>
- Read
.claude/CURRENT_CONVERSATION_ID - Update
.claude/conversations/{conv-id}/SUMMARY.mdTitle field - Update
.claude/CONVERSATION_HISTORY.mdentry for this conversation - Validate title length (max 60 chars for clean display)
- Used in standardized response format header
- Example:
/baton rename Self-Improving AI Chatbot
For /baton rename --suggest
- Analyze recent work: TODO items, file changes, recent conversation
- Generate 3-5 concise title suggestions (max 60 chars each)
- Display suggestions with numbers for easy selection
- Allow user to choose or provide custom title
- Example output:
Suggested titles based on recent work: 1. API Authentication System 2. User Login Bug Fixes 3. Database Schema Migration 4. Payment Integration Setup 5. Custom: [Enter your own] Choose (1-5) or press Enter for custom:
For /baton save [note]
- Read current state (TODO list, recent changes)
- Update
.claude/conversations/{conv-id}/SUMMARY.md - Add timestamp and optional note
- Update Task Checklist, Key Files, State Snapshot sections
- Show confirmation: "Saved at 45% token usage"
For /baton update [section]
Auto-update specific sections:
--auto: Analyze recent activity and update all sectionstasks: Update Task Checklist from TODO listfiles: Update Key Files from recent git changesstate: Update State Snapshot from current file/linecontext: Update Context in 3 Lines from recent work
Implementation:
- Read recent TODO completions, file modifications
- Analyze conversation for decisions, bugs discovered
- Update relevant SUMMARY.md sections
- Show what was updated: "Updated: Task Checklist (3 completed), Key Files (2 modified)"
For /baton history
- Display
.claude/CONVERSATION_HISTORY.md - Format with conversation IDs, titles, status, dates
- Show active vs completed conversations
For /baton status
- Check current token usage (estimate from conversation length)
- Calculate percentage to 70% threshold
- Show time since last SUMMARY.md update
- Recommend save if > 70%
- Check file sizes and recommend archival if thresholds exceeded:
- CONVERSATION_HISTORY.md > 10 conversations
- BUGS.md > 20 bugs
- DECISIONS.md > 15 decisions
- Display auto-save configuration status
For /baton archive
- Count items in each file by status
- Move completed/fixed/implemented items to
.claude/archive/ - Archive structure:
archive/conversations/YYYY-MM.md(completed conversations by month)archive/bugs/fixed-YYYY-MM.md(fixed bugs by month)archive/decisions/implemented-YYYY-MM.md(implemented decisions by month)
- Update main files to remove archived items
- Show summary: "Archived 5 conversations, 12 bugs, 8 decisions"
- Keep last 10 active conversations, all active/in-progress bugs, all proposed/accepted decisions
For /baton switch <conv-id-or-title>
Switch between conversations:
- Accept either conversation ID or title (fuzzy match)
- Update
.claude/CURRENT_CONVERSATION_ID - Load new conversation's SUMMARY.md
- Show transition message: "Switched from 'API Redesign' → 'Bug Fixes'"
- Display new conversation's current state
With --recent flag:
- List 5-10 most recent conversations
- Show: ID, Title, Last Modified, Status
- Allow numbered selection
- Example:
Recent conversations: 1. [Active] API Authentication System (modified 2h ago) 2. [Active] Database Migration (modified 5h ago) 3. [Paused] Payment Integration (modified 2d ago) Choose conversation (1-3):
For /baton search <term>
Search across all baton files:
- Search SUMMARY.md files in all conversations
- Search BUGS.md, DECISIONS.md, ENHANCEMENTS.md, USER_FEEDBACK.md
- Return matches with context (file, conversation ID, line)
- Highlight matching text
- Sort by relevance (exact match > partial match)
Example output:
Found 'authentication' in 5 locations:
CONVERSATIONS:
conv-20251224-015859: API Authentication System
- Line 12: "Implementing OAuth2 authentication"
conv-20251223-140521: User Login Refactor
- Line 8: "Fixed authentication token expiry bug"
DECISIONS:
Decision #3 (conv-20251224-015859)
- "Chose OAuth2 over email/password authentication"
BUGS:
Bug #7 (conv-20251223-140521)
- "Authentication fails after 24 hours"
With specific filters:
--bugs: Search only BUGS.md--decisions: Search only DECISIONS.md--conversations: Search only SUMMARY.md files
For /baton context <topic>
Smart context loading:
- Semantic search across past conversations for topic
- Load relevant decisions, bugs, failed attempts
- Show context from most relevant conversations
- Example:
/baton context authentication
Output:
Loading context for 'authentication'...
Found 3 relevant conversations:
1. conv-20251224-015859: API Authentication System (Active)
Decisions: OAuth2 implementation, JWT tokens
Bugs: None currently
Status: 85% complete
2. conv-20251223-140521: User Login Refactor (Completed)
Decisions: Session timeout 24h
Bugs: Fixed token expiry issue
Failed: Email/password approach (too complex)
3. conv-20251220-093012: Security Audit (Completed)
Decisions: Require 2FA for admin accounts
Key learnings:
- Avoid email/password (maintenance overhead)
- Use OAuth2 with established providers
- JWT tokens preferred over sessions
For /baton report [timeframe]
Generate work summary reports:
- Aggregate work across conversations
- Count tasks completed, bugs fixed, decisions made
- List key files modified
- Perfect for standups, status updates
Timeframes:
--today: Today's work--week: Past 7 days--month: Past 30 days--conversation <id>: Specific conversation- No flag: Ask for timeframe
Example output:
## Work Summary: Past 7 Days (Dec 18-25, 2025)
**Active Conversations:** 3
**Completed Conversations:** 2
### Tasks Completed: 24
- API authentication system (12 tasks)
- Database migration (8 tasks)
- Bug fixes (4 tasks)
### Bugs Fixed: 5
- Authentication token expiry
- Database connection timeout
- API rate limiting error
- UI rendering glitch
- Memory leak in cron job
### Decisions Made: 8
- OAuth2 for authentication
- PostgreSQL for main database
- Redis for caching
- Next.js for frontend
- ... (4 more)
### Files Modified: 47
Top 10:
- src/auth/oauth.ts (23 changes)
- src/db/schema.sql (18 changes)
- src/api/endpoints.ts (15 changes)
... (7 more)
### Key Achievements:
- Completed API authentication system
- Migrated database schema to v2
- Reduced bug count from 12 → 7
For /baton metrics or /baton stats
Show system effectiveness:
- Total conversations tracked
- Token savings vs full conversation logs
- Compaction survival rate
- Average context restoration time
- File sizes and growth trends
Example output:
📊 Baton System Metrics
CONVERSATIONS:
Total: 12 (3 active, 9 completed)
Avg Duration: 3.2 hours
Avg Compactions: 4.2 per conversation
Longest: conv-20251215-081234 (12 compactions)
TOKEN EFFICIENCY:
Full Conversation Logs: ~612,000 tokens
TLDR Summaries: ~6,200 tokens
Compression Ratio: 98.9% (99x reduction)
Estimated Cost Savings: $18.36 (at $0.03/1K tokens)
CONTEXT RESTORATION:
Success Rate: 100% (12/12 compactions survived)
Avg Restoration Time: 1.2 seconds
Avg Tokens Read: 1,150 per restoration
FILE HEALTH:
CONVERSATION_HISTORY.md: 2.1 KB (12 entries)
BUGS.md: 1.8 KB (7 active, 15 archived)
DECISIONS.md: 2.4 KB (11 active, 8 implemented)
Archive Size: 18.2 KB (47 archived items)
RECOMMENDATIONS:
✅ System healthy
ℹ️ Consider archiving (BUGS.md has 22 total entries)
For /baton validate or /baton health
Check file integrity:
- Verify
.claude/directory structure exists - Check all required files present
- Validate SUMMARY.md has required sections
- Detect missing conversation IDs, broken tags
- Check for orphaned files
- Validate settings.json syntax
Example output:
🔍 Baton Health Check
DIRECTORY STRUCTURE:
✅ .claude/ exists
✅ .claude/conversations/ exists
✅ .claude/archive/ exists
✅ .claude/templates/ exists
REQUIRED FILES:
✅ CONVERSATION_HISTORY.md (2.1 KB)
✅ BUGS.md (1.8 KB)
✅ DECISIONS.md (2.4 KB)
✅ CURRENT_CONVERSATION_ID (present)
✅ settings.json (valid JSON)
⚠️ ENHANCEMENTS.md (empty)
⚠️ USER_FEEDBACK.md (empty)
CONVERSATIONS:
✅ conv-20251224-015859: All sections present
✅ conv-20251223-140521: All sections present
❌ conv-20251220-093012: Missing "Failed Attempts" section
TAGS:
✅ All BUGS.md entries have Conv: tags
⚠️ 2 DECISIONS.md entries missing Conv: tags
ISSUES FOUND: 3
[1] conv-20251220-093012/SUMMARY.md missing "Failed Attempts"
[2] DECISIONS.md line 45 missing Conv: tag
[3] DECISIONS.md line 67 missing Conv: tag
FIX COMMAND:
/baton fix --auto # Auto-fix common issues
For /baton auto-save on|off|status
Configure automatic saves:
on: Enable auto-save at configured thresholdsoff: Disable auto-savestatus: Show current configuration
Auto-save behavior:
- Monitor token usage continuously
- Save at thresholds: 70%, 85%, 95% (configurable)
- Show notification: "🔁 Auto-saved at 72% token usage"
- Never interrupt user work
- Settings stored in
.claude/settings.json
Example output:
Auto-Save Configuration:
Status: ✅ Enabled
Thresholds: 70%, 85%, 95%
Notify on save: Yes
Last auto-save: 15 minutes ago (at 71%)
Current token usage: 68% (save at 70%)
For /baton template create <name>
Create custom templates:
- Copy current SUMMARY.md structure
- Save to
.claude/templates/<name>.md - Allow editing/customization
- Templates stored for reuse
Example:
/baton template create research
Created template: research
Location: .claude/templates/research.md
Customize with additional sections:
- Research Questions
- Literature Review
- Methodology
- Data Sources
For /baton template use <name>
Switch templates:
- Load template from
.claude/templates/<name>.md - Apply to new conversations
- Existing conversations keep their template
For /baton template list
Show available templates:
Available Templates:
✓ standard (default) - Standard development template
• research - Academic research template
• devops - Infrastructure/deployment template
• bugfix - Bug investigation template
Current conversation template: standard
For /baton git-link
Git integration:
- Associate current conversation with git branch
- Store mapping in
.claude/git_links.json - Add conversation ID to commit template
- Tag commits with conversation context
Example:
/baton git-link
✅ Linked conversation to git:
Conv: conv-20251224-015859
Branch: feature/oauth-authentication
Commits on this branch will be tagged with conversation ID.
Use /baton git-summary to generate commit message.
For /baton git-summary
Generate commit message from SUMMARY:
- Extract Task Checklist completed items
- Summarize key changes
- Include conversation ID for traceability
Example output:
feat: implement OAuth2 authentication system
- Add OAuth2 provider integration (Google, GitHub)
- Create JWT token generation and validation
- Implement user session management
- Add authentication middleware
- Write integration tests for auth flow
Related to conversation: conv-20251224-015859
Problem Solved
During long autonomous sessions, Claude Code can go through 5-10 auto-compactions, losing critical technical details:
- Bug reproduction steps
- Failed approaches (leads to retry loops)
- Architecture decisions and rationale
- Exact file locations and current state
- What was tried and why it didn't work
Solution
Two-tier context system with intelligent automation:
- Tier 1 (TLDR): ~1,000 tokens - Always read after compaction
- Tier 2 (Full details): ~50,000 tokens - Read on-demand only
- Compression: 25-100x token reduction
- Auto-save: Never lose work at compaction boundaries
- Search: Find past context instantly
- Smart updates: Reduce manual overhead
Commands Reference
Core Commands
/baton init
Initialize context management for new conversation
/baton load or /baton
Display current conversation TLDR
/baton save [note]
Manually save current state
/baton update [section] ⭐ NEW
Auto-update SUMMARY.md from recent activity
/baton rename <title>
Set conversation title (max 60 chars)
/baton rename --suggest ⭐ NEW
Get AI-generated title suggestions
/baton history
Show all conversations and status
/baton status
Check token usage, get save recommendations
/baton archive
Archive completed items to prevent bloat
Navigation
/baton switch <conv-id-or-title> ⭐ NEW
Switch between conversations
/baton switch --recent ⭐ NEW
Show recent conversations menu
Search & Discovery
/baton search <term> ⭐ NEW
Search across conversations, bugs, decisions
/baton search --bugs <term> ⭐ NEW
Search only bugs
/baton search --decisions <term> ⭐ NEW
Search only decisions
/baton context <topic> ⭐ NEW
Load relevant past context (smart search)
Reporting
/baton report [timeframe] ⭐ NEW
Generate work summary report
/baton metrics ⭐ NEW
Show system effectiveness metrics
/baton stats ⭐ NEW
Alias for metrics
Validation
/baton validate ⭐ NEW
Check file structure integrity
/baton health ⭐ NEW
Alias for validate
Configuration
/baton auto-save on|off|status ⭐ NEW
Configure automatic saves
/baton template create <name> ⭐ NEW
Create custom SUMMARY.md template
/baton template use <name> ⭐ NEW
Switch to custom template
/baton template list ⭐ NEW
Show available templates
Git Integration
/baton git-link ⭐ NEW
Associate conversation with git branch
/baton git-summary ⭐ NEW
Generate commit message from SUMMARY
ENHANCEMENTS.md - Future Ideas Tracking
Track potential improvements and feature ideas:
## Enhancement #1: Add Dark Mode
**Conv:** conv-20251224-015859
**Proposed:** 2025-12-24
**Priority:** High | Medium | Low
**Status:** Proposed | Accepted | In Progress | Implemented | Rejected
**Rationale:** Users requested dark mode for nighttime viewing
**Impact:** Affects all UI components, requires theme system
**Effort:** ~2 days
**Dependencies:** None
**Proposed By:** User | Claude
**Notes:** Consider CSS variables for easy theming
When to add:
- User mentions "we should..." or "it would be nice if..."
- Claude identifies optimization opportunities
- Discussing future improvements
- Brainstorming features
Status progression:
- Proposed → Accepted → In Progress → Implemented
- Or: Proposed → Rejected (with reason)
USER_FEEDBACK.md - Questions Waiting for User
Critical for long autonomous sessions when user is away:
## Feedback Request #1: Authentication Method
**Conv:** conv-20251224-015859
**Asked:** 2025-12-24 03:15
**Risk Level:** High | Medium | Low
**Status:** Pending | Auto-Decided | Answered | No Longer Needed
**Context:** Building user authentication system
**Question:** Should we use OAuth2 or email/password auth?
**Options:**
1. OAuth2 (Google + GitHub) - Easier for users, harder to implement
2. Email/Password - Traditional, requires password reset flow
3. Both - Best UX, most complex
**Blockers:** Can't proceed with auth implementation until decided
**Workaround:** Working on other features in the meantime
**Recommendation:** OAuth2 (most common for modern apps, aligns with best practices)
**Auto-Decision:** [If Low risk, Claude fills this in with choice made]
**User Validation:** [User confirms or requests redo]
Risk Assessment Guide:
High Risk - Block and wait for user (COSTS MONEY or irreversible):
- Costs money: Cloud provider choice (AWS vs GCP), paid services, API pricing
- Expensive to redo: 3+ days of rework if wrong choice
- Architecture decisions affecting entire system
- Breaking changes or data migration
- Security-critical choices (authentication, authorization, encryption)
- Irreversible decisions (data deletion, production deployments)
- User explicitly requested input on this type of decision
- RULE: If choosing wrong costs money or >2 days rework → HIGH RISK
Medium Risk - Auto-decide, document, validate (easy to redo):
- Framework/library choices (can swap in <1 day)
- UI/UX decisions (can redesign easily)
- Non-critical performance tradeoffs
- Feature prioritization
- RULE: If wrong choice costs <1 day to fix → MEDIUM RISK
Low Risk - Auto-decide, implement, validate later (trivial to redo):
- Variable naming conventions (<1 hour to refactor)
- File organization (can reorganize easily)
- Minor styling choices (quick CSS changes)
- Error message wording (find/replace)
- Default values (config change)
- Logging verbosity (config change)
- RULE: If wrong choice costs <1 hour to fix → LOW RISK
When to add:
- High Risk: Add to USER_FEEDBACK.md, block work on that feature
- Medium/Low Risk: Make decision, document in DECISIONS.md with status="Auto-Decided"
Auto-Decision Workflow (Low/Medium Risk):
- Claude makes best-guess decision
- Implements the feature
- Documents in DECISIONS.md:
**Status:** Auto-Decided (Pending User Validation) **Chosen:** OAuth2 **Rationale:** Modern apps prefer OAuth, easier UX **Alternatives:** Email/password, Both **Risk:** Low - Can swap auth provider without data loss **Redo Effort:** ~2 hours if user prefers different approach - At next session start, ask user: "I chose OAuth2 for auth (modern standard). Alternatives were email/password or both. Okay with this?"
- User validates (70% chance) or requests redo (30% chance)
Critical behavior:
- ALWAYS check USER_FEEDBACK.md at start of session
- Surface pending HIGH-RISK questions immediately
- For Auto-Decided items: Ask user for validation
- Be ready to redo work if user disagrees (~30% of time)
- Mark as "Validated" once user confirms
Auto-Behavior (No Command Needed)
Claude automatically follows these behaviors if .claude/ directory exists:
On Session Start:
- Check for
.claude/CURRENT_CONVERSATION_ID - Read
CONVERSATION_HISTORY.md(all conversations overview) - Read
conversations/{conv-id}/SUMMARY.md(this conversation's TLDR) - Read
BUGS.mdandDECISIONS.md(filtered to this conversation) - Read
USER_FEEDBACK.md- Surface any pending questions immediately - Read
settings.json- Load auto-save configuration - Total: ~1,000-1,500 tokens for full context restoration
During Work:
- Use standardized response format (see CLAUDE.md) with Title, Request, Tasks, Summary
- Monitor token usage for auto-save triggers
- Update SUMMARY.md after significant actions
- Update conversation Title via
/baton renamewhen conversation focus shifts - Append to BUGS.md when discovering bugs
- Append to DECISIONS.md when making architecture choices
- Append to ENHANCEMENTS.md when ideas are discussed
- Append to USER_FEEDBACK.md when user input needed but user away
- Update CONVERSATION_HISTORY.md on major milestones
- Auto-save at 70%, 85%, 95% token thresholds if enabled
After Compaction:
- IMMEDIATELY run
/baton loadequivalent automatically - Restore from TLDR (~1K tokens instead of 50K+ full log)
- Resume work with full context
Auto-Save Triggers:
- At 70% token usage: First checkpoint
- At 85% token usage: Second checkpoint
- At 95% token usage: Final checkpoint before compaction
- Show notification: "🔁 Auto-saved at 72% token usage"
File Structure
.claude/
├── CONVERSATION_HISTORY.md # All conversations (~200 tokens)
├── BUGS.md # All bugs, tagged with conv-id
├── DECISIONS.md # All decisions, tagged with conv-id
├── ENHANCEMENTS.md # Future enhancement ideas
├── USER_FEEDBACK.md # Questions waiting for user input
├── CURRENT_CONVERSATION_ID # Current conversation ID
├── settings.json # Baton configuration
├── git_links.json # Git branch associations
├── conversations/
│ └── {conv-id}/
│ └── SUMMARY.md # This conversation TLDR (~300 tokens)
├── templates/
│ ├── standard.md # Default template
│ ├── research.md # Research project template
│ └── devops.md # DevOps/infrastructure template
└── archive/
├── conversations/
│ └── YYYY-MM.md # Archived conversations by month
├── bugs/
│ └── fixed-YYYY-MM.md # Fixed bugs by month
└── decisions/
└── implemented-YYYY-MM.md # Implemented decisions by month
settings.json Configuration
{
"autoSave": {
"enabled": true,
"thresholds": [70, 85, 95],
"notifyOnSave": true
},
"archiveThresholds": {
"conversations": 10,
"bugs": 20,
"decisions": 15
},
"defaultTemplate": "standard",
"gitIntegration": {
"enabled": true,
"tagCommits": true,
"addConvIdToMessage": true
},
"search": {
"caseSensitive": false,
"maxResults": 50
}
}
SUMMARY.md Format
# Conversation {conv-id} - TLDR
**Title:** [Brief conversation goal, set via /baton rename, max 60 chars]
**Status:** Active | Completed | Paused
**Started:** YYYY-MM-DD HH:MM
**Duration:** Xh
**Compactions:** N
## Context in 3 Lines
[High-level overview of what's happening]
## Task Checklist
- [x] Completed task
- [ ] Pending task
## Decisions Made
- Decision #N: What was decided and why
## Key Files Created/Modified
- path/to/file.ts (what changed)
## Failed Attempts (Don't Retry)
- Approach X: Why it failed
## Next Actions
1. First priority
2. Second priority
## State Snapshot
**Current file:** exact/path.ts
**Current line:** 42
**Current task:** Specific thing being worked on
**Blockers:** Any blockers
**Ready to:** Next immediate action
Conversation ID Tagging
When adding to shared files (BUGS.md, DECISIONS.md):
**Conv:** conv-20251223-225929
This enables:
- Multiple conversations working simultaneously
- Each conversation identifying their work
- Shared awareness across conversations
- No file conflicts
Integration with CLAUDE.md
Add this to your project's CLAUDE.md:
## Context Management Protocol
This project uses `.claude/` context management system.
**After compaction:** Automatically reads TLDR summaries
**Manual control:** Use `/baton` skill commands
**Token efficiency:** 25-100x compression (50K→1K tokens)
**Auto-save:** Enabled at 70%, 85%, 95% thresholds
See full protocol in CLAUDE.md for details.
Portability
To use across multiple projects:
Option A - Local per project:
cp -r .claude-code/skills/baton /path/to/other/project/.claude-code/skills/Option B - Global symlink:
# Move to central location mv .claude-code/skills/baton /mnt/foundry_project/Claude_skills/ # Symlink from ~/.claude/skills/ ln -s /mnt/foundry_project/Claude_skills/baton ~/.claude/skills/batonOption C - Copy to central location:
cp -r .claude-code/skills/baton /mnt/foundry_project/Claude_skills/ ln -s /mnt/foundry_project/Claude_skills/baton ~/.claude/skills/baton
Token Efficiency
- Full conversation log: 50,000+ tokens
- TLDR summary: 500-2,000 tokens
- Compression ratio: 25-100x
- Post-compaction read: ~1,000-1,500 tokens total
- Auto-save overhead: ~50 tokens per save
- Enables: Long autonomous sessions without context loss
Benefits
✅ For humans:
- Quick scan of what happened
- Thread view of conversations
- Easy navigation
- Instant search across all work
- Weekly/monthly reports for standups
✅ For Claude:
- Efficient context restoration
- No retry of failed approaches
- Preserves technical details
- Enables multi-conversation work
- Auto-saves prevent context loss
✅ For projects:
- Portable across projects
- Standardized context management
- Reduced token costs (98%+ reduction)
- Better long-running session support
- Git integration for traceability
Version
Baton v2.0 - Enhanced with 11 new features (2025-12-25)
New in v2.0:
- Auto-save triggers (prevent context loss)
- Conversation switching (multi-conversation workflow)
- Smart SUMMARY.md updates (reduce manual overhead)
- Search across conversations (find past context)
- Title auto-suggestions (AI-powered naming)
- Validation & health check (data integrity)
- Export & reporting (status summaries)
- Conversation metrics (prove system value)
- Smart context loading (relevance-based)
- Git integration (branch association, commit messages)
- Template customization (project-specific needs)