Agent skill

Search First

by affaan-m in affaan-m/ECC

Research-before-coding workflow. An agent skill from affaan-m/ECC.

MITAuto-check passedDevelopment

Install Search First

skills CLI
$ npx skills add affaan-m/ECC --skill search-first -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install affaan-m/ECC search-first --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.kiro/skills/search-first .claude/skills/search-first && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
search-first
GitHub stars
276k
Token cost
~1.7k tokens
SKILL.md length
528 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

Research-before-coding workflow. An agent skill from affaan-m/ECC.

  • Works in 5 steps: Does this already exist in the repo? →… → Is this a common problem? → Search… → Is there an MCP for this? → Check MCP… → …
  • Starting new features
  • SKILL.md covers Trigger, Scope and Approval Rules, Workflow and Decision Matrix, plus 6 more sections
  • Calls go

What it does

Search First is an agent skill from affaan-m/ECC. Research-before-coding workflow. Search for existing tools, libraries, and patterns before writing custom code. Systematizes the "search for existing solutions before implementing" approach. Use when starting new features or adding functionality.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Linting and formatting. It works with Model Context Protocol. The repository describes itself as: The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. The licence is MIT.

When your agent uses it

  • Starting new features
  • Adding functionality

Example prompts

  • “search for existing solutions before implementing”
  • “/search-first”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Does this already exist in the repo? → Search through relevant modules/tests first
  2. Is this a common problem? → Search npm/PyPI
  3. Is there an MCP for this? → Check MCP configuration and search
  4. Is there a skill for this? → Check available skills
  5. Is there a GitHub implementation/template? → Run GitHub code search for maintained OSS before writing net-new code

What it can do on your machine

Read from SKILL.md and the folder at commit 4eb71d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Search First loads about 1.7k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 528 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from affaan-m/ECC at commit 4eb71d9, republished under its MIT licence (© affaan-m). 528 words, ~1,723 tokens.

