// Context-efficient Git and Graphite workflows for Claude Code. Automatically delegates verbose git/Graphite CLI operations to isolated subagents, reducing context pollution by 225x. Use when working with git operations, Graphite stacked diffs, or any git workflow that produces verbose output. Prevents context window exhaustion by automatically applying delegation patterns via SessionStart hooks.
| name | graphite-skill |
| description | Context-efficient Git and Graphite workflows for Claude Code. Automatically delegates verbose git/Graphite CLI operations to isolated subagents, reducing context pollution by 225x. Use when working with git operations, Graphite stacked diffs, or any git workflow that produces verbose output. Prevents context window exhaustion by automatically applying delegation patterns via SessionStart hooks. |
Stop drowning in verbose git/Graphite output. This skill automatically enables context-efficient workflows for all git and Graphite CLI operations in Claude Code through automatic delegation patterns.
You: "Check my Graphite stack"
Claude: [Returns 15KB of JSON โ 4,000+ tokens consumed]
Result: Context polluted, reasoning degraded, 2-3 operations max
Traditional git/Graphite operations flood context:
gt stack โ 15KB JSON (4,108 tokens)git log --graph โ 50KB output (12,000+ tokens)gt pr info โ 20KB JSON (5,000+ tokens)You: "Check my Graphite stack"
Claude: [Automatically delegates to Task subagent]
Subagent: [Processes 15KB in isolated context]
Claude: "โ feature/auth | 3 PRs | Review #456"
Result: Clean context, 18 tokens used, 100+ operations possible
The skill automatically detects if setup is needed!
When you have the carbon-flow plugin installed globally but haven't set up Graphite Skill in your project, the SessionStart hook will automatically prompt you with:
โ ๏ธ Graphite Skill Setup Required
Would you like to set up Graphite Skill in this project now?
If yes, run: bash ~/.claude/plugins/mad-skills/graphite-skill/install.sh --project
Simply run the provided command and the skill activates immediately. No need to remember or look up installation steps.
# Navigate to your project
cd /path/to/your/project
# Run the installer
bash ~/.claude/plugins/mad-skills/graphite-skill/install.sh --project
# The installer will:
# - Copy hooks to .claude/plugins/graphite-skill/
# - Configure SessionStart hook
# - Set up agent templates
# - Make scripts executable
# In your project
mkdir -p .claude/plugins/graphite-skill/hooks
# Copy files from the carbon skill directory
cp ~/.claude/plugins/mad-skills/graphite-skill/hooks/session-start.sh .claude/plugins/graphite-skill/hooks/
cp ~/.claude/plugins/mad-skills/graphite-skill/settings.json .claude/plugins/graphite-skill/
# Make hook executable
chmod +x .claude/plugins/graphite-skill/hooks/session-start.sh
# Optional: Copy agent template
mkdir -p .claude/agents
cp ~/.claude/plugins/mad-skills/graphite-skill/agents/graphite-ops-template.md .claude/agents/
# Test hook execution
bash .claude/plugins/graphite-skill/hooks/session-start.sh
# Should output JSON with hookSpecificOutput
# Test in Claude Code
claude --debug hooks
# Look for:
# [SessionStart] Executing hook: session-start.sh
# [SessionStart] Hook completed successfully
The skill uses a SessionStart hook to inject context-optimization patterns automatically:
1. Session starts โ SessionStart hook fires
2. Hook detects: git repo, project setup status, Graphite CLI, custom agent
3a. If not set up โ Prompts user to run install.sh (auto-detection)
3b. If set up โ Hook injects ~800 tokens of delegation patterns into context
4. Claude knows: Use Task delegation for verbose operations automatically
5. User benefits: Automatic context efficiency, zero manual effort
Auto-Detection Logic:
The hook intelligently detects whether per-project setup has been completed by checking for the existence of .claude/plugins/graphite-skill/hooks/session-start.sh in your project directory.
This means you never have to remember installation steps - the skill tells you exactly what to do.
When you request git/Graphite operations, Claude automatically:
--json flags for structured output2>/dev/nullNo manual invocation needed - patterns apply automatically!
Checking status:
You: "Check git status"
Claude: [Delegates automatically]
โ "3 modified, 2 staged, 1 untracked | Ready to commit"
Viewing commit history:
You: "Show me recent commits"
Claude: [Delegates automatically]
โ "Last 10: abc123 Feature, def456 Fix, ... | 3 authors, 2 days"
Reviewing changes:
You: "Show git diff"
Claude: [Delegates automatically]
โ "+47/-12 across 3 files | auth.ts, api.ts, tests/ | No conflicts"
Stack status:
You: "Check my Graphite stack"
Claude: [Delegates automatically]
โ "โ feature/auth | 3 PRs | #456 (needs review), #457 (approved), #458 (draft)"
PR management:
You: "Show PRs needing review"
Claude: [Delegates automatically]
โ "๐ 2 PRs: #456 (Auth - awaiting review), #459 (Docs - changes requested)"
Submitting stack:
You: "Submit my stack for review"
Claude: [Delegates automatically]
โ "โ 3 PRs created | CI running on all | Ready for review"
Stack navigation:
You: "Navigate to next branch in stack"
Claude: [Delegates automatically]
โ "Switched to feature/auth-ui (3/5 in stack)"
Git Commands (auto-delegated):
git log --graph - Commit history with summarizationgit diff - Changes with statisticsgit status - Status with file groupinggit branch - Branch listing with current indicatorGraphite CLI Commands (auto-delegated):
gt stack - Stack status with PR summariesgt pr list - PR listing with filteringgt pr info - Detailed PR data with parsinggt submit - Submission with confirmationgt log - Stack history with formattingZero setup, works immediately with automatic delegation:
You: "Check my stack"
Claude: [Uses Task delegation automatically]
โ Concise summary
Characteristics:
Enhanced UX with colored terminal output:
# One-time setup in Claude Code
/agents create
Name: graphite-ops
Color: cyan
Scope: project
Prompt: Load from .claude/agents/graphite-ops-template.md
# Use with color
You: "graphite-ops check my stack"
graphite-ops [cyan]: โ feature/auth | 3 PRs | Review #456
Characteristics:
Agent Template Location: graphite-skill/agents/graphite-ops-template.md
Graphite Skill is designed for team-wide adoption:
# One team member sets up
./install.sh --project
git add .claude/
git commit -m "Add Graphite Skill context-optimization for git/Graphite"
git push
# Other team members pull and get:
# โ Automatic context optimization
# โ Consistent behavior across team
# โ Zero per-developer setup
Team benefits:
The skill works out-of-box with sensible defaults. No configuration required.
Adjust behavior by editing .claude/plugins/graphite-skill/settings.json:
{
"contextTokens": 800,
"delegationThreshold": 100,
"autoDetectGraphite": true,
"autoDetectCustomAgent": true,
"enableTaskDelegation": true,
"enableCustomAgent": true
}
Settings explanation:
contextTokens: Amount of pattern context injected (default: 800)delegationThreshold: Token size to trigger delegation (default: 100)autoDetectGraphite: Automatically detect Graphite CLI presence (default: true)autoDetectCustomAgent: Detect and suggest custom agent if available (default: true)enableTaskDelegation: Enable automatic Task delegation (default: true)enableCustomAgent: Enable custom agent support (default: true)| Metric | Before (Raw CLI) | After (Graphite Skill) | Improvement |
|---|---|---|---|
| Tokens consumed | 4,108 | 18 | 225x |
| Context pollution | High | Minimal | 99.6% reduction |
| Response quality | Degraded | Optimal | Focused reasoning |
| User effort | Manual patterns | Zero | Automatic |
| Operations before exhaustion | 2-3 | 100+ | 50x |
# Check permissions
chmod +x .claude/plugins/graphite-skill/hooks/session-start.sh
# Check settings.json exists
ls -la .claude/settings.json
# Test manually
bash .claude/plugins/graphite-skill/hooks/session-start.sh | jq .
# Verify hook returns correct JSON
bash .claude/plugins/graphite-skill/hooks/session-start.sh | \
jq '.hookSpecificOutput.hookEventName'
# Should output: "SessionStart"
Start Claude with debug mode:
claude --debug hooks
# Check for:
# - Hook execution confirmation
# - Context injection success
# - Any error messages
If Claude doesn't delegate automatically:
claude --debug hookssettings.jsongraphite-skill/
โโโ SKILL.md # This file - complete skill reference
โโโ install.sh # Automated installation script
โโโ settings.json # Configuration settings
โโโ hooks/
โ โโโ session-start.sh # SessionStart hook for pattern injection
โโโ agents/
โ โโโ graphite-ops-template.md # Custom agent template (optional)
โโโ examples/
โ โโโ team-configuration.md # Example team configurations
โโโ test/
โ โโโ verify-installation.sh # Installation verification script
โโโ QUICKSTART.md # Quick start guide
โโโ README.md # Detailed documentation
References (from root skill directory):
- QUICKSTART.md - 5-minute setup guide
- README.md - Complete documentation
- examples/team-configuration.md - Team setup examples
Always active - The SessionStart hook applies patterns automatically, so you don't need to manually invoke this skill. Just use git/Graphite naturally:
The skill is already working if:
For detailed information:
graphite-skill/QUICKSTART.md - 5-minute setup guidegraphite-skill/install.sh - Automated installationgraphite-skill/examples/team-configuration.md - Team configuration examplesgraphite-skill/agents/graphite-ops-template.md - Custom agent definition