Who Built This Before Me logo

Who Built This Before Me

Community
iagochavarry
who-built-this-before-me

Check whether a project, tool, library, or product idea has already been built before the user invests time in it. Find existing solutions, extract standard patterns, benchmark the user's angle against prior art, and deliver a clear verdict (build / fork / contribute / use existing / investigate why it failed). Use this skill whenever the user describes something they're thinking of building, making, shipping, launching, or coding — especially phrases like "I want to build…", "I'm thinking of making…", "should I build X…", "is there already a…", "my idea is…", or when the user is scoping a new side project, startup, library, or tool. Trigger even if the user doesn't explicitly ask for prior art research — if they're about to build something, they should check first.

Overview

Publisheriagochavarry
Repositorywho-built-this-before-me
Skill namewho-built-this-before-me
Stars
76
Forks
9
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by iagochavarry on GitHub. Read the source before you install it.

Installation

Install the Who Built This Before Me AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/iagochavarry/who-built-this-before-me/tree/main
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/iagochavarry/who-built-this-before-me.git \
  .claude/skills/who-built-this-before-me
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Who Built This Before Me in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Who Built This Before Me on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Who Built This Before Me is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

who-built-this-before-me

Before the user burns a weekend (or a quarter) building something, find out whether it already exists. Most ideas have been tried. Some are solved well, some are solved badly, some failed for instructive reasons, and a few are genuinely open. This skill figures out which bucket the user's idea falls into and tells them plainly.

Core loop

  1. Restate the idea in one sentence. Strip the pitch down to: what it does, who it's for, what constraint makes it distinctive (if any). Show this back to the user and confirm before searching. If the idea is too vague to search (i.e. the framing matches an entire tool category), ask exactly one clarifying question. You may include up to 3 example dimensions as prompts, but no more — this is a question, not a questionnaire.
  2. Generate vocabulary before searching. Before running any query, write down 6–10 different framings of the idea from distinct vantage points. The user's framing is one lens; other builders, academics, and infrastructure people use different words for the same thing. Cover at minimum:
    • The builder's framing (the user's own words)
    • The user-of-the-tool framing (wng for this would type)
    • The academic or research framing (if applicable)
    • The infrastructure / implementation framing
    • The adjacent-community framing (the next-door discipline that likely solved this first)
    Write the list out explicitly. Map each search query to a framing. This prevents the failure mode where 5 queries all hit the same semantic neighborhood.
  3. Search where builders actually publish. Run 3–6 targeted queries across the right registries, covering distinct framings from step 2:
    • Code: GitHub, GitLab, PyPI, npm, crates.io, Hugging Face (for ML)
    • Products: Product Hunt, Hacker News ("Show HN"), relevant subreddits
    • Writing: engineering blog posts, papers (arXiv, Google Scholar) when relevant
    • Domain-specific high-signal venues: model release notes and system cards for AI/ML tools, SEC filings for fintech, RFCs and standards bodies for protocols, regulator guidance for compliance. Every domain has a venue where the incumbent gets cited by the serious players. Find it and check it.
    Keep queries short. Don't run one generic query and stop.
  4. Trace one layer down on every direct match. When a project's docs mention another tool as a dependency, bridge, wrapped layer, or "official harness for X" — that other tool is often the real incumbent and the project you found is a thin wrapper. Before concluding, for each direct match, ask: what does this project delegate to? What does it wrap? What does it call out as its foundation? Follow those pointers with a dedicated query. The skill fails most often not at finding projects but at stopping one layer too early.
  5. Cluster the findings into four buckets. Don't list raw results. Group into:
    • Direct matches — same problem, same approach
    • Adjacent solutions — same problem, different approach
    • Partial solutions — solves a subset of the problem
    • Abandoned / stale — existed, now dead (note the last commit date and, if findable, why it died)
  6. Extract standard patterns. Across the matches, what shows up repeatedly? Common architecture, libraries, design decisions, naming conventions, pricing models. That's the default playbook the user would be competing with or building on.
  7. Benchmark the user's angle. In one honest paragraph, compare the user's specific framing against what exists. Name the real differentiator — or admit there isn't one. Don't manufacture novelty to be nice.
  8. Deliver a verdict. Pick one:
    • Build it — genuine gap; differentiation is clear and defensible
    • Fork/extend — closest existing project + specifically what to add
    • Contribute — the feature belongs upstream in an existing project; suggest which
    • Use existing — already solved well; name the best option(s)
    • Investigate first — someone tried and failed or abandoned; understand why before spending time Be direct. If the idea is already built, say so on the first line of the verdict. Hedging wastes the user's time.

Output format

Always produce a short markdown report with these exact sections:

markdown
# Prior art check: [idea in ≤8 words]
 
## The idea, restated
[One sentence.]
 
## The landscape
[Table with columns: Name | Link | Status | Relevance | Bucket]
[Rows grouped by bucket: direct matches, adjacent, partial, abandoned. Max 3 rows per bucket — pick the most relevant, not all.]
 
