search-first
Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when executing implementation plans with independent tasks in the current session
Formal evaluation framework for Claude Code sessions implementing eval-driven development (EDD) principles
Use when context is growing large, responses are slow, or you need to optimize token budget across system prompt, background processes, and model selection
A comprehensive verification system for Claude Code sessions.
Use when implementing any feature or bugfix, before writing implementation code
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
| name | search-first |
| description | Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. |
Systematizes the "search for existing solutions before implementing" workflow.
Use this skill when:
┌─────────────────────────────────────────────┐
│ 1. NEED ANALYSIS │
│ Define what functionality is needed │
│ Identify language/framework constraints │
├─────────────────────────────────────────────┤
│ 2. PARALLEL SEARCH │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 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 │
└─────────────────────────────────────────────┘
| 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 |
Before writing a utility or adding functionality, mentally run through:
rg through relevant modules/tests first~/.claude/settings.json and search~/.claude/skills/For non-trivial functionality, launch a subagent to research:
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
")
eslint, ruff, textlint, markdownlintprettier, black, gofmtjest, pytest, go testhusky, lint-staged, pre-commitunstructured, pdfplumber, mammothhttpx (Python), ky/got (Node)zod (TS), pydantic (Python)remark, unified, markdown-itsharp, imageminThe planning phase should invoke research before implementation:
Combine for progressive discovery:
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
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
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