tool-surface-minimisation
Skill0 starsChanged 14 days agoMITView on GitHub
Ship the fewest tools that cover the workflow, because every extra tool is a wrong choice waiting to happen. Use when a server is accumulating tools and the list is getting hard for a model to choose from
In this repository49 other files it gives its agents.
- argument-construction-from-artifactsSkill
- audit-log-of-tool-callsSkill
- bounded-output-designSkill
- capability-negotiation-checkSkill
- changelog-and-versioningSkill
- concurrency-and-ordering-checkSkill
- context-window-managementSkill
- credential-isolationSkill
- data-retention-policySkill
- description-as-contractSkill
- destructive-action-confirmationSkill
- destructive-tool-gatingSkill
- deterministic-command-choicesSkill
- done-when-criteriaSkill
- error-shape-for-agentsSkill
- fixture-driven-transcript-testsSkill
- human-in-the-loop-escalationSkill
- idempotency-annotationSkill
- input-schema-strictnessSkill
- least-privilege-tool-grantsSkill
- lifecycle-test-initialize-then-toolsSkill
- local-vs-remote-boundarySkill
- one-procedure-per-skillSkill
- pagination-and-limit-disciplineSkill
- parallel-tool-call-safetySkill
- protocol-conformance-testSkill
- protocol-version-handshakeSkill
- publishing-a-pack-locallySkill
- rate-limit-respectSkill
- reference-canonicalisationSkill
- replay-transcript-for-regressionSkill
- restart-and-reload-semanticsSkill
- scope-guard-before-executionSkill
- search-then-fetch-patternSkill
- secrets-via-environmentSkill
- server-discovery-and-trustSkill
- signal-and-pitfall-sectionsSkill
- skill-frontmatter-contractSkill
- stdio-client-configSkill
- stdout-purity-checkSkill
- third-party-server-sandboxingSkill
- tool-call-budgetingSkill
- tool-call-error-pathsSkill
- tool-error-without-retry-stormSkill
- tools-list-schema-validationSkill
- tool-verb-namingSkill
- transport-choiceSkill
- verify-tool-output-before-reportingSkill
- when-to-use-and-avoidSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 5 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
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 22
Remove tools that duplicate another tool's output
- Distinctive: line 23
Keep one discovery tool, one fetch tool and the minimum for the domain
- Distinctive: line 24
Check that each remaining tool has a distinct reason to exist
- Distinctive: line 25
Document the removal so a later contributor does not re-add it
- Distinctive: line 62
every tool maps to a distinct workflow step
≈ “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
Tool Surface Minimisation
Ship the fewest tools that cover the workflow, because every extra tool is a wrong choice waiting to happen
Use when: a server is accumulating tools and the list is getting hard for a model to choose from
Avoid when: the server is new and its first three tools are still being validated
Procedure
- List every tool and the workflow step it serves
- Merge tools that differ only by an argument value
- Remove tools that duplicate another tool's output
- Keep one discovery tool, one fetch tool and the minimum for the domain
- Check that each remaining tool has a distinct reason to exist
- Document the removal so a later contributor does not re-add it
Signals
- each tool maps to one workflow step and no two overlap
- the tool list fits on one screen
- a model choosing between two tools cannot pick wrong
- removed tools are recorded with the reason
Patterns
1. Core trio
list_packs, search_skills, get_skill2. Merge candidate
get_skill_by_tag folds into search_skills3. Removal note
removed dump_all: unbounded output, replaced by searchPitfalls
- Adding a tool per keyword instead of making search better
- Keeping a convenience tool that returns unbounded output
- Removing a tool without noting why, so it returns in six months
Done when
- every tool maps to a distinct workflow step
- removals are recorded with their reason
References
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.

