adapt-architecture
Über
Diese Fähigkeit führt strukturelle Systemtransformationen mithilfe von Strangler-Fig-Migration, gestaffelten Rollouts und Schnittstellenbewahrung durch. Sie bietet Planung, Parallelbetrieb, schrittweisen Austausch, Rollback-Design und Stabilisierung nach der Migration für die Architekturentwicklung. Nutzen Sie sie, wenn Sie Monolithen zu Microservices migrieren, Kernsysteme inkrementell ersetzen oder Big-Bang-Änderungen vermeiden möchten.
Schnellinstallation
Claude Code
Empfohlennpx 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/adapt-architectureKopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren
Dokumentation
Architektur anpassen
Strukturelle Metamorphose ausfuehren — die Architektur eines Systems von seiner aktuellen Form in eine Zielform transformieren und dabei die betriebliche Kontinuitaet aufrechterhalten. Verwendet Strangler-Fig-Migration, Chrysalis-Phasen und Schnittstellenbewahrung, um sicherzustellen, dass das System waehrend der Transformation nie aufhoert zu funktionieren.
Wann verwenden
- Formanalyse (siehe
assess-form) hat das System als BEREIT klassifiziert - Ein System muss seine Architektur weiterentwickeln, um neue Anforderungen ohne Ausfallzeit zu erfuellen
- Migration von Monolith zu Microservices (oder umgekehrt)
- Ersetzen eines Kernteilsystems waehrend abhaengige Systeme weiterlaufen
- Weiterentwicklung eines Datenmodells bei Beibehaltung der Abwaertskompatibilitaet
- Jede Architekturanpassung, die schrittweise statt als Big-Bang erfolgen muss
Eingaben
- Erforderlich: Aktuelle Formanalyse (von
assess-formoder gleichwertiger Analyse) - Erforderlich: Zielarchitektur (was das System werden soll)
- Erforderlich: Anforderungen an die betriebliche Kontinuitaet (was waehrend der Transformation nicht ausfallen darf)
- Optional: Verfuegbares Transformationsbudget (Zeit, Personen, Rechenleistung)
- Optional: Rollback-Anforderungen (wie weit muessen wir zurueckgehen koennen?)
- Optional: Parallelbetriebsdauer (wie lange sollen Alt und Neu gleichzeitig laufen?)
Vorgehensweise
Schritt 1: Transformations-Blueprint entwerfen
Den Metamorphose-Pfad von der aktuellen Form zur Zielform planen.
- Die Transformation als Abfolge von Zwischenformen abbilden:
- Aktuelle Form → Zwischenform 1 → ... → Zielform
- Jede Zwischenform muss betriebsfaehig sein (kann Traffic bedienen, Tests bestehen)
- Keine Zwischenform sollte schwieriger zu warten sein als die aktuelle Form
- Die Transformationsnaehte identifizieren:
- Wo kann die aktuelle Form "geschnitten" werden, um die neue Architektur einzufuegen?
- Natuerliche Naehte: bestehende Schnittstellen, Modulgrenzen, Datenpartitionen
- Kuenstliche Naehte: Schnittstellen, die speziell fuer den Schnitt erstellt wurden (Anti-Corruption-Layer)
- Das Metamorphose-Muster waehlen:
- Strangler Fig: Neues System waechst um das alte herum und ersetzt es schrittweise
- Chrysalis: Altes System wird in eine neue Huelle verpackt; Interna werden ersetzt, waehrend die Huelle die externe Schnittstelle bewahrt
- Budding: Neues System waechst neben dem alten; Traffic wird schrittweise umgeleitet (siehe
scale-colonyfuer Kolonie-Budding) - Metamorphe Migration: Phasenweise Ersetzung von Komponenten in Abhaengigkeitsreihenfolge (Blaetter zuerst, Wurzeln zuletzt)
- Die Schnittstellenbewahrungsschicht entwerfen:
- Externe Konsumenten duerfen keine Stoerung erfahren
- API-Versionierung, abwaertskompatible Vertraege, Adapter-Muster
- Die Bewahrungsschicht ist temporaeres Geruest — ihre Entfernung planen
Metamorphosis Patterns:
┌───────────────┬───────────────────────────────────────────────────┐
│ Strangler Fig │ New code intercepts routes one by one; │
│ │ old code handles everything else until replaced │
│ │ ┌──────────┐ │
│ │ │ Old ████ │ → │ Old ██ New ██ │ → │ New ████ │ │
│ │ └──────────┘ │
├───────────────┼───────────────────────────────────────────────────┤
│ Chrysalis │ Wrap old system in new interface; replace │
│ │ internals while external shell stays stable │
│ │ ┌──────────┐ ┌──[new]───┐ ┌──[new]───┐ │
│ │ │ old core │ → │ old core │ → │ new core │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │
├───────────────┼───────────────────────────────────────────────────┤
│ Budding │ New system runs in parallel; traffic shifts │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ │ Old │ │ New │ → │ Old │ │ New │ │
│ │ │ 100% │ │ 0% │ │ 0% │ │ 100% │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │
└───────────────┴───────────────────────────────────────────────────┘
Erwartet: Ein Transformations-Blueprint, der Zwischenformen, Naehte, das gewaehlte Metamorphose-Muster und die Schnittstellenbewahrungsstrategie zeigt. Jeder Schritt ist konkret und testbar.
Bei Fehler: Wenn keine saubere Naht gefunden werden kann, muss das System moeglicherweise vorab aufgeloest werden (siehe dissolve-form), um Naehte vor der Transformation zu schaffen. Wenn die Zwischenformen nicht betriebsfaehig sind, sind die Transformationsschritte zu gross — in kleinere Inkremente zerlegen.
Schritt 2: Geruest aufbauen
Die temporaere Infrastruktur konstruieren, die die Metamorphose unterstuetzt.
- Anti-Corruption-Layer erstellen:
- Eine duenne Uebersetzungsschicht zwischen dem alten und neuen System
- Leitet Anfragen basierend auf dem Migrationsstatus an das entsprechende System (alt oder neu) weiter
- Uebersetzt Datenformate zwischen alter und neuer Darstellung
- Diese Schicht ist der "Kokon", der die Transformation schuetzt
- Parallelbetrieb-Infrastruktur aufsetzen:
- Beide Systeme (alt und neu) muessen gleichzeitig deploybar sein
- Feature-Flags steuern, welches System welchen Traffic behandelt
- Vergleichsmechanismen validieren, dass alt und neu aequivalente Ergebnisse liefern
- Rollback-Kontrollpunkte einrichten:
- Bei jeder Zwischenform sicherstellen, dass ein Rollback zur vorherigen Form moeglich ist
- Rollback muss schneller sein als der Vorwaerts-Transformationsschritt
- Datenmigration muss reversibel sein (oder Daten muessen waehrend der Transition doppelt geschrieben werden)
- Validierungs-Harnisch aufbauen:
- Automatisierte Tests, die die betriebliche Kontinuitaet bei jeder Zwischenform verifizieren
- Performance-Benchmarks, die Regressionen erkennen
- Datenintegritaetspruefungen, die Migrationsfehler auffangen
Erwartet: Geruest-Infrastruktur (Anti-Corruption-Layer, Parallelbetrieb, Rollback, Validierung) ist vorhanden, bevor eine Transformation beginnt. Das Geruest selbst ist getestet und verifiziert.
Bei Fehler: Wenn das Geruest zu aufwaendig ist, vereinfachen: Das minimale Geruest ist ein Feature-Flag und ein Rollback-Verfahren. Anti-Corruption-Layer und Parallelbetrieb erhoehen die Sicherheit, sind aber fuer kleinere Transformationen nicht immer noetig.
Schritt 3: Progressive Umstellung durchfuehren
Funktionalitaet schrittweise von der alten Form in die neue Form migrieren.
- Komponenten fuer die Migration ordnen:
- Mit der am wenigsten gekoppelten, risikoaermsten Komponente beginnen (Vertrauen aufbauen)
- Zu kritischeren, staerker gekoppelten Komponenten fortschreiten
- Die am staerksten gekoppelte/kritischste Komponente fuer zuletzt aufheben (das Team hat dann Erfahrung)
- Fuer jede Komponente: a. Die neue Version hinter dem Anti-Corruption-Layer implementieren b. Parallel betreiben: sowohl alt als auch neu verarbeiten dieselben Eingaben c. Ausgaben vergleichen — sie sollten aequivalent sein (oder die Unterschiede sollten erwartet und dokumentiert sein) d. Bei Zuversicht den Traffic auf die neue Version umschalten (Feature-Flag-Wechsel) e. Auf Anomalien ueberwachen (Monitoring-Empfindlichkeit nach der Umstellung erhoehen) f. Nach einer Stabilitaetsphase die alte Version dieser Komponente stilllegen
- Kontinuierliche Auslieferung durchgehend aufrechterhalten:
- Jeder Umstellungsschritt ist ein normales Deployment, kein Sonderereignis
- Das System befindet sich immer in einem bekannten, getesteten, betriebsfaehigen Zustand
- Wenn eine Umstellung Probleme verursacht, auf den vorherigen Zustand zurueckrollen (der noch betriebsfaehig ist)
Erwartet: Funktionalitaet migriert Komponente fuer Komponente mit Validierung bei jedem Schritt. Das System ist immer betriebsfaehig. Jede Umstellung baut Vertrauen fuer die naechste auf.
Bei Fehler: Wenn der Parallelbetrieb Diskrepanzen aufdeckt, hat die neue Implementierung einen Fehler — vor der Umstellung beheben. Wenn eine Umstellung Performance-Verschlechterung verursacht, benoetigt die neue Komponente moeglicherweise Optimierung oder der Anti-Corruption-Layer erzeugt zu viel Overhead. Wenn das Team mitten in der Migration das Vertrauen verliert, pausieren und stabilisieren — ein halb-migriertes System in einem bekannten Zustand ist weit besser als eine ueberstuerzte vollstaendige Migration.
Schritt 4: Chrysalis-Phase managen
Die verwundbarste Phase navigieren — wenn sich das System zwischen den Formen befindet.
- Die Chrysalis-Realitaet anerkennen:
- Waehrend der Migration ist das System teils alt und teils neu
- Dieser Hybridzustand ist inherent komplexer als jeder reine Zustand
- Komplexitaet erreicht den Hoehepunkt am Mittelpunkt der Migration und nimmt dann ab
- Chrysalis-Disziplin:
- Keine neuen Features waehrend der Chrysalis-Phase (nur Transformation)
- Minimale externe Aenderungen (nicht-essentielle Deployments einfrieren)
- Erhoehtes Monitoring und Bereitschaftsabdeckung
- Taegliche Check-ins zum Migrationsfortschritt und Systemzustand
- Chrysalis-Zwischenbewertung:
- Am Halbzeitpunkt bewerten: Ist die Zielform noch das richtige Ziel?
- Hat sich etwas geaendert (Markt, Anforderungen, Team), das das Ziel beeinflusst?
- Sollte die Transformation fortgesetzt, pausiert oder umgeleitet werden?
- Die Chrysalis schuetzen:
- Den Rollback-Pfad jederzeit freihalten
- Den aktuellen Hybridzustand gruendlich dokumentieren (zukuenftige Debugger werden es brauchen)
- Der Versuchung widerstehen, temporaeres Geruest vor Abschluss der Migration "aufzuraeumen"
Erwartet: Die Chrysalis-Phase wird als bewusste, zeitlich begrenzte Periode mit erhoehter Disziplin und Monitoring gefuehrt. Das Team versteht, dass temporaere Komplexitaet der Preis fuer sichere Transformation ist.
Bei Fehler: Wenn die Chrysalis-Phase zu lange dauert, wird der Hybridzustand zum neuen Normal — was schlimmer ist als alt oder neu. Ein Zeitlimit setzen. Wenn das Limit erreicht ist, entweder die verbleibende Migration beschleunigen oder den Hybridzustand als "neue Form" akzeptieren und stabilisieren.
Schritt 5: Metamorphose abschliessen und stabilisieren
Die Transformation beenden und das Geruest entfernen.
- Finale Umstellung:
- Die letzte(n) Komponente(n) in die neue Form migrieren
- Vollstaendige Validierungssuite gegen das komplette neue System laufen lassen
- Performance-Test unter produktionsaequivalenter Last
- Geruest entfernen:
- Anti-Corruption-Layer stilllegen (wird nicht mehr benoetigt)
- Feature-Flags im Zusammenhang mit der Migration entfernen
- Parallelbetrieb-Infrastruktur bereinigen
- Den alten Systemcode archivieren (nicht loeschen) zur Referenz
- Post-Metamorphose-Stabilisierung:
- 2-4 Wochen in der neuen Form mit erhoehtem Monitoring betreiben
- Alle Probleme behandeln, die unter realen Bedingungen auftreten
- Dokumentation aktualisieren, um die neue Architektur widerzuspiegeln
- Retrospektive:
- Was lief gut bei der Transformation?
- Was war schwieriger als erwartet?
- Was wuerden wir naechstes Mal anders machen?
- Das Transformations-Playbook des Teams aktualisieren
Erwartet: Die Transformation ist abgeschlossen. Das System arbeitet in seiner neuen Form. Das Geruest ist entfernt. Die Dokumentation ist aktualisiert. Das Team hat Erkenntnisse fuer zukuenftige Transformationen festgehalten.
Bei Fehler: Wenn die neue Form nach der Umstellung instabil ist, den Rollback-Pfad aufrechterhalten und die Stabilisierung fortsetzen. Wenn die Stabilisierung laenger dauert als geplant, liegt moeglicherweise ein Designproblem in der neuen Architektur vor — abwaegen, ob gezielte Korrekturen oder ein teilweiser Rollback der problematischsten Komponente angemessen sind.
Validierung
- Transformations-Blueprint zeigt tragfaehige Zwischenformen
- Geruest (Anti-Corruption-Layer, Rollback, Validierungs-Harnisch) ist vor Migrationsbeginn vorhanden
- Komponenten migrieren in der Reihenfolge vom niedrigsten zum hoechsten Risiko
- Parallelbetrieb validiert Aequivalenz bei jedem Schritt
- Chrysalis-Phase ist zeitlich begrenzt mit Feature-Freeze-Disziplin
- Gesamtes Geruest wird nach Abschluss der Transformation entfernt
- Post-Metamorphose-Stabilisierungsphase verlaeuft ohne kritische Probleme
- Retrospektive erfasst Erkenntnisse
Haeufige Stolperfallen
- Big-Bang-Migration: Versuch, alles auf einmal zu transformieren. Dies gibt die Sicherheit der inkrementellen Umstellung auf und maximiert den Wirkungsradius. Immer inkrementell migrieren
- Permanentes Geruest: Anti-Corruption-Layer und Feature-Flags, die nie entfernt werden, werden zu technischen Schulden. Die Geruest-Entfernung als Teil der Transformation planen, nicht als Nachgedanke
- Chrysalis-Leugnung: So zu tun, als waere der Hybridzustand normal, fuehrt zu Feature-Entwicklung auf instabilen Grundlagen. Die Chrysalis-Phase anerkennen und ihre Disziplin durchsetzen
- Zielfixierung: So sehr auf die Zielarchitektur festgelegt sein, dass Anzeichen einer besseren Alternative ignoriert werden. Die Chrysalis-Zwischenbewertung existiert aus diesem Grund
- Transformationsmuedigkeit: Lange Migrationen erschoepfen Teams. Jeden Transformationsschritt klein genug halten, um in Tagen statt Wochen abgeschlossen zu werden. Meilensteine feiern, um die Dynamik aufrechtzuerhalten
Verwandte Skills
assess-form— Voraussetzungsanalyse, die bestimmt, ob das System fuer die Transformation bereit istdissolve-form— fuer Systeme, die zu starr fuer eine direkte Transformation sind; Aufloesung schafft die hier benoetigten Naehterepair-damage— Wiederherstellungs-Skill fuer den Fall, dass die Transformation Schaeden einfuehrtshift-camouflage— Oberflaechenanpassung, die ohne tiefgreifende Architekturanpassung ausreichen kanncoordinate-swarm— Schwarmkoordination informiert die Sequenzierung der Transformation ueber verteilte Systemescale-colony— Wachstumsdruck ist ein haeufiger Ausloeser fuer Architekturanpassungimplement-gitops-workflow— GitOps liefert die Deployment-Infrastruktur fuer progressive Umstellungreview-software-architecture— ergaenzender Review-Skill zur Bewertung der Zielarchitektur
GitHub Repository
Verwandte Skills
executing-plans
DesignVerwenden Sie die Fähigkeit "executing-plans", wenn Sie einen vollständigen Implementierungsplan zur Ausführung in kontrollierten Batches mit Überprüfungspunkten vorliegen haben. Sie lädt den Plan und überprüft ihn kritisch, führt dann Aufgaben in kleinen Batches (standardmäßig 3 Aufgaben) aus und meldet den Fortschritt zwischen jedem Batch zur Überprüfung durch den Architekten. Dies gewährleistet eine systematische Implementierung mit integrierten Qualitätskontrollpunkten.
requesting-code-review
DesignDiese Fähigkeit sendet einen Unteragenten für Code-Review, um Codeänderungen anhand der Anforderungen zu analysieren, bevor fortgefahren wird. Sie sollte nach dem Abschließen von Aufgaben, der Implementierung größerer Funktionen oder vor dem Zusammenführen in den Hauptzweig verwendet werden. Die Überprüfung hilft dabei, Probleme frühzeitig zu erkennen, indem die aktuelle Implementierung mit dem ursprünglichen Plan verglichen wird.
connect-mcp-server
DesignDiese Fähigkeit bietet Entwicklern eine umfassende Anleitung, um MCP-Server über HTTP-, stdio- oder SSE-Transports mit Claude Code zu verbinden. Sie behandelt Installation, Konfiguration, Authentifizierung und Sicherheit für die Integration externer Dienste wie GitHub, Notion und benutzerdefinierter APIs. Nutzen Sie sie beim Einrichten von MCP-Integrationen, bei der Konfiguration externer Tools oder bei der Arbeit mit Claude's Model Context Protocol.
web-cli-teleport
DesignDiese Fähigkeit unterstützt Entwickler bei der Wahl zwischen Claude Code Web- und CLI-Schnittstellen basierend auf Aufgabenanalysen und ermöglicht nahtloses Session-Teleporting zwischen diesen Umgebungen. Sie optimiert den Workflow, indem sie den Sitzungsstatus und Kontext beim Wechsel zwischen Web, CLI oder Mobilgeräten verwaltet. Nutzen Sie sie für komplexe Projekte, die in verschiedenen Phasen unterschiedliche Werkzeuge erfordern.
