Context/token discipline: subagent isolation, output = summary, move-to-file, delegation threshold, lean skills.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add byerlikaya/claude-starter-kit --skill token-budget --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Token Budget?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/byerlikaya-token-budget-claude-starter-kit)More formats (shields.io, HTML) on the badges page.
---
name: token-budget
description: |
Context/token discipline: subagent isolation, output = summary, move-to-file, delegation threshold, lean skills.
---
# Token & Context Discipline
<!-- routing-eval reads this line; it lives in the BODY so the always-on skill LISTING stays inside
Claude Code's budget (1% of the context window) — an overflowing listing gets descriptions
truncated or dropped, which strips the very keywords a match depends on. -->
Trigger phrases: "token budget", "token cost", "context window", "context management", "context is full", "clear context", "running out of context"
A subagent exists for context management: it runs in its own window and returns **only its summary**
to the main thread — intermediate noise (file reads, searches, logs) never enters the main context.
**Warning — measured, not guessed.** Each subagent re-pays its **full context from scratch**: in a real
transcript the first turn was `cache_read=0`, every token `cache_creation` — nothing is shared with the main
thread's cache. A **no-op** subagent (task = "reply DONE") already cost **~10k tokens with restricted tools and
~16k with full tool access**; that floor is base system prompt + tool schemas, paid fresh every time. Of the
always-on material only the **skill listing (~2.5–3k tokens) is inherited** by a subagent — the discipline
(`DISCIPLINE.md`/CLAUDE.md) and the agent descriptions are **not** injected into it. So a delegation is worth it
for **isolation / parallelism / a clean window**, or when the isolated work would otherwise cost the main thread
**more than that ~10–16k floor** — never by default.
## Rules
1. **Output = summary.** The agent returns a short, structured summary to the main thread; it does **not** return raw logs / file dumps / long code.
2. **Move to a file.** Heavy output (a plan, scan report, inventory) is written to `docs/*.md`; a **summary + pointer** comes back. (local, in gitignore)
3. **Delegation threshold.** Noisy/heavy work (reading many files, scanning, research) → subagent. A single tool-call / small work → **main thread**. Concretely: if the isolated work won't save the main thread more than the **~10–16k fresh-context floor** a subagent costs, keep it on the main thread — delegate for isolation, not to shave a few reads.
4. **Least tooling.** An agent holds only the tools it needs; extras accidentally pollute the context + burn the limit.
5. **Lean SKILL.md.** Skills load into the main context; heavy reference goes to a separate file, only when needed.
6. **Targeted reading.** Instead of reading a whole file, pinpoint with Grep/Glob.
7. **Manage with /context.** session-manager-csk recommends continue/handoff+clear based on the real percentage; at a phase boundary, `/clear`.
8. **Bound what a command hands back.** All of the rules above govern the context's own footprint; none of them
govern what a single `Bash` call dumps into it. A `find` over a monorepo, an unfiltered log, a full test run —
each returns everything to the main thread whether or not any of it is read. Ask for the answer, not the
corpus: `grep -c` over `grep`, `| tail -20` over the whole file, `--quiet`/`--porcelain` where the tool has
one, and a redirect to a file plus a pointer when the output is genuinely needed later (rule 2).
9. **Cut what nothing reaches — with evidence, not a hunch.** Every installed skill spends its name and
description in EVERY session, forever. `bash .claude/eval/utilization.sh` reports which skills actually fired
in this project's transcripts and how many bytes the cold ones cost, which is the list `doctor.sh` §4a's
`skillOverrides: name-only` advice needs and never had. Read it as evidence, not a verdict: a skill that only
fires during an incident is doing its job by existing. `--all-projects` widens the scope; by default it reads
this project only and prints names and counts, never paths or content.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!