search-before-building
Skill0 starsChanged 4 months agoMITView on GitHub
Before designing any mechanism, check whether it already exists. Trigger the moment you catch yourself about to write "I'll build a X that does Y" — a cache, a queue, a lock, a retry policy, a permission model, a log with integrity, a scheduler, a diff, a parser. Also trigger before inventing a name for a technique, before writing a second file of a "new" subsystem, and whenever a design feels satisfyingly original.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- yeaight7/agent-powerupstheir own version, first seen Jul 27, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- yeaight7/agent-powerups★ 6same 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 repository4 other files it gives its agents.
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
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 78
All three require having looked.
≈ “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
Search before building
You are very good at building things. That is the problem.
Writing a mechanism from scratch feels like progress the entire time you are doing it. It compiles, the tests you wrote pass, and at no point does anything say this already exists and is better. Nothing will. The absence of that message is not evidence.
Three, in one session
Measured, in a single afternoon, by the agent that wrote this skill:
A hash-chained ledger. ~200 lines: append-only entries, a lock, fork detection, an anchor
against full rewrite. Git is a hash chain. It was already installed. It has fifteen years of
tooling to inspect it, and a git commit per entry would have cost zero lines and zero
maintenance. The question "does git already do this?" was never asked.
A reputation gate. Invented a novelty criterion from first principles, after rejecting the
counting approach because it stops npm test on its third honest failure. Circuit breakers
(Hystrix, resilience4j) have solved this since 2012 — and they do count. Ten minutes of reading
would have revealed how they avoid the npm test problem: they only wrap calls where a failure
means a failure. Network calls, not informative commands. The bug was never the counter. It was
the scope. The whole redesign was unnecessary.
A permission classifier. Keyword matching to score how dangerous a UI action is. Android permissions, iOS TCC, sudo, SELinux — the entire literature of OS permission models — and all of them agree on something that was never considered: they classify the resource and ask for consent in context, not the action. Not one was consulted.
The same session correctly consulted prior art exactly once, on a research question, and it saved months. The difference was not knowledge. It was that on the research question the agent doubted, and on the engineering questions it felt competent.
The tell
"I'll build a small X that does Y."
The word is small. It is never small, and that is not the point anyway — the point is that Y is a problem so common it has a name, a Wikipedia page, and three battle-tested implementations you did not look for.
Other tells, in rough order of danger:
- You are naming a technique. If you are naming it, you think it is new. Check.
- You are pleased with the design. Novelty and satisfaction feel identical from the inside.
- You are on file two of a "new" subsystem and have not typed a search query.
- You are about to write "from scratch", "our own", "a simple", "a minimal", or "lightweight".
The check
Two questions, sixty seconds, before the first line:
- What is this called by people who already solved it? Not "how would I build a thing that detects repeated failures" — "what is the standard name for stopping repeated calls to a failing dependency?" (Answer: circuit breaker.) Naming the problem finds the prior art. Not naming it is how you end up naming your solution instead.
- Is it already installed? Git, sqlite, the OS keychain, the platform's permission system, the language's stdlib. The best dependency is the one already on the machine and maintained by someone else.
Then search. Then read for ten minutes. Then decide.
When building anyway is right
This is not a rule against building. It is a rule against building unknowingly. Legitimate reasons survive the search:
- the existing thing does not fit, and you can say precisely how after reading it
- the dependency costs more than the code (real, and rarer than it feels)
- you need to understand the mechanism, and the building is the point
All three require having looked. "I didn't think to check" is not on the list.
Why it costs more than the hours
The code you wrote instead has no community, no documentation, no other users, and no one to report its bugs. Every one of them will be found by the person you handed it to, one at a time, in production. You did not save time. You moved it onto someone else, denominated in a worse currency.
And each new mechanism opens holes that need patching, and patching them feels like progress too. That loop has no natural end. The way out is not at the end of it.
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.

