Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jgravelle/tool-surface-discipline
The small-front-door principle and what counts as a tool-surface change. Load in /feature step 3, in review, and before editing any tool name, argument, description or tier.
Passed 22 of 23 test cases with the skill, and 8 of 23 without it.
and 15 more in the full report
14 fixed8 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
Where in the repository's findings documentation is it noted that scripts/surface_diff.py inspects tool names only?
| Checked | Without skill | With skill |
|---|---|---|
| Reference docs/workflows/FINDINGS.md W-1. | Missed | Passed |
The instructions your model reads when the skill loads.
Authority: docs/standard/STANDARD.md criterion 4; CLAUDE.md
"Tool-description quality", "Codex tool-surface benchmark", "Tier-switch
pricing"; tests/test_schema_budget.py,
tests/test_counter_surface_stability.py, tests/test_description_smells.py;
scripts/surface_diff.py.
The principle in three sentences: the published counter surface is
byte-pinned and a reworded description is a full-rate cache write for every
user; core_compact has a hard token ceiling the tree sits within a few
tokens of; a new tool is paid for on every request by every user whether or
not they call it.
A surface change is ANY of: a tool added, removed or renamed; an argument
added, removed or retyped; a description reworded; a tier or profile
membership moved; a Counter front-door change; an always-visible control
added. scripts/surface_diff.py sees names only (docs/workflows/FINDINGS.md
W-1); descriptions are diffed from _build_tools_list() dumps.
Every surface change carries: README tool reference, CLAUDE.md Key Files
(invariant) or KEY-FILES.md (description), CHANGELOG naming the tool, and
benchmarks/schema_baseline.json regenerated with the token delta stated
(DoD 4). The schema.core_compact_ceiling verdict decides whether a
description may grow; the answer is usually to trim.
test cases passed, vs 8 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.