context-attribution

v2026.09.24

Estimate per-turn token attribution across 6 categories in Claude Code sessions to show where context budget is spent

GitHub
Install command
npx skhub add oimiragieo/context-attribution
Markdown
SKILL.md

Context Attribution

Estimate per-turn token attribution across 6 categories in Claude Code sessions. Based on claude-devtools visible context tracker.

When to Invoke

Skill({ skill: 'context-attribution' });

Use when: context pressure is high, optimizing CLAUDE.md sizes, understanding which tool calls consume the most tokens, debugging context overflow.

The 6 Categories

CategoryDetection PatternTypical %
CLAUDE.md filesSystem messages with claudeMd or CLAUDE.md content20-40%
@-mentioned filesRead tool results triggered by user file references10-20%
Tool outputsAll tool_result content blocks15-30%
AI thinking/textAssistant message content (text + thinking blocks)10-25%
Team coordinationMessages containing <teammate-message> XML0-15%
User messagesUser role messages (prompts, follow-ups)5-15%

Workflow

Step 1: Load Session JSONL

# Find most recent session
SESSION=$(ls -t ~/.claude/projects/$(pwd | sed 's|/|-|g; s|^-||')/*.jsonl | head -1)

Step 2: Extract Per-Turn Token Data

For each message, classify into one of the 6 categories and estimate tokens:

# Count user messages (Category 6)
grep '"role":"user"' "$SESSION" | grep -v '"tool_result"' | wc -l

# Count tool results (Categories 2-3)
grep '"type":"tool_result"' "$SESSION" | wc -l

# Count assistant output (Category 4)
grep '"role":"assistant"' "$SESSION" | wc -l

# Check for team messages (Category 5)
grep 'teammate-message' "$SESSION" | wc -l

Step 3: Estimate Tokens Per Category

Use the usage field from each assistant turn for accurate counts. Fall back to chars/4 when unavailable.

Step 4: Output Attribution Table

Turn | CLAUDE.md | Files | Tools | AI Out | Team | User | Total
-----|-----------|-------|-------|--------|------|------|------
  1  |   12,400  |     0 |     0 |    800 |    0 |  200 | 13,400
  2  |        0  | 3,200 | 1,500 |  2,100 |    0 |  150 |  6,950
...  |      ...  |   ... |   ... |    ... |  ... |  ... |   ...

Step 5: Identify Top Consumers

Report which category consumes the most tokens and suggest optimizations (e.g., reduce CLAUDE.md size, compress tool outputs).

Memory Protocol (MANDATORY)

Before starting: ```bash cat .claude/context/memory/learnings.md cat .claude/context/memory/decisions.md ```

After completing:

  • New pattern -> `.claude/context/memory/learnings.md`
  • Issue found -> `.claude/context/memory/issues.md`
  • Decision made -> `.claude/context/memory/decisions.md`

ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

.claude/skills/context-attribution

Default branch

main

Latest commit

64b580e

Tree SHA

42a1df4