Back to Skills

adapt-architecture

pjt222
Updated 2 days ago
6 views
17
2
17
View on GitHub
Designdesign

About

This skill provides a structured methodology for executing gradual, safe architectural transformations like monolith-to-microservices migrations. It uses patterns such as strangler fig migration and chrysalis phases to enable parallel running, progressive cutover, and rollback design. Use it when a system is ready for a controlled evolution, requiring minimal disruption to dependent systems.

Quick Install

Claude Code

Recommended
Primary
npx skills add pjt222/agent-almanac -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternative
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/adapt-architecture

Copy and paste this command in Claude Code to install this skill

Documentation

Adapt Architecture

Structural metamorphosis → system transform current → target form. Strangler fig, chrysalis, interface preserve → never stops.

Use When

  • assess-form → READY
  • Evolve architecture, no downtime
  • Monolith ↔ microservices
  • Replace core subsystem, dependents keep running
  • Data model evolve w/ backward compat
  • Gradual, not big-bang

In

  • Required: Current form assessment (assess-form)
  • Required: Target architecture
  • Required: Operational continuity reqs
  • Optional: Transform budget (time, people, compute)
  • Optional: Rollback reqs
  • Optional: Parallel run duration

Do

Step 1: Blueprint

Plan path current → target.

  1. Sequence of intermediate forms:
    • Current → Intermediate 1 → ... → Target
    • Each intermediate operationally viable
    • No intermediate harder to maintain
  2. Seams:
    • Where cut current to insert new?
    • Natural: interfaces, module bounds, data partitions
    • Artificial: anti-corruption layers
  3. Pattern:
    • Strangler fig: new grows around old, replaces gradually
    • Chrysalis: wrap old, replace internals, shell preserves external interface
    • Budding: parallel, traffic shifts (see scale-colony)
    • Metamorphic migration: phased in dep order (leaves→roots)
  4. Interface preservation layer:
    • External consumers no disrupt
    • API versioning, backward-compat, adapters
    • Temp scaffold → plan removal
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% │         │
│               │ └──────┘ └──────┘     └──────┘ └──────┘         │
└───────────────┴───────────────────────────────────────────────────┘

Blueprint: intermediate forms, seams, pattern, preservation strategy. Concrete + testable.

If err: No clean seam → preliminary dissolution (dissolve-form) first. Intermediates not viable → steps too large → decompose.

Step 2: Scaffold

Temp infra → supports metamorphosis.

  1. Anti-corruption layer:
    • Thin translation old ↔ new
    • Routes reqs → correct system per migration state
    • Translates data formats
    • "Cocoon" protects transform
  2. Parallel run infra:
    • Both systems deployable simultaneously
    • Feature flags → traffic routing
    • Comparison validates equivalence
  3. Rollback checkpoints:
    • Each intermediate → rollback possible
    • Rollback faster than forward step
    • Data migration reversible (or dual-write during transition)
  4. Valid. harness:
    • Auto tests → operational continuity
    • Perf benchmarks → regression detection
    • Data integrity checks

Scaffold (anti-corruption, parallel, rollback, valid.) in place pre-transform. Scaffold itself tested.

If err: Too expensive → simplify. Minimum: feature flag + rollback proc. Anti-corruption + parallel optional for small transforms.

Step 3: Progressive Cutover

Migrate incrementally.

  1. Order components:
    • Start least-coupled, lowest-risk → build confidence
    • Progress → more critical
    • Most coupled/critical last
  2. Per component: a. Impl new ver behind anti-corruption layer b. Parallel: both process same in c. Compare out → equivalent (or differences documented) d. Confident → flip feature flag → switch traffic e. Monitor anomalies (increased sensitivity) f. Stable → decommission old ver
  3. Continuous delivery:
    • Each cutover = normal deploy, not event
    • System always known, tested, operational
    • Issue → rollback → prev state operational

Functionality migrates component-by-component w/ valid. at each step. System always operational.

If err: Parallel reveals discrepancies → new impl bug → fix before cutover. Perf degrade → optimize new or anti-corruption layer too heavy. Team loses confidence → pause + stabilize. Half-migrated known > rushed full.

