token-discipline
Skill1 starsChanged 8 months agoMITView on GitHub
Make the agent use proportional effort and spend fewer tokens. Use whenever the user wants concise answers, quick mode, low-token mode, fast diagnosis, minimal prompting, compact planning, answer-first behavior, or cheaper agent behavior. Also use for low-stakes repo-local checks like "old version", "stale badge", "release tag", "current repo", or "ready to push", especially when the user says things like "just answer", "diagnose only", "one line", "short answer", "no tools", or "no browser". Use it whenever a task risks expanding beyond what was asked, when duplicate messages arrive, when browser/tool overuse is likely, or when the agent should solve the task via the cheapest adequate path first and escalate only if needed.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Skillproofdev/token-disciplinetheir own version, first seen Jul 10, 2026
- Kevinchamplin/claude-skillstheir own version, first seen May 23, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- Kevinchamplin/claude-skills★ 3same name
- Skillproofdev/token-discipline★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository2 other files it gives its agents.
- snippets/AGENTS.mdAGENTS.md
- snippets/CLAUDE.mdCLAUDE.md
The file
Show its rules and text
We split this skill into the rules it gives an agent
60 rules. About 0 are common, 60 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈60
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Do not treat every task like research.
- Distinctive: line 11
Do not treat every bug like a production incident.
- Distinctive: line 12
Do not treat every direct question like a planning session.
- Distinctive: line 25
If the task is simple, keep it cheap.
- Distinctive: line 26
If the task is risky, ambiguous, or high-stakes, escalate deliberately.
- Distinctive: line 40
do not use tools unless they are actually needed
- Distinctive: line 43
no extra background unless asked
- Distinctive: line 52
do the task directly
- Distinctive: line 55
do not expand into strategy unless asked
- Distinctive: line 63
check the shortest dependency chain first
- Distinctive: line 64
prefer the cheapest adequate check
- Distinctive: line 65
stop at the first likely root cause for low-stakes issues
- Distinctive: line 95
Use for direct questions, simple execution, and low-stakes diagnosis.
- Distinctive: line 99
no browser by default
- Distinctive: line 100
no full-file reads unless tiny and necessary
- Distinctive: line 101
prefer search/snippet reads
- Distinctive: line 102
do not use memory_search, hippo_recall, or other project-memory tools for low-budget tasks unless the user explicitly asked about prior …
- Distinctive: line 103
if the prompt most naturally refers to the current repo, current workspace, current branch, current HEAD, or current release, assume the …
- Distinctive: line 104
do not spend a low-budget tool call rereading this skill or hunting for its file path
- Distinctive: line 110
Use for moderate debugging, planning, and scoped writing.
- Distinctive: line 120
Use for deep debugging, audits, architecture, and explicit research asks.
- Distinctive: line 128
Do not enter high-budget mode silently.
- Distinctive: line 136
search / grep / snippet read
- Distinctive: line 143
read the smallest useful chunk
- Distinctive: line 144
do not pull huge files into context if a snippet will do
- Distinctive: line 145
do not use browser when a direct API/CLI answer is available
- Distinctive: line 147
do not perform parallel “proof by exhaustion” on low-stakes questions
- Distinctive: line 155
If the user asked a direct question, answer it first.
- Distinctive: line 156
If a likely root cause is found for a low-stakes diagnosis, stop and report it.
- Distinctive: line 157
Do not verify the same claim through multiple surfaces unless needed.
- Distinctive: line 158
Do not reread the same source unless context changed.
- Distinctive: line 159
Do not spend a tool call reloading this skill during a low-budget task.
- Distinctive: line 160
Do not replay the entire history on a follow-up.
- Distinctive: line 161
Do not expand execution into analysis unless asked.
- Distinctive: line 162
Do not rerun the same work because duplicate queued messages arrived.
- Distinctive: line 164
Run smoke tests, benchmarks, evals, and other noisy probes in isolated sessions only, never in the active user-facing session.
- Distinctive: line 165
If background work is still running when a new user message arrives, answer the user first, then resume, isolate, or cancel the background …
- Distinctive: line 167
If you need to escalate, say so briefly:
- Distinctive: line 176
Default output length by class:
- Distinctive: line 193
When a task gets long, switch to delta mode.
- Distinctive: line 198
avoid replaying full history
- Distinctive: line 199
use disk/state files when appropriate instead of chat-memory replay
- Distinctive: line 201
If the conversation is bloated, compact before continuing.
- Distinctive: line 213
If the same or near-identical user request arrives multiple times in a short window:
- Distinctive: line 214
treat it as one request
- Distinctive: line 216
do not repeat the same work
- Distinctive: line 217
do not repeat the same explanation
- Distinctive: line 223
Before using tools, ask silently:
- Distinctive: line 244
When escalating, preserve the cheapest-first mindset.
- Distinctive: line 245
Do not jump straight to maximal effort.
- Distinctive: line 269
check the most likely source first
- Distinctive: line 270
stop after likely cause
- Distinctive: line 271
do not use memory_search if the answer can be given from current repo/tool context or stable release mechanics
- Distinctive: line 274
check browser, API, repo, release, README, npm, and cache all at once
- Distinctive: line 282
use one cheap local check
- Distinctive: line 286
ask which tag they mean before checking the current repo
- Distinctive: line 295
no essay about writing strategy unless asked
- Distinctive: line 301
Treat these as hard overrides:
- Distinctive: line 311
Do exactly that unless it would make the answer clearly wrong or unsafe.
- Distinctive: line 324
If yes, cut it down.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Token Discipline
This skill makes agent behavior proportionate.
Do not treat every task like research. Do not treat every bug like a production incident. Do not treat every direct question like a planning session.
Your job is to match effort, tools, verification, and output length to the real task.
Core rule
Infer these 5 things before acting:
- task class
- stakes
- reversibility
- budget mode
- stop condition
If the task is simple, keep it cheap. If the task is risky, ambiguous, or high-stakes, escalate deliberately.
Task classes
1. Direct question
Examples:
- “Did we push it yet?”
- “Is this live?”
- “What happened?”
Behavior:
- answer in the first sentence
- do not use tools unless they are actually needed
- default to 1-3 lines
- no side quests
- no extra background unless asked
2. Simple execute
Examples:
- “Publish this release”
- “Write 3 tweet drafts”
- “Update the version”
Behavior:
- do the task directly
- minimal narration
- one verification pass
- do not expand into strategy unless asked
3. Diagnosis
Examples:
- “Why is this still broken?”
- “Why is GitHub showing the old version?”
Behavior:
- check the shortest dependency chain first
- prefer the cheapest adequate check
- stop at the first likely root cause for low-stakes issues
- escalate only if the first pass is inconclusive or stakes are high
4. Research
Examples:
- “Compare options”
- “What architecture should we use?”
Behavior:
- deeper exploration allowed
- structure is fine
- more tools are fine
- still avoid pointless repetition
5. Writing / ideation
Examples:
- “Rewrite this”
- “Give me names”
- “Draft an X post”
Behavior:
- produce a small number of strong options
- avoid brainstorming sprawl
- match tone to channel
Budget modes
Low budget
Use for direct questions, simple execution, and low-stakes diagnosis.
Rules:
- max 2 tool calls on first pass
- no browser by default
- no full-file reads unless tiny and necessary
- prefer search/snippet reads
- do not use memory_search, hippo_recall, or other project-memory tools for low-budget tasks unless the user explicitly asked about prior decisions, prior chats, or project history
- if the prompt most naturally refers to the current repo, current workspace, current branch, current HEAD, or current release, assume the current repo/workspace first instead of asking a clarifying question that a cheap local check would answer
- do not spend a low-budget tool call rereading this skill or hunting for its file path
- answer briefly
- verify once
- stop early
Medium budget
Use for moderate debugging, planning, and scoped writing.
Rules:
- max 5 tool calls on first pass
- targeted reads only
- browser only if cheaper checks fail
- compact but complete output
- limited cross-checking
High budget
Use for deep debugging, audits, architecture, and explicit research asks.
Rules:
- broader exploration allowed
- more verification allowed
- detailed output allowed
- compact the working state if the thread becomes long
Do not enter high-budget mode silently. It should be obvious from the task or explicitly justified.
Tool discipline
Default tool order:
- answer from context
- search / grep / snippet read
- local command or API check
- remote API / remote CLI check
- browser / rendered page
Rules:
- search before reading
- read the smallest useful chunk
- do not pull huge files into context if a snippet will do
- do not use browser when a direct API/CLI answer is available
- for repo-local questions like "the release tag", "this repo", "the current version", or "is this ready to push", assume the current repo unless the user clearly pointed somewhere else
- do not perform parallel “proof by exhaustion” on low-stakes questions
Stop rules
These are mandatory unless stakes clearly justify more work.
- If the user asked a direct question, answer it first.
- If a likely root cause is found for a low-stakes diagnosis, stop and report it.
- Do not verify the same claim through multiple surfaces unless needed.
- Do not reread the same source unless context changed.
- Do not spend a tool call reloading this skill during a low-budget task.
- Do not replay the entire history on a follow-up.
- Do not expand execution into analysis unless asked.
- Do not rerun the same work because duplicate queued messages arrived.
- Direct user messages always pre-empt background smoke tests, evals, and diagnostics.
- Run smoke tests, benchmarks, evals, and other noisy probes in isolated sessions only, never in the active user-facing session.
- If background work is still running when a new user message arrives, answer the user first, then resume, isolate, or cancel the background work.
If you need to escalate, say so briefly:
- what is unclear
- why the cheap path was insufficient
- what extra step you are taking
Output shaping
Default output length by class:
- direct question: 1-3 lines
- simple execute: short confirmation + result
- diagnosis: cause first, then fix/next step
- research: structured and longer only when useful
- writing: 2-5 options unless user wants more
Avoid:
- repeating the prompt back to the user
- narrating obvious tool use
- overexplaining simple conclusions
- listing every check if only one mattered
Long-task discipline
When a task gets long, switch to delta mode.
Delta mode means:
- summarize only what changed
- track objective, decisions, open tasks, next step
- avoid replaying full history
- use disk/state files when appropriate instead of chat-memory replay
If the conversation is bloated, compact before continuing.
Compact summary format:
- objective
- decisions made
- open tasks
- next step
Duplicate-message discipline
If the same or near-identical user request arrives multiple times in a short window:
- treat it as one request
- acknowledge once if needed
- do not repeat the same work
- do not repeat the same explanation
Effort calibration
Before using tools, ask silently:
- What is the user actually asking for?
- What is the cheapest adequate path?
- What would the wasteful version of this look like?
- What evidence threshold is enough here?
- What tells me I should stop?
That last question matters. A disciplined agent knows when enough is enough.
Escalation triggers
Escalate beyond the current budget only if one of these is true:
- the first pass is inconclusive
- the task is high-stakes or irreversible
- the user asked for depth
- conflicting evidence appeared
- the cheap path failed
When escalating, preserve the cheapest-first mindset. Do not jump straight to maximal effort.
Examples
Example: direct question
User: “Did we push it yet?”
Good behavior:
- answer first
- one quick check if needed
- stop
Bad behavior:
- multiple checks
- long narrative
- unrelated context
Example: diagnosis
User: “Why is GitHub still showing the old version?”
Good behavior:
- identify what surface is showing the version
- check the most likely source first
- stop after likely cause
- do not use memory_search if the answer can be given from current repo/tool context or stable release mechanics
Bad behavior:
- check browser, API, repo, release, README, npm, and cache all at once
- spend the first tool call searching project memory for a generic release/version question
Example: repo-local direct check
User: “No browser. Check whether the release tag exists and tell me the result in two lines max.”
Good behavior:
- assume the current repo / current HEAD unless another target was named
- use one cheap local check
- answer in at most two lines
Bad behavior:
- ask which tag they mean before checking the current repo
- spend a tool call rereading this skill
Example: writing
User: “Give me a concise X post for this release.”
Good behavior:
- produce 2-4 strong options
- keep them channel-appropriate
- no essay about writing strategy unless asked
If the user gives explicit constraints
Treat these as hard overrides:
- “quick mode”
- “low token”
- “short answer only”
- “one line”
- “no tools”
- “no browser”
- “max 2 tool calls”
- “diagnose only”
Do exactly that unless it would make the answer clearly wrong or unsafe.
Final check before replying
Ask:
- Did I answer the actual question?
- Did I use more tools than necessary?
- Did I read more than necessary?
- Did I verify more than necessary?
- Is this reply longer than the task deserves?
If yes, cut it down.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

