adapt-architecture
정보
이 스킬은 Strangler-Fig 마이그레이션, 단계적 롤아웃, 인터페이스 보존을 활용하여 구조적 시스템 변환을 실행합니다. 아키텍처 진화를 위한 계획 수립, 병렬 운영, 점진적 교체, 롤백 설계 및 마이그레이션 후 안정화를 제공합니다. 모놀리스를 마이크로서비스로 전환하거나, 핵심 시스템을 점진적으로 교체하거나, 빅뱅 방식의 변경을 피해야 할 때 사용하세요.
빠른 설치
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/adapt-architectureClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
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 저장소
연관 스킬
executing-plans
디자인executing-plans 스킬은 검토 체크포인트가 포함된 통제된 배치로 실행할 완전한 구현 계획이 있을 때 사용합니다. 이 스킬은 계획을 불러와 비판적으로 검토한 후, 소규모 배치(기본값 3개 작업)로 작업을 실행하면서 각 배치 사이에 진행 상황을 아키텍트 검토를 위해 보고합니다. 이를 통해 내재된 품질 관리 체크포인트를 갖춘 체계적인 구현이 보장됩니다.
requesting-code-review
디자인이 스킬은 코드 변경 사항을 요구 사항에 따라 분석하기 위해 코드 리뷰어 하위 에이전트를 호출합니다. 작업 완료 후, 주요 기능 구현 후, 또는 메인 브랜치에 병합하기 전에 사용해야 합니다. 이 리뷰는 현재 구현체와 원래 계획을 비교하여 문제를 조기에 발견하는 데 도움이 됩니다.
connect-mcp-server
디자인이 스킬은 개발자들이 HTTP, stdio 또는 SSE 전송 방식을 통해 MCP 서버를 Claude Code에 연결하는 포괄적인 가이드를 제공합니다. GitHub, Notion 및 사용자 정의 API와 같은 외부 서비스를 통합하기 위한 설치, 구성, 인증 및 보안을 다룹니다. MCP 통합 설정, 외부 도구 구성 또는 Claude의 모델 컨텍스트 프로토콜 작업 시 활용하세요.
web-cli-teleport
디자인이 스킬은 작업 분석을 기반으로 개발자가 Claude Code 웹 인터페이스와 CLI 인터페이스 중 선택할 수 있도록 돕고, 두 환경 간 원활한 세션 텔레포트를 가능하게 합니다. 웹, CLI 또는 모바일 환경 전환 시 세션 상태와 컨텍스트를 관리하여 워크플로를 최적화합니다. 다양한 단계에서 서로 다른 도구가 필요한 복잡한 프로젝트에 사용하세요.