Step 4: Chrysalis Phase

Manage most vulnerable period — system between forms.

  1. Chrysalis reality:
    • Partly old + partly new during migration
    • Hybrid more complex than pure state
    • Complexity peaks at midpoint
  2. Discipline:
    • No new features during chrysalis
    • Freeze non-essential deploys
    • Increased monitoring + on-call
    • Daily check-ins
  3. Mid-chrysalis assessment:
    • Halfway → target still right?
    • Market/reqs/team change?
    • Continue, pause, redirect?
  4. Protect:
    • Rollback path clear always
    • Doc hybrid state → future debuggers need
    • Resist "clean up" scaffold pre-complete

Chrysalis = deliberate, time-bounded, increased discipline + monitoring. Temp complexity = cost of safe transform.

If err: Drags too long → hybrid = new normal = worse than either. Set time limit. Limit hit → accelerate or accept hybrid as "new form".

Step 5: Complete + Stabilize

Finish + remove scaffold.

  1. Final cutover:
    • Migrate last components
    • Full valid. against complete new system
    • Perf test under prod load
  2. Remove scaffold:
    • Decommission anti-corruption layer
    • Remove migration feature flags
    • Clean up parallel infra
    • Archive (don't delete) old code
  3. Post-metamorphosis stabilization:
    • Run new form 2-4 weeks w/ enhanced monitoring
    • Address real-world issues
    • Update docs → new architecture
  4. Retrospective:
    • What went well?
    • Harder than expected?
    • Do differently next?
    • Update playbook

Transform complete. System new form. Scaffold removed. Docs updated. Team captured learnings.

If err: New form unstable post-cutover → maintain rollback, continue stabilize. Stabilize > planned period → design issue → targeted fixes or partial rollback worst component.

Check

  • Blueprint shows viable intermediates
  • Scaffold in place pre-migration
  • Components migrate low→high risk
  • Parallel validates equivalence each step
  • Chrysalis time-bounded + feature freeze
  • All scaffold removed post-transform
  • Post-metamorphosis stabilization passes
  • Retro captures learnings

Traps

  • Big-bang: Transform all at once → abandons incremental safety → max blast radius. Always incremental.
  • Permanent scaffold: Never removed → tech debt. Plan removal part of transform.
  • Chrysalis denial: Pretending hybrid normal → features on unstable foundation. Enforce discipline.
  • Target fixation: Better alternative signs ignored. Mid-chrysalis assessment exists for this.
  • Transform fatigue: Long migrations exhaust teams. Days, not weeks per step. Celebrate milestones.

  • assess-form — prereq assessment
  • dissolve-form — rigid systems → create seams
  • repair-damage — recovery when transform damages
  • shift-camouflage — surface adapt may suffice
  • coordinate-swarm — swarm sequencing across distributed
  • scale-colony — growth pressure triggers architectural adapt
  • implement-gitops-workflow — GitOps deploy infra for cutover
  • review-software-architecture — evaluate target architecture

GitHub Repository

pjt222/agent-almanac
Path: i18n/caveman-ultra/skills/adapt-architecture
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Related Skills

executing-plans

Design

Use the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.

View skill

requesting-code-review

Design

This skill dispatches a code-reviewer subagent to analyze code changes against requirements before proceeding. It should be used after completing tasks, implementing major features, or before merging to main. The review helps catch issues early by comparing the current implementation with the original plan.

View skill

connect-mcp-server

Design

This skill provides a comprehensive guide for developers to connect MCP servers to Claude Code using HTTP, stdio, or SSE transports. It covers installation, configuration, authentication, and security for integrating external services like GitHub, Notion, and custom APIs. Use it when setting up MCP integrations, configuring external tools, or working with Claude's Model Context Protocol.

View skill

web-cli-teleport

Design

This skill helps developers choose between Claude Code Web and CLI interfaces based on task analysis, then enables seamless session teleportation between these environments. It optimizes workflow by managing session state and context when switching between web, CLI, or mobile. Use it for complex projects requiring different tools at various stages.

View skill