search-first
Has your agent search for existing tools before creating code. This saves time and avoids reinventing the wheel.
What it does
This tool helps find ready-made solutions before you write new code. It searches for existing tools in places like npm, PyPI, and GitHub to prevent you from 'reinventing the wheel'.
When to use it
- ✓When starting a new feature that might already exist.
- ✓When adding a new library or integration to your project.
- ✓Before creating a function or tool that others may have already built.
Example of what to ask your AI
“Search for a library to check for broken links in markdown files.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool checks various sources (like package stores and code repositories) to see if something already does what you need. If it finds something, it suggests using that ready-made solution; if not, it helps you understand what you need to build.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add affaan-m/ECC --skill search-firstOr download just the file:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/search-first/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
/search-first — Research Before You Code
Systematizes the "search for existing solutions before implementing" workflow.
Trigger
Use this skill when:
- Starting a new feature that likely has existing solutions
- Adding a dependency or integration
- The user asks "add X functionality" and you're about to write code
- Before creating a new utility, helper, or abstraction
Workflow
┌─────────────────────────────────────────────┐
│ 0. TOOL AVAILABILITY PREFLIGHT │
│ Check search channels before relying on │
│ them; report skipped channels honestly │
├─────────────────────────────────────────────┤
│ 1. NEED ANALYSIS │
│ Define what functionality is needed │
│ Identify language/framework constraints │
├─────────────────────────────────────────────┤
│ 2. PARALLEL SEARCH (researcher agent) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ npm / │ │ MCP / │ │ GitHub / │ │
│ │ PyPI │ │ Skills │ │ Web │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────┤
│ 3. EVALUATE │
│ Score candidates (functionality, maint, │
│ community, docs, license, deps) │
├─────────────────────────────────────────────┤
│ 4. DECIDE │
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Adopt │ │ Extend │ │ Build │ │
│ │ as-is │ │ /Wrap │ │ Custom │ │
│ └─────────┘ └──────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 5. IMPLEMENT │
│ Install package / Configure MCP / │
│ Write minimal custom code │
└─────────────────────────────────────────────┘
Decision Matrix
| Signal | Action |
|---|---|
| Exact match, well-maintained, MIT/Apache | Adopt — install and use directly |
| Partial match, good foundation | Extend — install + write thin wrapper |
| Multiple weak matches | Compose — combine 2-3 small packages |
| Nothing suitable found | Build — write custom, but informed by research |
How to Use
Step 0: Tool Availability Preflight
This is agent guidance, not an executable setup script. Check only the channels that are relevant to the task and project in front of you.
| Channel | Check | If missing |
|---|---|---|
| Repository search | rg --files and targeted rg queries |
State that only visible files were inspected |
| Package registry | npm --version, python -m pip --version, or project package manager |
Use web/docs search and avoid claiming registry coverage |
| GitHub CLI | gh auth status |
Use public web or local git history only |
| MCP/docs tools | Available tool list or local MCP config | Fall back to official docs/web search |
| Skills directory | ls ~/.claude/skills ~/.codex/skills where applicable |
Say no local skill catalog was available |
Quick Mode (inline)
Before writing a utility or adding functionality, mentally run through:
- Does this already exist in the repo? →
rgthrough relevant modules/tests first - Is this a common problem? → Search npm/PyPI
- Is there an MCP for this? → Check
~/.claude/settings.jsonand search - Is there a skill for this? → Check
~/.claude/skills/ - Is there a GitHub implementation/template? → Run GitHub code search for maintained OSS before writing net-new code
Full Mode (agent)
For non-trivial functionality, launch the researcher agent:
Agent(subagent_type="general-purpose", prompt="
Research existing tools for: [DESCRIPTION]
Language/framework: [LANG]
Constraints: [ANY]
Search: npm/PyPI, MCP servers, Claude Code skills, GitHub
Return: Structured comparison with recommendation
")
Older Claude Code docs may call this Task(...); use the current agent/subagent
tool name exposed by the active harness.
Search Shortcuts by Category
Development Tooling
- Linting →
eslint,ruff,textlint,markdownlint - Formatting →
prettier,black,gofmt - Testing →
jest,pytest,go test - Pre-commit →
husky,lint-staged,pre-commit
AI/LLM Integration
- Claude SDK → Context7 for latest docs
- Prompt management → Check MCP servers
- Document processing →
unstructured,pdfplumber,mammoth
Data & APIs
- HTTP clients →
httpx(Python),ky/undici(Node) - Validation →
zod(TS),pydantic(Python)
…
FAQ
What are npm and PyPI?
They are like 'stores' where developers share ready-made code (packages or libraries) that others can use in their projects.
What does 'reinventing the wheel' mean?
It means creating something from scratch when a ready-made and tested solution that does the same thing already exists.
When should I use this tool?
Whenever you are about to write code for a new feature or to solve a common problem, it's a good idea to check if a ready-made solution doesn't already exist.
Details
Original description by the author
Research-before-coding workflow: search npm/PyPI, MCP servers, skills, and GitHub for existing tools before writing custom code, then adopt, extend, or build. Launches the researcher agent for non-trivial needs. Use when starting a feature, adding a dependency or integration, or about to write a utility that may already exist.
repo: affaan-m/ECC
Popularity
- GitHub stars
- 280k
- Ranking position
- #279
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
accessibility
Helps your agent create interfaces that everyone can use. Ensures websites and apps work well for people with disabilities, like those who are blind or have reduced mobility.
affaan-m/ECC
agent-architecture-audit
Makes your agent check if everything is working correctly. It finds and fixes problems in AI systems, ensuring they perform as expected.
affaan-m/ECC
agent-eval
Helps your agent compare different AI coding tools. It measures which one is faster, cheaper, and more reliable for specific tasks.
affaan-m/ECC
agent-harness-construction
Makes your agent better understand how to perform tasks. It optimizes the tools and instructions the agent uses to increase its chances of success.
affaan-m/ECC
Similar skills
karpathy-guidelines
Helps your agent write better code by avoiding common mistakes. It's useful for ensuring code is simple, clear, and easy to verify.
multica-ai/andrej-karpathy-skills
skill-creator
Lets the agent create, modify, and optimize skills. Useful for testing skill performance and improving their accuracy.
anthropics/skills
ponytail-debt
Lists all code shortcuts ('shortcut:') left for later. It helps to see what still needs to be fixed in the project.
DietrichGebert/ponytail