/search-first — Recherchiere, bevor du programmierst
Systematisiert den Arbeitsablauf „Suche nach vorhandenen Lösungen, bevor implementiert wird".
Auslöser
Verwende diese Fähigkeit, wenn:
- Eine neue Funktion begonnen wird, die wahrscheinlich bereits existierende Lösungen hat
- Eine Abhängigkeit oder Integration hinzugefügt wird
- Der Benutzer fragt „Füge X-Funktionalität hinzu" und du kurz davor bist, Code zu schreiben
- Bevor eine neue Utility, ein Helper oder eine Abstraktion erstellt wird
Workflow
┌─────────────────────────────────────────────┐
│ 0. TOOL-VERFÜGBARKEIT (PREFLIGHT) │
│ Überprüfe Suchkanäle, bevor du auf sie │
│ vertraust; melde übersprungene Kanäle │
│ ehrlich │
├─────────────────────────────────────────────┤
│ 1. BEDARFSANALYSE │
│ Definiere, welche Funktionalität benötigt│
│ Identifiziere Sprach-/Framework-Einschränkungen │
├─────────────────────────────────────────────┤
│ 2. PARALLELE SUCHE (Researcher-Agent) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ npm / │ │ MCP / │ │ GitHub / │ │
│ │ PyPI │ │ Skills │ │ Web │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────┤
│ 3. BEWERTEN │
│ Bewerte Kandidaten (Funktionalität, │
│ Wartung, Community, Docs, Lizenz, Deps) │
├─────────────────────────────────────────────┤
│ 4. ENTSCHEIDEN │
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Über- │ │ Erweitern│ │ Eigen- │ │
│ │ nehmen │ │ / Kapseln│ │ bau │ │
│ └─────────┘ └──────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 5. IMPLEMENTIEREN │
│ Paket installieren / MCP konfigurieren /│
│ Minimalen eigenen Code schreiben │
└─────────────────────────────────────────────┘
Entscheidungsmatrix
| Signal | Aktion |
|---|---|
| Exakte Übereinstimmung, gut gewartet, MIT/Apache | Übernehmen — installieren und direkt verwenden |
| Teilweise Übereinstimmung, gute Grundlage | Erweitern — installieren + dünne Hülle schreiben |
| Mehrere schwache Übereinstimmungen | Kombinieren — 2-3 kleine Pakete kombinieren |
| Nichts Passendes gefunden | Eigenbau — benutzerdefiniert schreiben, aber durch Recherche informiert |
So wird es verwendet
Schritt 0: Tool-Verfügbarkeitsprüfung (Preflight)
Dies ist eine Anleitung für Agenten, kein ausführbares Setup-Skript. Überprüfe nur die Kanäle, die für die Aufgabe und das aktuelle Projekt relevant sind.
| Kanal | Prüfung | Wenn fehlend |
|---|---|---|
| Repository-Suche | rg --files und gezielte rg-Abfragen | Gib an, dass nur sichtbare Dateien inspiziert wurden |
| Paketregister | npm --version, python -m pip --version oder Project Package Manager | Verwende Web-/Dokumentationssuche und behaupte keine Registerabdeckung |
| GitHub CLI | gh auth status | Verwende nur öffentliches Web oder lokale Git-Historie |
| MCP-/Docs-Tools | Verfügbare Werkzeugliste oder lokale MCP-Konfiguration | Falle zurück auf offizielle Dokumentation/Web-Suche |
| Skills-Verzeichnis | ls ~/.claude/skills ~/.codex/skills wo zutreffend | Sage, dass kein lokaler Skill-Katalog verfügbar war |
Schnellmodus (Inline)
Bevor du eine Utility schreibst oder Funktionalität hinzufügst, gehe mental durch:
- Existiert dies bereits im Repository? → Zuerst
rgdurch relevante Module/Tests - Ist dies ein häufiges Problem? → Suche auf npm/PyPI
- Gibt es einen MCP dafür? → Überprüfe
~/.claude/settings.jsonund suche - Gibt es einen Skill dafür? → Überprüfe
~/.claude/skills/ - Gibt es eine GitHub-Implementierung/-Vorlage? → Führe eine GitHub-Code-Suche nach gewartetem OSS durch, bevor du neuen Code schreibst
Vollmodus (Agent)
Starte für nicht-triviale Funktionalität den Researcher-Agenten:
Agent(subagent_type="general-purpose", prompt="
Recherchiere vorhandene Tools für: [BESCHREIBUNG]
Sprache/Framework: [SPRACHE]
Einschränkungen: [EINSCHRÄNKUNGEN]
Suche: npm/PyPI, MCP-Server, Claude Code Skills, GitHub
Gib zurück: Strukturierter Vergleich mit Empfehlung
")
Ältere Claude-Code-Dokumente können dies als Task(...) bezeichnen; verwende den aktuellen Agent/Subagent-
Tool-Namen, der vom aktiven Harness bereitgestellt wird.
Suchabkürzungen nach Kategorie
Entwicklungswerkzeuge
- Linting →
eslint,ruff,textlint,markdownlint - Formatierung →
prettier,black,gofmt - Testen →
jest,pytest,go test - Pre-commit →
husky,lint-staged,pre-commit
AI/LLM-Integration
- Claude SDK → Context7 für die neuesten Dokumentationen
- Prompt-Verwaltung → MCP-Server prüfen
- Dokumentenverarbeitung →
unstructured,pdfplumber,mammoth
Daten & APIs
- HTTP-Clients →
httpx(Python),ky/undici(Node) - Validierung →
zod(TS),pydantic(Python) - Datenbank → Zuerst nach MCP-Servern suchen
Inhalte & Veröffentlichung
- Markdown-Verarbeitung →
remark,unified,markdown-it - Bildoptimierung →
sharp,imagemin
Integrationspunkte
Mit Planer-Agenten
Der Planer sollte den Researcher vor Phase 1 (Architektur-Review) aufrufen:
- Researcher identifiziert verfügbare Tools
- Planer integriert sie in den Implementierungsplan
- Vermeidet „das Rad neu erfinden" im Plan
Mit Architekten-Agenten
Der Architekt sollte den Researcher für Folgendes konsultieren:
- Technologie-Stack-Entscheidungen
- Entdeckung von Integrationsmustern
- Vorhandene Referenzarchitekturen
Mit iterativer-retrieval-Fähigkeit
Kombiniere für schrittweise Entdeckung:
- Zyklus 1: Breite Suche (npm, PyPI, MCP)
- Zyklus 2: Top-Kandidaten im Detail bewerten
- Zyklus 3: Kompatibilität mit Projekteinschränkungen testen
Beispiele
Beispiel 1: „Toten-Link-Prüfung hinzufügen"
Bedarf: Markdown-Dateien auf tote Links prüfen
Suche: npm "markdown dead link checker"
Gefunden: textlint-rule-no-dead-link (Punktzahl: 9/10)
Aktion: ÜBERNEHMEN — npm install textlint-rule-no-dead-link
Ergebnis: Null eigener Code, battle-getestete Lösung
Beispiel 2: „HTTP-Client-Wrapper hinzufügen"
Bedarf: Robuster HTTP-Client mit Wiederholungen und Timeout-Behandlung
Suche: npm "http client retry", PyPI "httpx retry"
Gefunden: got (Node) mit Retry-Plugin, httpx (Python) mit integrierter Wiederholung
Aktion: ÜBERNEHMEN — got/httpx direkt mit Retry-Konfiguration verwenden
Ergebnis: Null eigener Code, produktionserprobte Bibliotheken
Beispiel 3: „Konfigurationsdatei-Linter hinzufügen"
Bedarf: Projektkonfigurationsdateien gegen ein Schema validieren
Suche: npm "config linter schema", "json schema validator cli"
Gefunden: ajv-cli (Punktzahl: 8/10)
Aktion: ÜBERNEHMEN + ERWEITERN — ajv-cli installieren, projektspezifisches Schema schreiben
Ergebnis: 1 Paket + 1 Schema-Datei, keine benutzerdefinierte Validierungslogik
Anti-Patterns
- Sofort programmieren: Eine Utility schreiben, ohne zu prüfen, ob eine existiert
- MCP ignorieren: Nicht prüfen, ob ein MCP-Server die Fähigkeit bereits bereitstellt
- Stillschweigend überspringen: „Nichts gefunden" melden, obwohl ein Suchkanal nicht verfügbar war
- Übertrieben anpassen: Eine Bibliothek so stark umhüllen, dass sie ihre Vorteile verliert
- Abhängigkeitsaufblähung: Ein massives Paket für eine kleine Funktion installieren