finding-duplicate-functions
von obraNutze die finding-duplicate-functions-Skill, um semantische Duplikate zu erkennen: Funktionen, die dieselbe Aufgabe unter unterschiedlichen Namen oder mit unterschiedlichen Implementierungen erledigen. Sie ist für LLM-generierte und schnell wachsende JavaScript- oder TypeScript-Codebasen konzipiert und unterstützt finding-duplicate-functions für Code Review, Konsolidierungsplanung und Aufräumarbeit vor Refactorings.
Diese Skill erreicht 78/100 und ist damit ein solider Kandidat für Verzeichniseinträge, wenn Nutzer einen wiederholbaren Workflow zum Finden semantischer Funktionsduplikate brauchen. Das Repository liefert einen klaren Anwendungsfall, einen mehrstufigen Prozess und unterstützende Skripte, die im Vergleich zu einem generischen Prompt für weniger Rätselraten sorgen. Gleichzeitig ist es noch recht spezialisiert und bietet weder einen Installationsbefehl noch umfassendere Betriebsdokumentation.
- Klarer Anwendungsfall: explizit für das Prüfen von Codebasen auf semantische Funktionsduplikate, besonders in LLM-generierten Codebasen.
- Konkreter Workflow: extrahieren -> kategorisieren -> aufteilen -> erkennen -> berichten, mit jeweils passenden Skripten.
- Gute operative Hinweise: enthält Tool- und Modellhinweise (haiku für Kategorisierung, opus für semantische Analyse) sowie Erwartungen an die Ausgabe.
- Enger Fokus: auf TypeScript-/JavaScript-Funktionsanalyse ausgerichtet und daher für Nicht-JS-Codebasen womöglich ungeeignet.
- Kein Installationsbefehl und keine breitere Einrichtungsdokumentation in SKILL.md, daher müssen Nutzer selbst ableiten, wie sie die Skripte in ihren Workflow einbinden.
Überblick über den Skill finding-duplicate-functions
Der Skill finding-duplicate-functions hilft dir dabei, Funktionen zu erkennen, die dieselbe Aufgabe erledigen, aber unterschiedlich benannt sind oder unterschiedlich implementiert wurden. Er ist besonders nützlich beim Review von LLM-generiertem Code oder schnell wachsenden Codebasen, in denen sich semantische Duplikate schneller ansammeln als klassische Copy-Paste-Duplikate. Wenn du finding-duplicate-functions for Code Review suchst, ist dieser Skill auf Konsolidierungsentscheidungen ausgerichtet, nicht auf Stilfragen.
Wofür dieser Skill gedacht ist
Dieser Skill finding-duplicate-functions ist dafür gemacht, Fälle von „gleiche Absicht, anderer Code“ zu identifizieren: überlappende Helferfunktionen, neu geschriebene Utilities oder fast äquivalente Logik, die über mehrere Dateien verstreut ist. Besonders relevant ist er vor Refactorings, bei Aufräumarbeiten oder nachdem syntaktische Duplikat-Tools wie jscpd exakte Kopien bereits abgefangen haben.
Wer ihn installieren sollte
Installiere den Skill finding-duplicate-functions, wenn du JavaScript- oder TypeScript-Repositories mit vielen kleinen Utilities, generierten Dateien oder mehreren Mitwirkenden reviewst. Er passt gut, wenn du eine wiederholbare Methode brauchst, um zu entscheiden, ob Funktionen zusammengeführt, getrennt belassen oder genauer untersucht werden sollten.
Was ihn unterscheidet
Der entscheidende Unterschied ist der zweistufige Workflow: Zuerst werden Funktionen extrahiert, danach werden sie per LLM-Analyse nach Absicht geclustert. Der Skill ist also darauf ausgelegt, Unsicherheit bei semantischen Duplikaten zu reduzieren – nicht nur übereinstimmende Zeilen zu finden. Der praktische Nutzen: Du kommst schneller von „Dieser Code wirkt redundant“ zu einem überprüfbaren Konsolidierungsplan.
So verwendest du den Skill finding-duplicate-functions
Installation und Workflow-Pfad finden
Nutze den Installationspfad aus dem Skill-Verzeichnis: npx skills add obra/superpowers-lab --skill finding-duplicate-functions. Nach der Installation solltest du mit skills/finding-duplicate-functions/SKILL.md beginnen und dann die Helper-Skripte unter skills/finding-duplicate-functions/scripts/ lesen, weil sie die eigentliche Analyseabfolge definieren. Für einen finding-duplicate-functions-Leitfaden sind diese Skripte wichtiger als die Prosa-Übersicht.
Welche Eingaben der Skill braucht
Der Skill funktioniert am besten, wenn du ein Quellverzeichnis und ein konkretes Review-Ziel angibst. Gute Eingaben nennen den Codebereich, den Grund für die Analyse und eventuelle Ausschlüsse. Zum Beispiel: „Scanne packages/api/src nach doppelten Validation-Helpers vor dem Zusammenführen der Auth-Flows; Testdateien ignorieren und nur Kandidaten mit hoher Sicherheit melden.“ Das ist besser als „finde Duplikate“, weil es Umfang, Absicht und Erwartungen an die Ausgabe festlegt.
Diese Dateien zuerst lesen
Priorisiere scripts/extract-functions.sh, scripts/categorize-prompt.md, scripts/find-duplicates-prompt.md, scripts/prepare-category-analysis.sh und scripts/generate-report.sh. Diese Dateien zeigen das exakte finding-duplicate-functions-Nutzungsmuster: Katalog extrahieren, Funktionen kategorisieren, pro Kategorie aufteilen, semantisch vergleichen und anschließend einen Bericht erzeugen. Wenn du nur eine Datei überfliegst, lies SKILL.md plus scripts/extract-functions.sh, um Eingabeform und Ausschlüsse zu verstehen.
Workflow-Tipps, die das Ergebnis verändern
Behandle den Kategorisierungsschritt als Filter, nicht als Nebensache. Der Skill ist genauer, wenn die Kategorien inhaltlich stimmig sind und genug Funktionen für einen Vergleich enthalten, weil die Duplikaterkennung pro Kategorie läuft. Tests standardmäßig auszuschließen ist für Production-Cleanup meist richtig, aber nimm sie dazu, wenn es um gemeinsame Test-Utilities oder Fixture-Helpers geht. Nutze den erzeugten Bericht als Shortlist für das menschliche Review, nicht als automatischen Refactor-Plan.
FAQ zum Skill finding-duplicate-functions
Ist das besser als ein normaler Prompt?
Ja, wenn du einen reproduzierbaren Workflow suchst, um die Absicht hinter duplicate functions zu finden, statt eine einmalige Brainstorming-Antwort zu bekommen. Ein normaler Prompt kann bei Scope-Kontrolle, Dateiauswahl und Confidence-Schwellen scheitern. Der Skill finding-duplicate-functions liefert dir einen Workflow und eine Ausgabeform, die sich im Code Review leichter wiederholen lassen.
Ersetzt er syntaktische Duplikat-Tools?
Nein. Er ergänzt sie. Syntaktische Tools erkennen kopierten Code; dieser Skill erkennt Funktionen, die semantisch ähnlich sind, obwohl die Implementierung anders aussieht. Wenn deine Codebasis bereits Probleme mit exakten Kopien hat, solltest du diese zuerst beheben, damit der semantische Durchlauf fokussiert bleibt.
Ist er anfängerfreundlich?
Ja, wenn du ihm einen Quellbaum geben und beschreiben kannst, was geprüft werden soll. Das Wichtigste für Einsteiger ist zu verstehen, dass die Duplikaterkennung kategoriebasiert ist und von sauberen Eingabegrenzen abhängt. Wenn du unsicher bist, beginne mit einem Paket oder einem Feature-Bereich statt mit dem ganzen Repository.
Wann sollte ich ihn nicht verwenden?
Verwende ihn nicht, wenn du breit angelegte Architekturberatung, einen einmaligen Bugfix oder eine allgemeine Zusammenfassung der Codebasis brauchst. Er ist auch ungeeignet, wenn dein Repository überwiegend aus Nicht-JS/TS-Code besteht, weil das Extraktionsskript auf JavaScript- und TypeScript-Funktionsmuster ausgerichtet ist. Wenn es dir nur um exakte Kopien geht, reicht ein einfacherer Copy-Paste-Detektor aus.
So verbesserst du den Skill finding-duplicate-functions
Umfang enger fassen und das Entscheidungsziel klarer machen
Der größte Qualitätsgewinn entsteht, wenn du die Prüfoberfläche eingrenzt und die gewünschte Aktion klar benennst. Statt nach allen Duplikaten zu fragen, bitte etwa um „Kandidaten für Konsolidierung in src/utils mit Fokus auf hochsichere Zusammenführungen“. Das verbessert die Nutzung von finding-duplicate-functions, weil das Modell dann Funktionen vergleichen kann, die tatsächlich gegeneinander in Betracht kommen.
Die richtigen Gegenbeispiele liefern
Wenn du bereits bestimmte Paare vermutest, nenne sie im Prompt als wahrscheinliche Matches und ergänze, warum sie sich unterscheiden könnten. Beispiel: „Vergleiche parseUserInput, normalizeInput und sanitizeInput; sie überlappen möglicherweise, aber eine Funktion behandelt HTML-Escaping.“ So kann der Skill echte Duplikate von benachbarten Helfern unterscheiden, die nur einen ähnlichen Wortschatz teilen.
Auf die typischen Fehlermuster achten
Das wichtigste Fehlermuster ist Übergruppierung: Funktionen mit ähnlichen Namen, aber unterschiedlichen Geschäftsregeln, werden zu aggressiv zusammengeführt. Das zweite ist Untergruppierung: Kleine Wrapper werden als eigenständig behandelt, obwohl sie sich nur in Parameterform oder Benennung unterscheiden. Gib in beiden Fällen Kontext zu Eingaben, Ausgaben und erwartetem Verhalten, damit das Review die Absicht bewerten kann – nicht nur die äußere Ähnlichkeit.
Vom Bericht zum Refactor iterieren
Nutze nach dem ersten Lauf den Bericht, um eine Kategorie auszuwählen und die Kandidaten mit höchster Sicherheit manuell gegen den Quellcode zu prüfen. Wenn eine Gruppe grenzwertig ist, schärfe die Kategorie nach oder starte mit besseren Kontextzeilen und einer klareren Empfehlungsschwelle erneut. Der beste finding-duplicate-functions-Leitfaden ist iterativ: Nutze die erste Ausgabe, um den Scope zu verfeinern, und prüfe dann den nächsten Ausschnitt der Codebasis erneut.