Download SKILL.mdSave it as .claude/skills/search-first/SKILL.md (or your agent's skills folder).
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" approach. Use when starting new features or adding functionality.
metadata.origin
ECC

/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

Scope and Approval Rules

Default to read-only research: inspect the repo, package metadata, docs, and public examples before recommending a dependency or integration. Do not install packages, configure MCP servers, publish artifacts, open PRs, or make external write actions from this skill unless the user has explicitly approved that action in the current task.

When a candidate requires credentials, paid services, network writes, or project-wide config changes, return a recommendation and approval checkpoint instead of applying it directly.

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. APPROVAL CHECKPOINT / IMPLEMENT         │
│     Recommend package / MCP / custom code   │
│     Apply only after explicit approval      │
└─────────────────────────────────────────────┘

Decision Matrix

SignalAction
Exact match, well-maintained, MIT/ApacheAdopt — recommend the package and request approval before install or config changes
Partial match, good foundationExtend — recommend the package plus a thin wrapper, then wait for approval before applying
Multiple weak matchesCompose — propose 2-3 small packages and the integration plan before installing anything
Nothing suitable foundBuild — explain why custom code is warranted, then implement only within the approved task scope

How to Use

Quick Mode (inline)

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

  1. Does this already exist in the repo? → Search through relevant modules/tests first
  2. Is this a common problem? → Search npm/PyPI
  3. Is there an MCP for this? → Check MCP configuration and search
  4. Is there a skill for this? → Check available skills
  5. Is there a GitHub implementation/template? → Run GitHub code search for maintained OSS before writing net-new code
Full Mode (subagent)

For non-trivial functionality, delegate to a research-focused subagent:

Invoke subagent with prompt:
  "Research existing tools for: [DESCRIPTION]
   Language/framework: [LANG]
   Constraints: [ANY]

   Search: npm/PyPI, MCP servers, 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
Show full SKILL.md (214 more words)Show less
AI/LLM Integration
  • Claude SDK → Check 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

Need: Check markdown files for broken links
Search: npm "markdown dead link checker"
Found: textlint-rule-no-dead-link (score: 9/10)
Action: ADOPT — recommend `textlint-rule-no-dead-link` and ask before installing it
Result: Zero custom code if approved, 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 — recommend `got`/`httpx` directly with retry config and ask before changing dependencies
Result: Zero custom code if approved, 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 — recommend `ajv-cli` plus a project-specific schema, then wait for approval before install/write
Result: 1 package + 1 schema file if approved, 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

When to Use This Skill

  • Starting new features
  • Adding dependencies or integrations
  • Before writing utilities or helpers
  • When evaluating technology choices
  • Planning architecture decisions

© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .kiro/skills/search-first of affaan-m/ECC.

Open the folder on GitHubat commit 4eb71d9

Compare with similar skills

Search First next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Search First compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Search First this skillaffaan-m/ECC276k—~1.7kAutomated safety check: PassMIT
Ue Code AuthoringJasonMa0012/MooaToon750—~1.9kAutomated safety check: NotesCustom licence
Typescript Styletjx666/vscode-mcp105—~961Automated safety check: PassCustom licence
Vscode MCP Architecturetjx666/vscode-mcp105—~1.5kAutomated safety check: PassCustom licence
Aeon Config Doctoraeonfun/aeon770—~3.3kAutomated safety check: PassMIT
Search FirstaAAaqwq/AGI-Super-Team1057 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Ue Code Authoring

    JasonMa0012/MooaToon

    A skill your agent uses when writing or modifying UE C++ (classes, actors, components, subsystems, interfaces, function libraries) with Rider MCP available.

    750 GitHub stars~1.9k tokensUpdated 23 days ago
    DevelopmentAuto-check: notes
  • Typescript Style

    tjx666/vscode-mcp

    TypeScript code style and repo conventions for VSCode MCP — inference vs explicit types, ESM import suffixes, zod schema contracts, async VSCode/Node APIs, JSON-safe IPC results, JSDoc for public…

    105 GitHub stars~961 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Vscode MCP Architecture

    tjx666/vscode-mcp

    VSCode MCP Bridge project architecture — current monorepo layout, IPC/EventDispatcher flow, per-workspace socket discovery, MCP/CLI adapters, tool filtering, and VSCode extension services.

    105 GitHub stars~1.5k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Aeon Config Doctor

    aeonfun/aeon

    Static linter for an Aeon instance's configuration that catches silent failures such as unquoted schedules, duplicate keys, unconfigured skills and broken MCP references.

    770 GitHub stars~3.3k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Search First

    aAAaqwq/AGI-Super-Team

    Research-before-coding workflow. An agent skill from aAAaqwq/AGI-Super-Team.

    105 GitHub starsUsed in 7 repos~1.4k tokens
    DevelopmentAuto-check passed
  • Chrome Devtools MCP

    managedcode/dotnet-skills

    Use Chrome DevTools MCP from .NET agents and .NET-focused repos to inspect, debug, and automate Chrome through an MCP client.

    486 GitHub stars~2.2k tokensUpdated yesterday
    DevelopmentAuto-check passed

More from affaan-m/ECC

All 682 skills in this repo
  • Skill Stocktake

    affaan-m/ECC

    Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.

    277k GitHub starsUsed in 5 repos~3.1k tokens
    Auto-check passed
  • Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.

    277k GitHub starsUsed in 3 repos~3.5k tokens
    Auto-check: notes
  • Docs Governance

    affaan-m/ECC

    Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.

    277k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Rules Distillation

    affaan-m/ECC

    Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.

    277k GitHub starsUsed in 2 repos~2.3k tokens
    Auto-check passed
  • Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.

    277k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Set an ECC-specific frontend design direction for production UI work.

    277k GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed

Questions about Search First

What does Search First do?

Research-before-coding workflow. An agent skill from affaan-m/ECC. Search First is an agent skill from affaan-m/ECC. Research-before-coding workflow.

When should I use Search First?

Search First fits situations like: starting new features; adding functionality.

How do I install Search First in Claude Code?

Run `npx skills add affaan-m/ECC --skill search-first -a claude-code`. Or copy the skill folder (.kiro/skills/search-first in affaan-m/ECC) into .claude/skills/search-first in your project. Claude Code loads it when a task matches its description.

How do I install Search First in Codex?

Run `npx skills add affaan-m/ECC --skill search-first -a codex`. Or copy the skill folder (.kiro/skills/search-first in affaan-m/ECC) into .agents/skills/search-first in your project. Codex loads it when a task matches its description.

Can I use Search First in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill search-first -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/search-first, .gemini/skills/search-first, .github/skills/search-first and .opencode/skills/search-first in your project.

What does Search First need to run?

Going by SKILL.md and its folder, Search First needs the command-line tools its instructions call (go).

Does Search First access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Search First safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Search First use?

Search First is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Search First use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Search First?

Skills that share tags, products or a category with Search First: Ue Code Authoring (JasonMa0012/MooaToon, 750 stars), Typescript Style (tjx666/vscode-mcp, 105 stars), Vscode MCP Architecture (tjx666/vscode-mcp, 105 stars) and Aeon Config Doctor (aeonfun/aeon, 770 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Search First?

affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,111 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 10, 2026.

Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.