search-first
147
总安装量
147
周安装量
#3173
全站排名
安装命令
npx skills add https://github.com/affaan-m/everything-claude-code --skill search-first
Agent 安装分布
codex
140
opencode
137
gemini-cli
136
amp
135
github-copilot
135
cursor
135
Skill 文档
/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
âââââââââââââââââââââââââââââââââââââââââââââââ
â 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
Quick Mode (inline)
Before writing a utility or adding functionality, mentally run through:
- 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 template? â Search GitHub
Full Mode (agent)
For non-trivial functionality, launch the researcher agent:
Task(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
")
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/got(Node) - Validation â
zod(TS),pydantic(Python) - Database â Check for MCP servers first
Content & Publishing
- Markdown processing â
remark,unified,markdown-it - Image optimization â
sharp,imagemin
Integration Points
With planner agent
The planner should invoke researcher before Phase 1 (Architecture Review):
- Researcher identifies available tools
- Planner incorporates them into the implementation plan
- Avoids “reinventing the wheel” in the plan
With architect agent
The architect should consult researcher for:
- Technology stack decisions
- Integration pattern discovery
- Existing reference architectures
With iterative-retrieval skill
Combine for progressive discovery:
- Cycle 1: Broad search (npm, PyPI, MCP)
- Cycle 2: Evaluate top candidates in detail
- Cycle 3: Test compatibility with project constraints
Examples
Example 1: “Add dead link checking”
Need: Check markdown files for broken links
Search: npm "markdown dead link checker"
Found: textlint-rule-no-dead-link (score: 9/10)
Action: ADOPT â npm install textlint-rule-no-dead-link
Result: Zero custom code, battle-tested solution
Example 2: “Add HTTP client wrapper”
Need: Resilient HTTP client with retries and timeout handling
Search: npm "http client retry", PyPI "httpx retry"
Found: got (Node) with retry plugin, httpx (Python) with built-in retry
Action: ADOPT â use got/httpx directly with retry config
Result: Zero custom code, production-proven libraries
Example 3: “Add config file linter”
Need: Validate project config files against a schema
Search: npm "config linter schema", "json schema validator cli"
Found: ajv-cli (score: 8/10)
Action: ADOPT + EXTEND â install ajv-cli, write project-specific schema
Result: 1 package + 1 schema file, no custom validation logic
Anti-Patterns
- Jumping to code: Writing a utility without checking if one exists
- Ignoring MCP: Not checking if an MCP server already provides the capability
- Over-customizing: Wrapping a library so heavily it loses its benefits
- Dependency bloat: Installing a massive package for one small feature