CommunityCodierung & Entwicklunggithub.com

diashug/ai-toolkit

Verwenden Sie dieses Skill, wenn der Benutzer nach Optimierung von Code oder nach schnelleren, zuverlässigeren, latenzärmeren, durchsatzstärkeren oder ressourceneffizienteren Anwendungen fragt. Es wird für Profiling und Leistungsaudits ausgelöst; CPU- oder Speicher-Hotspots; langsame Endpunkte; Datenbankabfragen, N+1-Muster, Indizes und Roundtrips; oder Backend/API-Aufruflatenz, Fan-Out und Nebenläufigkeit. Stellen Sie Evidenz her, zielen Sie auf den tatsächlichen Engpass ab und nehmen Sie die kleinste wartbare Änderung vor, die das relevante Ergebnis verbessert, ohne Korrektheit, Zuverlässigkeit oder YAGNI zu schwächen.

Was ist ai-toolkit?

Dieses Skill (diashug/ai-toolkit) befähigt KI-Agenten wie Claude Code, Cursor oder Codex, systematische Code-Optimierungen und Leistungsverbesserungen durchzuführen. Es definiert einen evidenzbasierten Workflow, der Entwickler durch die Schritte Zieldefinition, Basislinien-Messung, Engpass-Suche, kleinste effektive Änderung, Verifikation und Ergebnisberichterstattung führt. Das Skill unterstützt Plattformen wie Claude Code, Cursor, Codex und andere kompatible KI-Agenten. Es ist besonders nützlich für die Optimierung von Datenbankabfragen (N+1, Indizes, Roundtrips), Backend-API-Aufrufen (Redundanz, Parallelisierung, Timeouts) und Laufzeitverhalten (Algorithmik, Speicher, Nebenläufigkeit). Der Fokus liegt auf messbaren Verbesserungen, die Korrektheit, Zuverlässigkeit und Wartbarkeit bewahren – mit klaren Warnungen vor spekulativen Optimierungen oder unnötiger Komplexität.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/diashug/ai-toolkit/tree/HEAD/skills/code-optimization

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Code-Optimierung

Verbessern Sie die für den Benutzer sichtbare Leistung und Zuverlässigkeit, während der Code verständlich und die Betriebskosten angemessen bleiben. Optimieren Sie die vorhandene Arbeitslast; fügen Sie keine Komplexität für hypothetische zukünftige Skalierung hinzu.

