chrysopoeia
정보
크리소포이아는 기존의 작동하는 코드베이스를 정제하고 최적화하여 최대 가치를 추출하는 기술입니다. 성능 튜닝, API 표면 정제, 불필요한 요소 제거를 통해 전체 재작성 없이 코드를 다듬는 데 중점을 둡니다. 느린 코드베이스를 최적화하거나 번들 크기를 줄이거나 오픈소스 배포를 준비할 때 사용하세요.
빠른 설치
Claude Code
추천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/chrysopoeiaClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
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
GitHub 저장소
연관 스킬
qmd
개발qmd는 BM25, 벡터 임베딩, 재순위화를 결합한 하이브리드 검색을 통해 로컬 파일을 색인화하고 검색할 수 있는 로컬 검색 및 색인화 CLI 도구입니다. 명령줄 사용과 Claude 통합을 위한 MCP(Model Context Protocol) 모드를 모두 지원합니다. 이 도구는 임베딩에 Ollama를 사용하고 색인을 로컬에 저장하여 터미널에서 직접 문서나 코드베이스를 검색하는 데 이상적입니다.
subagent-driven-development
개발이 스킬은 각 독립적인 작업마다 새로운 하위 에이전트를 배치하고 작업 사이에 코드 리뷰를 진행하여 구현 계획을 실행합니다. 이 리뷰 프로세스를 통해 품질 게이트를 유지하면서 빠른 반복 작업을 가능하게 합니다. 동일한 세션 내에서 대부분 독립적인 작업을 진행할 때 내장된 품질 검증과 함께 지속적인 진행을 보장하기 위해 사용하세요.
mcporter
개발mcporter 스킬은 개발자가 Claude에서 직접 Model Context Protocol(MCP) 서버를 관리하고 호출할 수 있도록 합니다. 이 스킬은 사용 가능한 서버를 나열하고, 인수를 사용해 해당 서버의 도구를 호출하며, 인증 및 데몬 생명주기를 처리하는 명령어를 제공합니다. 개발 워크플로우에서 MCP 서버 기능을 통합하고 테스트할 때 이 스킬을 사용하세요.
adk-deployment-specialist
개발이 스킬은 A2A 프로토콜을 사용하여 Vertex AI ADK 에이전트를 배포하고 오케스트레이션하며, AgentCard 검색, 작업 제출, 코드 실행 샌드박스 및 메모리 뱅크와 같은 지원 도구를 관리합니다. Python, Java 또는 Go 언어로 순차, 병렬 또는 루프 오케스트레이션 패턴을 갖춘 다중 에이전트 시스템 구축을 가능하게 합니다. Google Cloud에서 ADK 에이전트 배포 또는 에이전트 워크플로우 오케스트레이션을 요청받았을 때 사용하세요.
