chrysopoeia
À propos
Chrysopoeia est une compétence pour affiner et optimiser des bases de code existantes et fonctionnelles afin d'en extraire la valeur maximale. Elle se concentre sur l'ajustement des performances, l'affinage de la surface d'API et l'élimination du code superflu pour polir le code sans réécriture complète. Utilisez-la lorsque vous avez besoin d'optimiser une base de code lente, de réduire la taille du bundle ou de préparer un code pour une publication open-source.
Installation rapide
Claude Code
Recommandénpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/chrysopoeiaCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
Chrysopoeia
Systematisch maximalen Wert aus vorhandenem Code extrahieren — identifizieren was Gold ist (hochwertig, gut entworfen), was Blei ist (ressourcenlastig, schlecht optimiert) und was Schlacke ist (toter Ballast). Dann das Gold verstaerken, das Blei transmutieren und die Schlacke entfernen.
Wann verwenden
- Optimieren einer funktionierenden aber traegen Codebasis fuer Performance
- Verfeinern einer API-Oberflaeche die ueber Iterationen Krusten angesammelt hat
- Reduzieren von Bundle-Groesse, Speicherverbrauch oder Startzeit
- Vorbereiten von Code fuer Open-Source-Veroeffentlichung (den wertvollen Kern extrahieren)
- Wenn Code korrekt funktioniert aber nicht glaenzt — er braucht Politur, keinen Neubau
Eingaben
- Erforderlich: Zu optimierende Codebasis oder Modul (Dateipfade)
- Erforderlich: Wertmetrik (Performance, API-Klarheit, Bundle-Groesse, Lesbarkeit)
- Optional: Profiling-Daten oder Benchmarks die aktuelle Performance zeigen
- Optional: Budget oder Ziel (z.B. "Bundle um 40% reduzieren", "unter 100ms Antwortzeit")
- Optional: Einschraenkungen (oeffentliche API nicht aenderbar, Rueckwaertskompatibilitaet wahren)
Vorgehensweise
Schritt 1: Probieren — Das Material klassifizieren
Jedes Element systematisch nach seinem Wertbeitrag klassifizieren.
- Die Wertmetrik aus den Eingaben definieren (Performance, Klarheit, Groesse usw.)
- Die Codebasis-Elemente inventarisieren (Funktionen, Module, Exporte, Abhaengigkeiten)
- Jedes Element klassifizieren:
Wertklassifikation:
+--------+---------------------------------------------------------+
| Gold | Hoher Wert, gut entworfen. Verstaerken und schuetzen. |
| Silber | Guter Wert, kleine Makel. Polieren. |
| Blei | Funktional aber schwer — schlechte Performance, |
| | komplexe API. In etwas Leichteres transmutieren. |
| Schlacke| Toter Code, ungenutzte Exporte, vestigiale Funktionen. |
| | Vollstaendig entfernen. |
+--------+---------------------------------------------------------+
- Fuer Performanceoptimierung zuerst profilen:
- Heisse Pfade identifizieren (wo Zeit verbracht wird)
- Kalte Pfade identifizieren (selten ausgefuehrter Code der Schlacke sein koennte)
- Speicherzuweisungsmuster messen
- Den Probierbericht erstellen: Element-fuer-Element-Klassifikation mit Belegen
Erwartet: Jedes signifikante Element mit Belegen klassifiziert. Gold-Elemente sind zum Schutz waehrend der Optimierung identifiziert. Blei-Elemente sind nach Auswirkung priorisiert.
Bei Fehler: Wenn Profiling-Werkzeuge nicht verfuegbar sind, statische Analyse verwenden: Funktionskomplexitaet (zyklomatisch), Abhaengigkeitsanzahl und Codegroesse als Naeherungswerte. Wenn die Codebasis zu gross ist, sich zuerst auf den kritischen Pfad konzentrieren.
Schritt 2: Veredeln — Das Gold verstaerken
Die hochwertigsten Elemente schuetzen und verbessern.
- Fuer jedes Gold-Element:
- Sicherstellen dass es umfassende Tests hat (das sind die wertvollsten Vermoegenswerte)
- Seine Schnittstelle klar dokumentieren falls noch nicht geschehen
- Erwaegen ob es als wiederverwendbares Modul extrahiert werden koennte
- Fuer jedes Silber-Element:
- Gezielte Verbesserungen anwenden (bessere Benennung, klarere Typen, kleine Optimierungen)
- Testabdeckung auf Gold-Niveau bringen
- Kleine Code-Gerueche beheben ohne umzustrukturieren
- Gold/Silber-Verhalten nicht aendern — nur Politur und Schutz verbessern
Erwartet: Gold- und Silber-Elemente sind besser getestet, dokumentiert und geschuetzt. Keine Verhaltensaenderungen, nur Qualitaetsverbesserungen.
Bei Fehler: Wenn ein "Gold"-Element bei naeherem Hinsehen verborgene Probleme offenbart, es umklassifizieren. Besser ehrlich ueber den Wert sein als fehlerhaften Code zu schuetzen.
Schritt 3: Transmutieren — Blei in Gold umwandeln
Schwere, ineffiziente Elemente in optimierte Aequivalente transformieren.
- Blei-Elemente nach Auswirkung priorisieren (hoechster Ressourcenverbrauch zuerst)
- Fuer jedes Blei-Element eine Transmutationsstrategie waehlen:
- Algorithmusoptimierung: O(n^2) durch O(n log n) ersetzen, redundante Berechnung eliminieren
- Caching/Memoisierung: Teure Ergebnisse speichern die wiederholt angefordert werden
- Faule Auswertung: Berechnung aufschieben bis Ergebnisse tatsaechlich gebraucht werden
- Stapelverarbeitung: Viele kleine Operationen in weniger grosse zusammenfassen
- Strukturelle Vereinfachung: Zyklomatische Komplexitaet reduzieren, tiefe Verschachtelung abflachen
- Die Strategie anwenden und die Verbesserung messen:
- Vorher/Nachher-Benchmarks fuer Performanceaenderungen
- Vorher/Nachher-Zeilenzahlen fuer Komplexitaetsaenderungen
- Vorher/Nachher-Abhaengigkeitszahlen fuer Kopplungsaenderungen
- Verhaltensaequivalenz nach jeder Transmutation verifizieren
Erwartet: Messbare Verbesserung der Zielwertmetrik. Jedes transmutierte Element leistet mehr als sein Blei-Vorgaenger bei Beibehaltung identischen Verhaltens.
Bei Fehler: Wenn ein Blei-Element sich innerhalb seiner aktuellen Schnittstelle der Optimierung widersetzt, erwaegen ob die Schnittstelle selbst das Problem ist. Manchmal erfordert die Transmutation eine Aenderung darin wie das Element aufgerufen wird, nicht nur wie es implementiert ist.
Schritt 4: Reinigen — Die Schlacke entfernen
Ballast systematisch beseitigen.
- Fuer jedes Schlacke-Element verifizieren dass es tatsaechlich ungenutzt ist:
- Alle Referenzen suchen (grep, IDE-Verwendungssuche)
- Auf dynamische Referenzen pruefen (zeichenkettenbasierter Dispatch, Reflection)
- Auf externe Konsumenten pruefen (wenn der Code eine Bibliothek ist)
- Bestaetigte Schlacke entfernen:
- Toten Code, ungenutzte Exporte, vestigiale Funktionen loeschen
- Ungenutzte Abhaengigkeiten aus Paketmanifesten entfernen
- Konfiguration fuer entfernte Funktionen bereinigen
- Nach jeder Entfernung verifizieren dass nichts kaputt geht (Tests ausfuehren)
- Dokumentieren was entfernt wurde und warum (in Commit-Nachrichten, nicht im Code)
Erwartet: Die Codebasis ist leichter. Bundle-Groesse, Abhaengigkeitsanzahl oder Codevolumen messbar reduziert. Alle Tests bestehen weiterhin.
Bei Fehler: Wenn das Entfernen eines Elements etwas kaputt macht, war es keine Schlacke — umklassifizieren. Wenn dynamische Referenzen die Nutzungsverifikation erschweren, temporaeres Logging vor dem Loeschen hinzufuegen um keinen Laufzeitzugriff zu bestaetigen.
Schritt 5: Verifizieren — Das Gold wiegen
Die Gesamtverbesserung messen.
- Dieselben Benchmarks/Metriken wie in Schritt 1 ausfuehren
- Vorher/Nachher der Zielwertmetrik vergleichen
- Die Chrysopoeia-Ergebnisse dokumentieren:
- Veredelte Elemente (Gold/Silber-Verbesserungen)
- Transmutierte Elemente (Blei -> Gold-Konvertierungen mit Messungen)
- Gereinigte Elemente (entfernte Schlacke mit Groessen-/Mengenauswirkung)
- Gesamtmetrische Verbesserung (z.B. "47% schneller", "32% kleineres Bundle")
Erwartet: Messbare, dokumentierte Verbesserung der Zielwertmetrik. Die Codebasis ist nachweislich wertvoller als zuvor.
Bei Fehler: Wenn die Gesamtverbesserung geringfuegig ist, war der urspruengliche Code moeglicherweise besser als angenommen. Dokumentieren was gelernt wurde — zu wissen dass Code bereits nahezu optimal ist, ist selbst wertvoll.
Validierung
- Probierbericht klassifiziert alle signifikanten Elemente mit Belegen
- Gold-Elemente haben umfassende Tests und Dokumentation
- Blei-Transmutationen zeigen messbare Vorher/Nachher-Verbesserung
- Schlacke-Entfernung mit Referenzpruefungen vor dem Loeschen verifiziert
- Alle Tests bestehen nach jeder Phase
- Gesamtverbesserung gemessen und dokumentiert
- Keine Verhaltensregressionen eingefuehrt
- Einschraenkungen aus den Eingaben sind erfuellt
Haeufige Stolperfallen
- Vorzeitige Optimierung: Optimieren ohne Profiling. Immer zuerst messen, die heissen Pfade optimieren
- Schlacke polieren: Aufwand in die Verbesserung von Code stecken der geloescht werden sollte. Klassifizieren vor dem Veredeln
- Gold brechen: Optimierung die den besten Code verschlechtert. Gold-Elemente sollten nur besser werden, nie schlechter
- Unbelegte Behauptungen: "Es fuehlt sich schneller an" ist keine Chrysopoeia. Jede Verbesserung muss quantifiziert werden
- Kalte Pfade optimieren: Aufwand in Code stecken der einmal beim Start laeuft waehrend der Engpass die Anfrageschleife ist
Verwandte Skills
athanor— Vollstaendige vierstufige Transformation wenn Chrysopoeia aufdeckt dass der Code Umstrukturierung braucht, nicht nur Optimierungtransmute— Gezielte Konvertierung wenn ein Blei-Element einen Paradigmenwechsel brauchtreview-software-architecture— Bewertung auf Architekturebene die Chrysopoeia auf Codeebene ergaenztreview-data-analysis— Optimierung von Datenpipelines parallel zu Codeoptimierung
Dépôt GitHub
Compétences associées
qmd
Développementqmd est un outil CLI de recherche et d'indexation locale qui permet aux développeurs d'indexer et de rechercher dans des fichiers locaux en utilisant une recherche hybride combinant BM25, des embeddings vectoriels et du reranking. Il prend en charge à la fois une utilisation en ligne de commande et un mode MCP (Model Context Protocol) pour l'intégration avec Claude. L'outil utilise Ollama pour les embeddings et stocke les index localement, ce qui le rend idéal pour rechercher dans de la documentation ou des bases de code directement depuis le terminal.
subagent-driven-development
DéveloppementCette compétence exécute des plans de mise en œuvre en déployant un nouveau sous-agent pour chaque tâche indépendante, avec une revue de code entre les tâches. Elle permet une itération rapide tout en maintenant des contrôles de qualité grâce à ce processus de revue. Utilisez-la lorsque vous travaillez sur des tâches principalement indépendantes au sein d'une même session pour assurer une progression continue avec des vérifications de qualité intégrées.
mcporter
DéveloppementLa compétence mcporter permet aux développeurs de gérer et d'appeler des serveurs Model Context Protocol (MCP) directement depuis Claude. Elle fournit des commandes pour lister les serveurs disponibles, appeler leurs outils avec des arguments, et gérer l'authentification ainsi que le cycle de vie du démon. Utilisez cette compétence pour intégrer et tester les fonctionnalités des serveurs MCP dans votre flux de travail de développement.
adk-deployment-specialist
DéveloppementCette compétence déploie et orchestre des agents Vertex AI ADK en utilisant le protocole A2A, gérant la découverte d'AgentCard, la soumission de tâches, et prenant en charge des outils tels que le bac à sable d'exécution de code et la banque de mémoire. Elle permet de construire des systèmes multi-agents avec des modèles d'orchestration séquentiels, parallèles ou en boucle en Python, Java ou Go. Utilisez-la lorsqu'on vous demande de déployer des agents ADK ou d'orchestrer des flux de travail d'agents sur Google Cloud.
