/search-first — Recherchiere, bevor du implementierst
Systematisiert den Workflow „Suche nach existierenden Lösungen vor der Implementierung“.
Auslöser
Verwende dieses Skill, wenn:
- Du ein neues Feature beginnst, für das wahrscheinlich schon Lösungen existieren
- Du eine Abhängigkeit oder Integration hinzufügst
- Der Benutzer „Füge X-Funktionalität hinzu“ sagt und du kurz davor bist, Code zu schreiben
- Bevor du ein neues Utility, Helper oder eine Abstraktion erstellst
Workflow
┌─────────────────────────────────────────────┐
│ 0. TOOL-VERFÜGBARKEITS-CHECK │
│ Prüfe Suchkanäle, bevor du dich auf sie │
│ verlässt; melde übersprungene Kanäle │
├─────────────────────────────────────────────┤
│ 1. BEDARFSANALYSE │
│ Definiere, welche Funktionalität benötigt│
│ Bestimme Sprach-/Framework-Einschränkungen│
├─────────────────────────────────────────────┤
│ 2. PARALLELE SUCHE (Researcher-Agent) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ npm / │ │ MCP / │ │ GitHub / │ │
│ │ PyPI │ │ Skills │ │ Web │ │
│ └──────────┘ └──────────┘ └──────────┘ │
├─────────────────────────────────────────────┤
│ 3. BEWERTUNG │
│ Bewerte Kandidaten (Funktion, Pflege, │
│ Community, Docs, Lizenz, Abhängigkeiten) │
├─────────────────────────────────────────────┤
│ 4. ENTSCHEIDUNG │
│ ┌─────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Über- │ │ Erweitern│ │ Eigen │ │
│ │ nehmen │ │ /Einhüllen│ │ bauen │ │
│ └─────────┘ └──────────┘ └─────────┘ │
├─────────────────────────────────────────────┤
│ 5. IMPLEMENTIERUNG │
│ Paket installieren / MCP konfigurieren / │
│ Minimalen benutzerdefinierten Code │
└─────────────────────────────────────────────┘
Entscheidungsmatrix
| Signal | Aktion |
|---|---|
| Exakte Übereinstimmung, gut gepflegt, MIT/Apache | Übernehmen — installieren und direkt verwenden |
| Teilweise Übereinstimmung, gute Basis | Erweitern — installieren + dünnen Wrapper schreiben |
| Mehrere schwache Übereinstimmungen | Kombinieren — 2-3 kleine Pakete kombinieren |
| Nichts Geeignetes gefunden | Bauen — benutzerdefiniert, aber informiert durch Recherche |
So verwendest du es
Schritt 0: Tool-Verfügbarkeits-Check
Dies ist eine Agenten-Anleitung, kein ausführbares Setup-Skript. Prüfe nur die Kanäle, die für die Aufgabe und das vor dir liegende Projekt relevant sind.
| Kanal | Prüfung | Bei Fehlen |
|---|---|---|
| Repository-Suche | rg --files und gezielte rg-Abfragen | Gib an, dass nur sichtbare Dateien geprüft wurden |
| Paket-Registry | npm --version, python -m pip --version oder Projekt-Paketmanager | Verwende Web-/Docs-Suche und behaupte keine Registry-Abdeckung |
| GitHub CLI | gh auth status | Verwende nur öffentliches Web oder lokale Git-Historie |
| MCP-/Docs-Tools | Verfügbare Tool-Liste oder lokale MCP-Konfiguration | Falle zurück auf offizielle Docs/Web-Suche |
| Skills-Verzeichnis | ls ~/.claude/skills ~/.codex/skills wo zutreffend | Sage, dass kein lokales Skill-Verzeichnis verfügbar war |
Schnellmodus (inline)
Bevor du ein Utility schreibst oder Funktionalität hinzufügst, führe gedanklich durch:
- Existiert das bereits im Repository? →
rgdurch relevante Module/Tests zuerst - Ist das ein häufiges Problem? → Suche auf npm/PyPI
- Gibt es ein MCP dafür? → Prüfe
~/.claude/settings.jsonund suche - Gibt es ein Skill dafür? → Prüfe
~/.claude/skills/ - Gibt es eine GitHub-Implementierung/-Vorlage? → Führe eine GitHub-Code-Suche nach gepflegtem OSS durch, bevor du neuen Code schreibst
Vollmodus (Agent)
Starte für nicht-triviale Funktionalitäten den Researcher-Agenten:
Agent(subagent_type="general-purpose", prompt="
Recherchiere existierende Tools für: [BESCHREIBUNG]
Sprache/Framework: [SPRACHE]
Einschränkungen: [BELIEBIG]
Suche: npm/PyPI, MCP-Server, Claude Code Skills, GitHub
Gib zurück: Strukturierter Vergleich mit Empfehlung
")
Ältere Claude Code-Dokumente nennen dies vielleicht Task(...), verwende den aktuellen
Agent/Subagent-Toolnamen, der vom aktiven Harness bereitgestellt wird.
Suchkürzel nach Kategorie
Entwicklungswerkzeuge
- Linting →
eslint,ruff,textlint,markdownlint - Formatierung →
prettier,black,gofmt - Testen →
jest,pytest,go test - Pre-Commit →
husky,lint-staged,pre-commit
KI/LLM-Integration
- Claude SDK → Context7 für aktuellste Dokumentation
- Prompt-Verwaltung → Prüfe MCP-Server
- Dokumentenverarbeitung →
unstructured,pdfplumber,mammoth
Daten & APIs
- HTTP-Clients →
httpx(Python),ky/undici(Node) - Validierung →
zod(TS),pydantic(Python) - Datenbank → Prüfe zuerst MCP-Server
Inhalte & Veröffentlichung
- Markdown-Verarbeitung →
remark,unified,markdown-it - Bildoptimierung →
sharp,imagemin
Integrationspunkte
Mit Planner-Agent
Der Planner sollte den Researcher vor Phase 1 (Architektur-Review) aufrufen:
- Researcher identifiziert verfügbare Tools
- Planner integriert sie in den Implementierungsplan
- Vermeidet „Neuerfindung des Rades“ im Plan
Mit Architect-Agent
Der Architect sollte den Researcher konsultieren für:
- Technologie-Stack-Entscheidungen
- Entdeckung von Integrationsmustern
- Existierende Referenzarchitekturen
Mit iterative-retrieval Skill
Kombiniere für progressive Entdeckung:
- Zyklus 1: Breite Suche (npm, PyPI, MCP)
- Zyklus 2: Top-Kandidaten detailliert bewerten
- Zyklus 3: Kompatibilität mit Projektbeschränkungen testen
Beispiele
Beispiel 1: „Tote-Link-Prüfung hinzufügen“
Bedarf: Markdown-Dateien auf defekte Links prüfen
Suche: npm "markdown dead link checker"
Gefunden: textlint-rule-no-dead-link (Bewertung: 9/10)
Aktion: ÜBERNEHMEN — npm install textlint-rule-no-dead-link
Ergebnis: Null benutzerdefinierter Code, kampferprobtes 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 eingebauter Wiederholung
Aktion: ÜBERNEHMEN — got/httpx direkt mit Retry-Konfiguration verwenden
Ergebnis: Null benutzerdefinierter Code, produktionserprobte Bibliotheken
Beispiel 3: „Konfigurationsdatei-Linter hinzufügen“
Bedarf: Projekt-Konfigurationsdateien gegen ein Schema validieren
Suche: npm "config linter schema", "json schema validator cli"
Gefunden: ajv-cli (Bewertung: 8/10)
Aktion: ÜBERNEHMEN + ERWEITERN — ajv-cli installieren, projektspezifisches Schema schreiben
Ergebnis: 1 Paket + 1 Schema-Datei, keine benutzerdefinierte Validierungslogik
Anti-Patterns
- Direkt zum Code springen: Ein Utility schreiben, ohne zu prüfen, ob eines existiert
- MCP ignorieren: Nicht prüfen, ob ein MCP-Server die Fähigkeit bereits bereitstellt
- Stilles Überspringen: „Nichts gefunden“ melden, obwohl ein Suchkanal nicht verfügbar war
- Übermäßiges Anpassen: Eine Bibliothek so stark einhüllen, dass sie ihre Vorteile verliert
- Abhängigkeitsaufblähung: Ein massives Paket für eine kleine Funktion installieren