Claude Tooling
August 12, 2026 · View on GitHub
A public notebook of one repeated question:
Does a Claude Code plugin, MCP server or skill already exist for this — or do I have to build it?
Every answer gets written down, dated, and left here. Not because the answers are interesting on their own, but because the search is the expensive part and it is otherwise thrown away the moment the decision is made.
Why this exists
I build a fair number of plugins and MCP servers. The default failure mode when you can build things quickly is building something that already exists, badly. The opposite failure mode — spending an afternoon proving a negative and then repeating that afternoon four months later because nobody wrote it down — is just as expensive and much less obvious.
So the rule here is:
- Don't reinvent the wheel. If someone has built it and it fits, use theirs.
- Don't build what someone else has built better. A partial fit from a maintained project usually beats a perfect fit I have to maintain alone.
- But do build when the requirement is genuinely unmet. Specific requirements that nothing serves are the legitimate case, and they're more common than they should be.
A scan closes with one of those three, in writing, against criteria written before the searching started.
Why it's public
Two reasons, and the second is the real one.
- Anyone wondering the same thing can read the answer instead of redoing the search.
- Agents can find it. A negative result — "I looked in these six places on this date and there is nothing" — is real information that no search engine produces on its own, because nobody publishes the search that came up empty. Leaving it here turns a dead end into a breadcrumb.
Nothing in this repo is private by nature. Scans describe requirements and public software; where a requirement comes from something of mine that isn't public, it gets stated as a capability, not as a description of the thing.
How to read a scan
Scans live in scans/, one file per question, indexed in
scans/README.md.
Each has a verdict — one of a fixed set, defined in docs/verdicts.md:
| Verdict | Meaning |
|---|---|
already-have-it | I'd already built it and forgotten |
native | Claude Code or the API does this now; no extension needed |
adopt | Something exists, it fits, use it |
adopt-with-gaps | Something exists and mostly fits; the gaps are listed |
contribute | Closest match is alive and short of the spec — send a PR |
fork | Closest match is abandoned — fork it rather than start over |
wrong-shape | Something serves the need, but not as a plugin — an MCP already on my gateway, a CLI, ten lines of shell |
build | Nothing meets the spec. Blue sky |
Every scan is a snapshot with a date on it. This ecosystem moves in weeks. A build
verdict from six months ago is a hypothesis, not a fact — see the Revisions section at
the bottom of each scan, and rescan.
Running one
From inside this repo:
/scan a plugin that scrapes Amazon listings and checks geo-specific delivery options
Or just describe the need — the prior-art-scan skill triggers on it. The procedure is
in .claude/skills/prior-art-scan/SKILL.md;
the search surfaces, with working queries and their known blind spots, are in
docs/method.md.
The output is a report in scans/, an updated index, and a one-line recommendation.
Ship public, use private
When a scan ends in build, the thing that gets built is public by default. That is
possible because a plugin doesn't have to choose between being shareable and being
useful to me specifically — it can declare where its user data lives and let each
user's copy point somewhere different:
${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/<plugin-name>/
The plugin is public and identical for everyone; my instance reads my directory. No parallel private fork of the same idea, no divergence between the copy that works and the copy that's published.
That convention, and the three-lifecycle architecture it belongs to, are documented properly in Plugin–Workspace–Vault rather than restated here.
What this is not
Three related things of mine answer neighbouring questions. Sending a request to the wrong one wastes a scan:
| Question | Goes to |
|---|---|
| I have a requirement — does anything already serve it? | here |
| I have a domain (diagramming, OCR) — what software in it is worth wrapping? | create-claude-plugins:plugin-target-research |
| I have a specific tool — is it worth wrapping? | create-claude-plugins:assess-plugin-candidate |
| Nothing exists — should I build a skill, a plugin, an MCP or a hook? | claude-rudder:what-thing-pick |
This repo hands off to the last one whenever a scan returns build.
Licence
MIT — see LICENSE.