Source profileQuality 87/100

affaan-m/ECC/skills/search-first/SKILL.md

search-first

Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Invokes the researcher agent.

Source repository stars
234,327
Declared platforms
0
Static risk flags
0
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Systematizes the "search for existing solutions before implementing" workflow.

Best for

    Not for

    • Jumping to code: Writing a utility without checking if one exists
    • Ignoring MCP: Not checking if an MCP server already provides the capability

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "skills/search-first"
    Safe inspection promptEditorial

    Inspect the Agent Skill "search-first" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/skills/search-first/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Workflow

      Review the “Workflow” section in the pinned source before continuing.

      Review and apply the “Workflow” source section.
    2. 02

      How to Use

      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.

      Does this already exist in the repo? → rg through relevant modules/tests firstIs this a common problem? → Search npm/PyPIIs there an MCP for this? → Check /.claude/settings.json and search
    3. 03

      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.

      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.
    4. 04

      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

      Starting a new feature that likely has existing solutionsAdding a dependency or integrationThe user asks "add X functionality" and you're about to write code
    5. 05

      Decision Matrix

      Review the “Decision Matrix” section in the pinned source before continuing.

      Review and apply the “Decision Matrix” source section.

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score87/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    skills/search-first/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    /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

    SignalAction
    Exact match, well-maintained, MIT/ApacheAdopt — install and use directly
    Partial match, good foundationExtend — install + write thin wrapper
    Multiple weak matchesCompose — combine 2-3 small packages
    Nothing suitable foundBuild — 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.

    ChannelCheckIf missing
    Repository searchrg --files and targeted rg queriesState that only visible files were inspected
    Package registrynpm --version, python -m pip --version, or project package managerUse web/docs search and avoid claiming registry coverage
    GitHub CLIgh auth statusUse public web or local git history only
    MCP/docs toolsAvailable tool list or local MCP configFall back to official docs/web search
    Skills directoryls ~/.claude/skills ~/.codex/skills where applicableSay no local skill catalog was available

    Quick Mode (inline)

    Before writing a utility or adding functionality, mentally run through:

    1. Does this already exist in the repo? → rg through relevant modules/tests first
    2. Is this a common problem? → Search npm/PyPI
    3. Is there an MCP for this? → Check ~/.claude/settings.json and search
    4. Is there a skill for this? → Check ~/.claude/skills/
    5. 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)
    • 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
    • Silent skipping: Reporting "nothing found" when a search channel was unavailable
    • Over-customizing: Wrapping a library so heavily it loses its benefits
    • Dependency bloat: Installing a massive package for one small feature

    Alternatives

    Compare before choosing