Arbeitsablauf

  1. Ziel und Leitplanken definieren. Identifizieren Sie den relevanten Endpunkt, Job, die Abfrage, Arbeitslast und das gewünschte Ergebnis. Wählen Sie nur die Metriken, die wichtig sind: zum Beispiel p95/p99-Latenz, Durchsatz, CPU, Speicher, Allokationsrate, Anzahl Datenbankabfragen, Abhängigkeits-Roundtrips, Fehlerrate oder Sättigung. Bewahren Sie Verhalten, Konsistenz, Sicherheit und bestehende Fehlerverträge. Stellen Sie nur eine gezielte Frage, wenn ein fehlendes Ziel oder eine fehlende Arbeitslast eine fundierte Wahl verhindert; andernfalls leiten Sie aus der Anfrage und dem Code ab, was Sie können.
  2. Eine Basislinie festlegen. Verwenden Sie vorhandene Traces, Profile, Abfragepläne, Metriken, Tests oder einen repräsentativen Benchmark. Halten Sie Eingabe, Umgebung und Nebenläufigkeit vorher und nachher vergleichbar. Behaupten Sie keine Beschleunigung aufgrund von Intuition oder einer einzelnen verrauschten Zeitmessung. Vermeiden Sie es, Auslastungstests oder teure Abfrageanalysen ohne Autorisierung gegen die Produktion durchzuführen.
  3. Den Engpass finden. Verfolgen Sie den Ende-zu-Ende-kritischen Pfad und verwenden Sie Profiling oder Instrumentierung, um CPU-Arbeit, Blockierung, Datenbankzeit, Netzwerkwartezeiten, Serialisierung, Sperrkonflikte und Warteschlangen zu unterscheiden. Überprüfen Sie das tatsächliche Abfrage-/Aufrufmuster und repräsentative Daten. Bevorzugen Sie Evidenz gegenüber großflächiger Bereinigung oder Mikrooptimierung. Wenn der Engpass nicht ermittelt ist, melden Sie die Unsicherheit und schlagen Sie die kleinste sinnvolle Messung vor, bevor Sie invasive Änderungen vornehmen.
  4. Die kleinste effektive Änderung wählen. Optimieren Sie nach Möglichkeit jeweils einen materiellen Engpass. Bewahren Sie Ausgabe, Reihenfolge, Fehlerverhalten, Transaktionssemantik und Sicherheitsprüfungen. Tauschen Sie nicht Korrektheit oder Zuverlässigkeit gegen einen Benchmark-Erfolg ein. Befolgen Sie die Konventionen des Repositorys und vermeiden Sie nicht zusammenhängende Refactorings.
  5. Beide Ergebnisse verifizieren. Führen Sie relevante Korrektheitstests durch und vergleichen Sie dieselbe repräsentative Arbeitslast vorher und nachher. Überprüfen Sie, ob sich die Zielmetrik verbessert hat und dass die Leitplanken – insbesondere Schwanzlatenz, Fehler, Speicher und Abhängigkeitssättigung – nicht zurückgegangen sind. Wenn ein aussagekräftiger Vergleich nicht verfügbar ist, sagen Sie dies und vermeiden Sie es, eine nicht gemessene Änderung als bewiesene Optimierung darzustellen.
  6. Das Ergebnis berichten. Geben Sie kurz den Engpass und die Evidenz, die vorgenommene oder empfohlene Änderung, die Validierung und die gemessene Auswirkung (oder warum sie nicht gemessen werden konnte) sowie etwaige wesentliche Kompromisse an. Priorisieren Sie bei einem Audit- oder Planungsauftrag die Ergebnisse nach Evidenz, wahrscheinlicher Auswirkung, Aufwand und Risiko, anstatt Code zu ändern.

Datenbank- und Datenzugriffsoptimierung

  • Zählen Sie Abfragen und überprüfen Sie ORM-/Datenbankzugriffsmuster. Entfernen Sie N+1-Lese- oder Schreibvorgänge mit einem geeigneten Join, Batch oder satzbasierten Vorgang; verifizieren Sie die Abfrageanzahl und bewahren Sie die Ergebnisreihenfolge und das Verhalten bei fehlenden Datensätzen.
  • Rufen Sie nur benötigte Spalten und Zeilen ab. Verwenden Sie Paginierung oder Streaming für große Ergebnismengen; verschieben Sie geeignete Filterung und Aggregation in die Datenbank, anstatt große Datensätze in den Anwendungsspeicher zu laden.
  • Verwenden Sie den Abfrageplan und echte Prädikate, um Indizes zu rechtfertigen. Überprüfen Sie Selektivität, Sortier-/Join-Bedürfnisse, vorhandene Indizes und Schreib-/Speicher-Overhead. Fügen Sie keine spekulativen oder doppelten Indizes hinzu. Validieren Sie den Plan und die Latenz mit repräsentativen Daten; verwenden Sie ausführungsbasierte Plananalyse nur in einer sicheren Umgebung.
  • Reduzieren Sie unnötige Roundtrips und halten Sie Transaktionen und Sperrbereiche nicht größer als nötig. Schwächen Sie keine Einschränkungen, Isolation, Validierung oder Konsistenz als Abkürzung.
  • Fügen Sie Caching nur hinzu, wenn gemessene Wiederverwendung es rechtfertigt. Definieren Sie Aktualität, Ungültigmachung, Schlüsselbereich und Fehlerverhalten; führen Sie keinen Cache als Standardantwort auf eine langsame Abfrage ein.

