Vererbung des Legacy-Stils (Inherit Legacy Style)
Verhindert KI-generierte Stil-Abweichungen in Legacy-Projekten, indem die Codebasis auf implizite Konventionen in 4 Meta-Architektur-Dimensionen untersucht, Konflikte nacheinander mit dem Benutzer gelöst und der Konsens in einer durchsetzbaren .ai-style-rules.md-Datei festgehalten wird. Vollständig sprach- und framework-unabhängig.
Wann aktivieren
- Benutzer gibt
/inherit-legacy-styleein - Benutzer erwähnt die Integration von KI in ein manuell geschriebenes Legacy-Projekt
- Benutzer befürchtet, dass KI-generierter Code von den bestehenden Projektkonventionen „abdriftet“
- Benutzer möchte die impliziten Codierungsregeln seines Projekts extrahieren und kodifizieren
Wann anwenden
Wenden Sie dieses Skill an, wenn Sie den Legacy-Projektstil bewahren und KI-generierte Stil-Abweichungen verhindern möchten. Siehe Wann aktivieren oben für die Auslösebedingungen.
Voraussetzungen
- Git (empfohlen; Projekte ohne Git greifen im inkrementellen Modus auf Dateizeitstempel zurück)
- Lese-/Schreibzugriff auf das Projektverzeichnis (erzeugt
.ai-style-rules.mdund optionalCLAUDE.md)
Arbeitsablauf
Schritt 0 – Automatische Moduserkennung
Prüfen Sie stillschweigend, ob .ai-style-rules.md im Projektverzeichnis existiert:
| Datei vorhanden? | Modus |
|---|---|
| Nein | Zweig A – Erstmaliger Vollscan |
| Ja | Zweig B – Inkrementelle Prüfung |
Geben Sie den Modus in einer Zeile bekannt und fahren Sie fort – fragen Sie den Benutzer nie nach der Wahl.
Zweig A – Erstmaliger Vollscan
1. Skalierung messen, Scan-Stufe wählen
git ls-files | grep -cE '\.(js|ts|jsx|tsx|vue|py|go|rs|java|kt|rb|php|cs|swift|c|cpp|h)$'
| Stufe | Quelldateien | Strategie |
|---|---|---|
| Klein | ≲ 50 | Vollständiges, gründliches Lesen jeder Quelldatei |
| Mittel | 50–500 | Infrastrukturschicht = vollständig lesen; Geschäftslogikschicht = 2–3 pro Dimension stichprobenartig |
| Groß | ≳ 500 | Strenge Stichproben + Budgetgrenze; zuerst --stat-Zusammenfassung, dann gezieltes Lesen |
2. Scan entlang von 4 Dimensionen
- Datei-Anatomie – Deklarationsreihenfolge innerhalb einer Datei (Importe → Typen → Hauptlogik → Hilfsfunktionen → Export)
- Zustand & Kontrollfluss – Namenskonventionen für asynchronen Zustand, Paginierung, Flags
- Infrastruktur – Wo übergreifende Hilfsfunktionen leben (Interceptor, Formatierer, Middleware)
- Fehlerbehandlung – try/catch vs globaler Interceptor vs Result-Rückgabe; Null-Check-Gewohnheiten
3. Rauschunterdrückung mittels Signalstärke-Schwelle
Bevor Sie den Benutzer unterbrechen, bewerten Sie die Signalstärke:
- Schwaches Signal → automatisch unterdrücken: Minderheit <5 % UND Anzahl <10 → Mehrheit gewinnt, Minderheit wandert in DONTs
- Starkes Signal → genau nachfragen: nahezu ausgeglichene Verteilung oder semantische Abspaltung in einer Kerndimension
- Ausnahme bei kleinen Projekten: Quelldateien ≲50, „3 vs 2“ ist KEINE Mehrheit → genau nachfragen
4. Konflikte einzeln lösen (Grilling-Protokoll)
Für jeden Konflikt mit starkem Signal genau EINE Frage mit 4 Optionen präsentieren:
Beleg:
pathAverwendet Stil X,pathBverwendet Stil Y WARNUNG: Risiko: Die Vermischung beider Stile zerbricht den Projektstil Wählen:1X folgen2Y folgen3Dies ist eine Weiterentwicklung, Regeln aktualisieren4Ich habe eine neue Regel
Aussetzen, bis der Benutzer antwortet, dann mit dem nächsten Konflikt fortfahren. Niemals Fragen stapeln.
5. .ai-style-rules.md erzeugen mit drei Pflichtabschnitten:
- [Goldene Dateien] – reale Beispielpfade, annotiert mit dem, was sie demonstrieren
- [Namens- & Zustands-/Kontrollflussregeln] – konkrete, überprüfbare Konventionen
- [DONTs] – Anti-Patterns, die sich nicht ausbreiten dürfen
6. Den persistenten Hook installieren
Den Benutzer nach der Durchsetzungsstärke fragen (AskUserQuestion verwenden):
| Option | Mechanismus |
|---|---|
| 1 Sanfter Hook (empfohlen) | @.ai-style-rules.md-Referenz in die Projekt-CLAUDE.md schreiben |
| 2 Harter Hook | Sanfter Hook + `PreToolUse[Write |
| 3 Kein Hook | Regeldatei bleibt bestehen; Benutzer greift manuell darauf zurück |
Zweig B – Inkrementelle Prüfung
- Vorhandene
.ai-style-rules.mdlesen; falls sie einen Commit-Fingerabdruck enthält,git diff <letzter_hash> HEAD --statausführen, um das Delta zu ermitteln - Aktuelle Git-Änderungen lesen (
git log -3 --stat→ verdächtige Dateien bei Bedarf inspizieren) - Bei übermäßig großen Diffs (>hunderte Dateien): nur
--stat-Zusammenfassung + Stichproben der größten Änderungen - Neuen Code mit den aufgezeichneten Regeln vergleichen → Konflikte durchlaufen das Grilling-Protokoll
- Entwicklungshistorie am Ende von
.ai-style-rules.mdanhängen (niemals alte Regeln überschreiben)
Durchsetzung pro Interaktion
Wenn .ai-style-rules.md im Kontext ist (über CLAUDE.md geladen), muss jede Code-Schreibaufgabe mit einer Konformitätserklärung in der Argumentationskette beginnen, die das befolgte Beispiel und die vermiedenen DONTs benennt.
Funktionsweise
Dieses Skill erkennt automatisch, ob es sich um einen erstmaligen oder einen inkrementellen Durchlauf handelt, basierend auf dem Vorhandensein von .ai-style-rules.md:
- Erstmalig (Zweig A) – Misst den Projektumfang, scannt die Codebasis entlang von 4 Meta-Architektur-Dimensionen (Datei-Anatomie, Zustand & Kontrollfluss, Infrastruktur, Fehlerbehandlung), wendet Rauschunterdrückung mittels Signalstärke-Schwelle an, um schwache Konflikte zu unterdrücken, löst starke Signalkonflikte einzeln mit dem Benutzer, erzeugt
.ai-style-rules.mdmit Goldenen Dateien / Namensregeln / DONTs und bietet optionale Durchsetzungshooks an. - Inkrementell (Zweig B) – Liest vorhandene Regeln, prüft aktuelle Git-Diffs auf neue oder widersprüchliche Muster, führt dasselbe Einzelkonflikt-Grilling-Protokoll für gefundene Konflikte durch und hängt Entwicklungshistorien an, ohne vorhandene Regeln zu überschreiben.
- Durchsetzung pro Interaktion – Wenn über
CLAUDE.mdeingebunden, beginnt jede Code-Schreibaufgabe mit einer Konformitätserklärung, die das befolgte Beispiel und die vermiedenen DONTs benennt.
Ausgabespezifikation
.ai-style-rules.mdim Projektverzeichnis (mit Commit-Fingerabdruck und Skalierungsstufe im Header)- Optional
CLAUDE.mdmit@.ai-style-rules.md-Referenz - Entwicklungshistorien, angehängt als
### [YYYY-MM-DD] Entwicklungshistorie des Stils-Einträge
Anti-Patterns
- FEHLER: Überspringen Sie NICHT den Schritt zur Skalierungsmessung – die Stichprobenentnahme eines 30-Dateien-Projekts „unterversorgt“ es; das vollständige Scannen eines 5.000-Dateien-Repositorys sprengt den Rahmen
- FEHLER: Stapeln Sie NICHT mehrere Konfliktfragen auf einmal – das Grilling erfolgt strikt einzeln
- FEHLER: Überschreiben Sie NICHT alte Regeln im inkrementellen Modus – hängen Sie immer Entwicklungshistorien an
- FEHLER: Gehen Sie NICHT standardmäßig vom „harten Hook“ aus, ohne zu fragen – die Durchsetzungsstärke liegt in der Entscheidung des Benutzers
- FEHLER: Bewerten Sie NICHT die Syntax oder die Qualität des Technologie-Stacks – dieses Skill richtet nur die Meta-Architektur aus
- FEHLER: Kopieren Sie NICHT Bugs aus Beispiel-Dateien – verwenden Sie die Struktur wieder, markieren Sie Mängel
Bewährte Praktiken
- Geben Sie den erkannten Modus (erstmalig vs. inkrementell) und die Skalierungsstufe in einer Zeile vor dem Scan bekannt
- Lesen Sie bei großen Projekten zuerst
--stat-Zusammenfassungen, dann gezieltReadbei verdächtigen Dateien - Lassen Sie die Signalschwelle das Rauschen verarbeiten – eine 843-zu-8-Namensaufteilung sollte sich ohne Benutzerunterbrechung automatisch auflösen
- Neigen Sie bei Unsicherheit über die Signalstärke eher zum Fragen
- Der sanfte Hook in
CLAUDE.md(@.ai-style-rules.md) ist normalerweise ausreichend; der harte Hook nur, wenn der Benutzer eine mechanische Durchsetzung wünscht
Verwandte Skills
init– Initialisiert eine neueCLAUDE.mdmit Codebasis-Dokumentationcode-review– Überprüft Diffs auf Korrektheit und Stil-Problemesimplify– Überprüft Code auf Wiederverwendungs- und Vereinfachungsmöglichkeiten
Beispiele
-
Erstmaliges Onboarding
- Benutzer: „Hilf mir, KI in diese ältere Codebasis zu integrieren, ohne ihren Stil zu ändern.“
- Aktion: Zweig A – Vollscan ausführen → Skalierung messen → 4 Dimensionen scannen → Konflikte gründlich prüfen →
.ai-style-rules.mderzeugen → Hook-Stärke anbieten (sanft/hart/kein).
-
Inkrementelles Update nach Teamwechsel
- Benutzer: „Wir haben ein neues Modul hinzugefügt; halte die bestehenden Stilregeln intakt.“
- Aktion: Zweig B – Inkrementelle Prüfung ausführen → Git-Deltas mit aufgezeichneten Regeln vergleichen → neue Konflikte gründlich prüfen → Entwicklungshistorie anhängen, ohne zu überschreiben.
-
Durchsetzung von DONTs über CLAUDE.md
- Benutzer: „Stelle sicher, dass aller neue Code konsistent mit den Projektregeln bleibt.“
- Aktion: Sanfter Hook installiert →
.ai-style-rules.mdwird jede Sitzung automatisch geladen → jede Code-Schreibaufgabe beginnt mit Konformitätserklärung, verwendet Beispielmuster wieder und vermeidet DONTs.