adapt-architecture
关于
This skill executes structural system transformations using Strangler-Fig migration, phased rollouts, and interface preservation. It provides planning, parallel operation, progressive replacement, rollback design, and post-migration stabilization for architecture evolution. Use it when migrating monoliths to microservices, replacing core systems incrementally, or when avoiding big-bang changes.
快速安装
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-architecture在 Claude 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
设计该Skill用于当开发者提供完整实施计划时,以受控批次方式执行代码实现。它会先审阅计划并提出疑问,然后分批次执行任务(默认每批3个任务),并在批次间暂停等待审查。关键特性包括分批次执行、内置检查点和架构师审查机制,确保复杂系统实现的可控性。
requesting-code-review
设计该Skill可在完成任务、实现主要功能或合并代码前自动调度代码审查子代理,确保实现符合需求和计划。它支持通过指定git SHA范围进行精准的代码变更审查,帮助开发者在关键节点及时发现潜在问题。核心原则是"早审查、勤审查",适用于开发流程的各个关键阶段。
connect-mcp-server
设计这个Skill指导开发者如何将MCP服务器连接到Claude Code,支持HTTP、stdio和SSE三种传输协议。它涵盖了从安装配置到认证安全的完整流程,适用于集成GitHub、Notion、数据库等外部服务。当开发者需要添加集成、配置外部工具或提及MCP相关功能时,这个Skill能提供实用的操作指南。
web-cli-teleport
设计该Skill帮助开发者根据任务特性选择Claude Code的Web或CLI界面,并指导如何在两种环境间无缝迁移会话。它能分析任务复杂度、迭代需求等要素,推荐最优工作界面和工作流。关键特性包括会话状态管理、环境切换指导和上下文优化建议。