Backend- und Serviceaufrufoptimierung

  • Entfernen Sie redundante Aufrufe, bündeln Sie kompatible Anfragen und parallelisieren Sie nur Aufrufe, die wirklich unabhängig sind. Halten Sie die Nebenläufigkeit begrenzt, bewahren Sie erforderliche Reihenfolgen/Abhängigkeiten und berücksichtigen Sie die nachgelagerte Kapazität.
  • Verwenden Sie Clients und Verbindungspools wieder. Setzen Sie Fristen/Timeouts, die zum Anforderungsbudget passen, und geben Sie die Abbruchmeldung weiter, wo unterstützt.
  • Wiederholen Sie nur vorübergehende Fehler, wenn der Vorgang sicher wiederholt werden kann. Begrenzen Sie Versuche und die gesamte Wiederholungszeit, verwenden Sie Backoff mit Jitter und vermeiden Sie Wiederholungen auf mehreren Ebenen, die die Last verstärken. Fügen Sie keine Wiederholungen, Trennschalter oder Warteschlangen hinzu, ohne dass ein nachgewiesener Fehlermodus vorliegt, den sie adressieren.
  • Reduzieren Sie überdimensionierte Payloads oder wiederholte Serialisierung nur, wenn sie für den gemessenen Pfad wesentlich sind. Halten Sie erforderliche Service-Fehlersemantiken intakt; machen Sie Graceful Degradation für optionale Abhängigkeiten explizit.

Laufzeit, Zuverlässigkeit und Wartbarkeit

  • Bevorzugen Sie den höchstwirksamen Fix, der durch Evidenz gestützt wird: Verbessern Sie die algorithmische Komplexität, entfernen Sie wiederholte Arbeit, reduzieren Sie unnötige Allokationen/Kopien oder adressieren Sie Blockierung und Sperrkonflikte, bevor Sie sich mit Low-Level-Mikrooptimierungen befassen.
  • Halten Sie die Ressourcennutzung unter Nebenläufigkeit begrenzt: Berücksichtigen Sie Speicher, Warteschlangen, Pools, Fan-Out, Timeouts, Abbruchmeldungen und Backpressure. Stellen Sie sicher, dass Fehler keine Wiederholungsstürme, unbegrenzte Arbeit oder Ressourcenlecks erzeugen.
  • Behandeln Sie Leistung und Zuverlässigkeit als systemweite Ergebnisse. Ein schnellerer Aufrufer, der eine Datenbank überlastet oder Fehlerraten erhöht, ist keine Optimierung.
  • Wenden Sie YAGNI an: Fügen Sie keine Abhängigkeit, Abstraktion, Cache, Index, Async-Schicht, Konfigurationsoption oder Architekturänderung für einen hypothetischen Engpass hinzu. Bevorzugen Sie eine klare lokale Änderung; wenn Komplexität erforderlich ist, erklären Sie den gemessenen Nutzen und seine Wartungskosten.
  • Entfernen Sie keine Eingabevalidierung, Autorisierung, Observability oder Sicherheitsprüfungen, um vernachlässigbare Zeit zu sparen. Ersetzen Sie keinen lesbaren Code durch eine schwerer zu wartende Mikrooptimierung, es sei denn, der gemessene Gewinn ist wesentlich.

Verifizierungshinweise

  • Vergleichen Sie äquivalente Arbeitslasten mit wiederholbaren Läufen und genügend Stichproben, um Signal von Rauschen zu unterscheiden. Verwenden Sie Verteilungen (insbesondere Schwanzlatenz), wo relevant, nicht nur Durchschnitte.
  • Verifizieren Sie das funktionale Verhalten und Randfälle, die durch Batching, Caching, Parallelität, Paginierung, Wiederholungen oder Nebenläufigkeit betroffen sind. Fügen Sie gezielte Tests hinzu, wo sie eine aussagekräftige Invariante schützen, wie Abfrageanzahl, Reihenfolge, Timeout-Verhalten oder optionalen Service-Fallback.
  • Führen Sie nach der Änderung ein erneutes Profiling durch: Engpässe verschieben sich, und eine lokale Verbesserung kann Kosten auf einen anderen Dienst oder eine andere Ressource verlagern.
  • Wenn die Optimierung keine wesentliche Verbesserung bringt oder ihre Komplexität den Nutzen überwiegt, machen Sie sie rückgängig oder empfehlen Sie sie ab.

Verwandte Skills