## Standard patterns
[3–6 bullets describing what's common across the matches. Architectural, technical, or product patterns.]
 
## Differentiator analysis
[One paragraph. What's genuinely different about the user's framing, if anything. Honest.]
 
## Verdict: [Build it / Fork X / Contribute to Y / Use Z / Investigate first]
[One paragraph explaining the verdict and the concrete next step.]

Keep it tight. The whole report should fit on one screen unless the landscape is unusually rich.

Search strategy

Vary vocabulary across queries. Example, for an idea like "a tool that auto-generates database migrations from API schemas":

  • Bad: run "auto-generate database migrations from API schemas" five times
  • Good: try openapi schema to sql migration, generate migrations from openapi, api-first database schema github, declarative schema migration tool, show hn schema migration The user's framing is one lens. Other builders use different words for the same idea. Surface those.

Prefer primary sources (repos, Show HN threads, project homepages) over aggregator articles. One GitHub repo with 200 stars beats a Medium listicle every time.

Interpretation, not just search

Finding projects is the easy half. Reading them correctly is where the skill fails most often. Common interpretation failures and how to avoid them:

  • Pattern-matching on the first project found. If the first direct match is a tiny project (low stars, few commits) but references a larger named project in its docs, the larger project is probably the real incumbent. Don't let the first project found anchor the answer.
  • Treating dependencies as context instead of leads. Sentences like "runs X through Y," "official harness for Z," "built on top of W," or "wraps V" are not background — they are pointers. Every named dependency in a direct match's docs is a search lead you must follow before concluding.
  • Clean-looking landscapes can be local minima. If three queries all return the same project, that's evidence of a semantic cluster, not global coverage. The fix is step 2 — if you generated vocabulary framings upfront, you should have already run queries that reach different clusters. Re-check your framing list; if some are still untried, try them before stopping.
  • Obscurity ≠ novelty. If nothing shows up on page one, search again with different words before concluding the idea is novel. Most "novel" ideas are just badly named — this is what the vocabulary step in the core loop is for.

What to avoid

  • Don't invent competitors. If the search comes up empty after a real effort, say "no direct prior art found" and explain where you looked. Inventing plausible-sounding projects is worse than admitting a blank.
  • Don't pad the verdict. "It's complicated, it depends on your goals, here are considerations…" is noise. Pick a verdict. The user can push back if they disagree.
  • Don't stop at the first match. Finding one existing tool doesn't mean the idea is dead — it means you now know the baseline. Keep searching to find the full landscape, and trace one layer down (step 4) on every match.
  • Don't be diplomatic to spare feelings. The user asked this skill for a reality check. Give it.

Budget

Aim for ≤10 total search queries across the vocabulary framings generated in step 2. Stop earlier only if the landscape is clear after 3–4 queries and at least one of those queries followed a "one layer down" dependency lead from step 4. If after 10 queries you're still not confident, say so and list what you found rather than continuing indefinitely.

Example verdicts (tone reference)

Already built, use it:

Verdict: Use existing — Alembic. Your idea (SQLAlchemy-compatible migration tool with auto-generation from models) is exactly what Alembic does, and it's been the standard for a decade. Your specific twist (YAML config instead of Python) is real but small; it's a fork, not a new project. Next step: try Alembic for a week on a real project before deciding the YAML thing is worth a fork.

Genuine gap:

Verdict: Build it. I found three adjacent tools but none do API-schema-first migrations with rollback safety checks. The closest (prisma-migrate) is tied to the Prisma ORM and won't help users on raw SQL. This is a real gap. Next step: ship a minimal CLI that reads OpenAPI and emits reversible migrations for Postgres first.

Someone tried, it died:

Verdict: Investigate first. schema-forge (2021, archived) did almost exactly this and has 1.2k stars but no commits in 3 years. Before rebuilding, read the closed issues and the author's final blog post — the problem may be harder than it looks, or the market may not want it. Next step: spend an hour on schema-forge's issue tracker before writing a line of code.

Frequently asked questions

What does the Who Built This Before Me AI skill do?

Check whether a project, tool, library, or product idea has already been built before the user invests time in it. Find existing solutions, extract standard patterns, benchmark the user's angle against prior art, and deliver a clear verdict (build / fork / contribute / use existing / investigate why it failed). Use this skill whenever the user describes something they're thinking of building, making, shipping, launching, or coding — especially phrases like "I want to build…", "I'm thinking of making…", "should I build X…", "is there already a…", "my idea is…", or when the user is scoping a...

Why use Who Built This Before Me on TypingMind?

Because you install it once and use it with any model. Who Built This Before Me is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Who Built This Before Me in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/iagochavarry/who-built-this-before-me/tree/main. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Who Built This Before Me?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Who Built This Before Me?

As many as you like. As long as a model supports skills, you can use Who Built This Before Me with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Who Built This Before Me AI skill free?

Yes. It is published on GitHub by iagochavarry under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