option

search-first

affaan-m/ECC affaan-m/ECC

Avant de rédiger du code personnalisé, recherchez les outils, bibliothèques et modèles existants en faisant appel à un agent de recherche.

...Développer tout
0
Heure mise à jour 2 octobre 2026

/search-first — Recherchez avant de coder

Systématise le processus consistant à « rechercher des solutions existantes avant de se lancer dans la mise en œuvre ».

Déclencheur

Utilisez cette compétence lorsque :

  • Vous commencez à développer une nouvelle fonctionnalité pour laquelle il existe probablement déjà des solutions
  • Vous ajoutez une dépendance ou une intégration
  • L'utilisateur demande « d'ajouter la fonctionnalité X » et que vous vous apprêtez à écrire du code
  • Avant de créer un nouvel utilitaire, une nouvelle fonction d'aide ou une nouvelle abstraction

Processus

┌─────────────────────────────────────────────┐
│  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               │
└─────────────────────────────────────────────┘

Matrice de décision

Signal Action
Correspondance exacte, bien entretenu, MIT/Apache Adopter — installer et utiliser directement
Correspondance partielle, bonnes bases Étendre — installer + écrire un wrapper léger
Plusieurs correspondances faibles Composer — combiner 2 à 3 petits paquets
Aucune solution adaptée trouvée Construire — écrire un code sur mesure, mais en s’appuyant sur la recherche

Mode d’emploi

Étape 0 : Vérification préalable de la disponibilité des outils

Il s’agit d’un guide destiné aux agents, et non d’un script d’installation exécutable. Vérifiez uniquement les canaux pertinents pour la tâche et le projet en cours.

Canal Vérification S'il manque
Recherche dans le référentiel rg --files et les requêtes rg requêtes ciblées Préciser que seuls les fichiers visibles ont été inspectés
Registre des paquets npm --version, python -m pip --versionou gestionnaire de paquets du projet Utiliser la recherche sur le site web ou dans la documentation et éviter de prétendre à une couverture du registre
CLI GitHub gh auth status Utiliser uniquement l'historique Git public ou local
Outils MCP/docs Liste des outils disponibles ou configuration MCP locale Recourir à la recherche dans la documentation officielle ou sur le Web
Répertoire des compétences ls ~/.claude/skills ~/.codex/skills le cas échéant Supposons qu'aucun catalogue de compétences local ne soit disponible

Mode rapide (en ligne)

Avant d'écrire un utilitaire ou d'ajouter une fonctionnalité, posez-vous mentalement les questions suivantes :

  1. Cela existe-t-il déjà dans le dépôt ? → rg en passant d’abord en revue les modules et tests pertinents
  2. S'agit-il d'un problème courant ? → Effectuez une recherche sur npm/PyPI
  3. Existe-t-il un MCP pour cela ? → Vérifiez ~/.claude/settings.json et effectuez une recherche
  4. Existe-t-il une compétence pour cela ? → Vérifier ~/.claude/skills/
  5. Existe-t-il une implémentation ou un modèle sur GitHub ? → Effectuez une recherche de code sur GitHub pour trouver des logiciels libres maintenus avant d'écrire du code entièrement nouveau

Mode complet (agent)

Pour les fonctionnalités non triviales, lancez l’agent de recherche :

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
")

Les anciennes documentations du code Claude peuvent appeler cela Task(...); utilisez le nom actuel de l’agent/sous-agent fourni par le harnais actif.

Raccourcis de recherche par catégorie

Outils de développement

  • Analyse syntaxique → eslint, ruff, textlint, markdownlint
  • Mise en forme → prettier, black, gofmt
  • Tests → jest, pytest, go test
  • Pré-commit → husky, lint-staged, pre-commit

Intégration IA/LLM

  • SDK Claude → Context7 pour les dernières documentations
  • Gestion des invites → Vérifier les serveurs MCP
  • Traitement des documents → unstructured, pdfplumber, mammoth

Données et API

  • Clients HTTP → httpx (Python), ky/undici (Node)
  • Validation → zod (TS), pydantic (Python)
  • Base de données → Vérifier d'abord les serveurs MCP

Contenu et publication

  • Traitement Markdown → remark, unified, markdown-it
  • Optimisation des images → sharp, imagemin

Points d'intégration

Avec l’agent de planification

Le planificateur doit appeler le chercheur avant la phase 1 (révision de l'architecture) :

  • Le « researcher » identifie les outils disponibles
  • Le planificateur les intègre dans le plan de mise en œuvre
  • Évite ainsi de « réinventer la roue » dans le plan

Avec l’agent architecte

L’architecte doit consulter le chercheur pour :

  • Les décisions relatives à la pile technologique
  • Identification des modèles d’intégration
  • Les architectures de référence existantes

Avec une compétence en recherche itérative

Combiner ces éléments pour une découverte progressive :

  • Cycle 1 : Recherche étendue (npm, PyPI, MCP)
  • Cycle 2 : Évaluation détaillée des meilleurs candidats
  • Cycle 3 : Tester la compatibilité avec les contraintes du projet

Exemples

Exemple 1 : « Ajouter une vérification des liens morts »

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

Exemple 2 : « Ajouter un wrapper de client HTTP »

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

Exemple 3 : « Ajouter un linter pour les fichiers de configuration »

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-modèles

  • Se précipiter sur le code : écrire un utilitaire sans vérifier s’il en existe déjà un
  • Ignorer le MCP : ne pas vérifier si un serveur MCP fournit déjà cette fonctionnalité
  • Ignorer silencieusement : signaler « rien trouvé » lorsqu’un canal de recherche n’était pas disponible
  • Personnalisation excessive : encapsuler une bibliothèque à tel point qu’elle perd ses avantages
  • Gonflement des dépendances : installer un paquet volumineux pour une seule petite fonctionnalité
Voir sur GitHub
---
name: search-first
description: Research existing tools, libraries, and patterns before writing custom code by invoking a researcher agent.
---

# /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:

0. Does this already exist in the repo? → `rg` through relevant modules/tests first
1. Is this a common problem? → Search npm/PyPI
2. Is there an MCP for this? → Check `~/.claude/settings.json` and search
3. Is there a skill for this? → Check `~/.claude/skills/`
4. 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

Tous les fichiers

1 fichiers

Installer search-first

Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.

Télécharger le ZIP

Clonez le dépôt et copiez les fichiers de compétence dans votre projet.

git clone https://github.com/affaan-m/ECC/tree/main/skills/search-first # Copy SKILL.md to your .claude/skills/ directory

Copier Copier
Configuration rapide: Copiez le dossier de la compétence dans .claude/skills/ Claude détectera automatiquement la compétence et l'utilisera
Dépôt affaan-m/ECC

Compétences similaires

airtable-automation
Heure mise à jour 29 juin 2026
seo-programmatic
Heure mise à jour 29 juin 2026
notion-automation
Heure mise à jour 29 juin 2026
fairdb-backup-manager
Heure mise à jour 29 juin 2026
OR