adapt-architecture
关于
This skill provides a structured method for gradually migrating system architectures, like moving from a monolith to microservices. It uses patterns such as strangler fig migration and parallel running to enable incremental change with minimal disruption. Use it when a system is ready for a phased transformation, requiring continuous operation and a rollback safety net.
快速安装
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 中复制并粘贴此命令以安装该技能
技能文档
適架構
執行結構之蛻變——將系統架構由現形轉至目標形,於轉化中維持運作不輟。藉絞殺榕遷移、蛹化階段與介面保全,確保系統於蛻變間從未停運。
適用時機
- 形評估(見
assess-form)將系統判為 READY - 系統須演進架構以應新需,不容停機
- 由單體遷往微服務(或反之)
- 替換核心子系統而依賴系統續行
- 演進資料模型而保前向相容
- 任何架構變更須漸進而非一蹴
輸入
- 必要:當前形評估(自
assess-form或同等分析) - 必要:目標架構(系統應化為何)
- 必要:運作連續性要求(轉化中何者不可中斷)
- 選擇性:可用之轉化預算(時、人、算力)
- 選擇性:回退要求(可退至幾步之前?)
- 選擇性:並行運行時長(新舊同行多久)
步驟
步驟一:擬定轉化藍圖
謀劃由現形至目標形之蛻變路徑。
- 將轉化映為一序列之中間形:
- 現形 → 中間形一 → … → 目標形
- 各中間形須具運作可行性(能服務流量、通過測試)
- 中間形之維護不應較現形更艱
- 識別轉化縫隙:
- 何處可「切」現形以納入新架構?
- 自然縫:既有介面、模組界線、資料分割
- 人工縫:為切割而專設之介面(防腐層)
- 擇蛻變模式:
- 絞殺榕:新系統環繞舊系統而生,漸次取代
- 蛹化:舊系統包以新殼,內裡更替而外殼保持外部介面
- 出芽:新系統與舊並行而生,流量漸轉(群體出芽見
scale-colony) - 蛻變式遷移:依依賴順序分階段更替元件(葉先,根後)
- 設計介面保全層:
- 外部消費者不應感受中斷
- API 版本控制、向後相容契約、轉接器模式
- 此保全層為臨時鷹架,須謀其去除
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% │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │
└───────────────┴───────────────────────────────────────────────────┘
預期: 一份轉化藍圖,呈現中間形、縫隙、所擇蛻變模式與介面保全策略。每步具體可測。
失敗時: 若無潔淨之縫,系統可能須先行溶解(見 dissolve-form)以造縫再轉。若中間形不具運作可行性,則轉化步太大——拆為更小增量。
步驟二:搭建鷹架
構築支援蛻變之臨時基礎設施。
- 建立防腐層:
- 新舊系統間之薄翻譯層
- 依遷移狀態將請求路由至適當系統(舊或新)
- 翻譯新舊之間之資料格式
- 此層為「繭」,護持轉化
- 設置並行運行基礎:
- 新舊系統須能同時部署
- 以特性旗標控制何系統處理何流量
- 比對機制驗證新舊產出等效
- 確立回退檢查點:
- 各中間形須驗證可退至前形
- 回退須較前進步驟更速
- 資料遷移須可逆(或於過渡期雙寫)
- 構築驗證套件:
- 自動化測試於各中間形驗證運作連續
- 效能基準偵測退化
- 資料完整性檢查捕捉遷移錯誤
預期: 鷹架基礎設施(防腐層、並行運行、回退、驗證)於任何轉化開始前已就位。鷹架本身已測試驗證。
失敗時: 若鷹架成本過高,化簡之:最小可行鷹架為一特性旗標加一回退程序。防腐層與並行運行增益安全,然小型轉化未必皆需。
步驟三:執行漸進切換
由舊形至新形漸次遷移功能。
- 為遷移排序元件:
- 從耦合最少、風險最低者起步(建立信心)
- 漸進至更關鍵、更耦合之元件
- 將最耦合/最關鍵者留至最後(屆時團隊已具經驗)
- 對每元件: a. 於防腐層後實作新版 b. 並行運行:新舊處理同一輸入 c. 比對輸出——應等效(或差異應為預期且有文件記載) d. 信心既足,將流量切至新版(特性旗標翻轉) e. 監控異常(切換後提高監控敏感度) f. 經穩定期後,下架此元件之舊版
- 全程維持持續交付:
- 每次切換皆為常規部署,非特殊事件
- 系統恆處已知、已測、運作之狀態
- 切換致問題時,回退至前態(仍運作)
預期: 功能逐元件遷移,每步皆有驗證。系統恆運作。每次切換為下次積累信心。
失敗時: 並行運行揭出歧異時,新實作有缺陷——切換前修復。切換致效能退化時,新元件可能須最佳化,或防腐層額外開銷過大。團隊於遷移途中失信時,暫停並穩定——半遷之系統處於已知態,遠勝倉促之全遷。
步驟四:管理蛹化階段
度過最脆弱之時期——系統介於兩形之間。
- 認蛹化之實:
- 遷移期間,系統一半舊一半新
- 此混合態本質上較任一純態更繁
- 繁複於遷移中點達峰,後遞減
- 蛹化紀律:
- 蛹化期不開新功能(僅轉化)
- 最少外部變更(凍非必要部署)
- 增監控與待命覆蓋
- 每日核對遷移進度與系統健康
- 蛹化中段評估:
- 至中點時評估:目標形仍為正鵠否?
- 是否有變動(市場、需求、團隊)影響目標?
- 轉化應續、停或改向?
- 護持蛹化:
- 始終保回退路徑暢通
- 詳載當前混合態(將來除錯者需之)
- 抗拒於遷移完成前「清理」臨時鷹架之誘惑
預期: 蛹化階段以審慎、限期之方式管理,輔以加強之紀律與監控。團隊明白臨時繁複乃安全轉化之代價。
失敗時: 若蛹化拖延過久,混合態淪為新常態——比新舊任一更壞。設限期。屆期則加速剩餘遷移,或接納混合態為「新形」並穩定之。
步驟五:完成蛻變並穩定
收束轉化,移除鷹架。
- 終局切換:
- 遷移末件元件至新形
- 對完整新系統執行完整驗證套件
- 於生產等效負載下作效能測試
- 移除鷹架:
- 下架防腐層(已無需)
- 移除遷移相關之特性旗標
- 清理並行運行基礎設施
- 歸檔(勿刪)舊系統碼以供參考
- 蛻變後穩定:
- 於新形運行 2-4 週並加強監控
- 處理現實條件下浮現之問題
- 更新文件以反映新架構
- 回顧:
- 轉化中何者順遂?
- 何者較預期更艱?
- 下次當如何不同?
- 更新團隊之轉化手冊
預期: 轉化已成。系統於新形運作。鷹架已撤。文件已更新。團隊已捕捉學習以資未來轉化。
失敗時: 切換後新形不穩時,保回退路徑並續穩定。若穩定逾預期,新架構可能存有設計問題——考量是否以針對性修補或對最棘手元件作部分回退為宜。
驗證
- 轉化藍圖展示可行之中間形
- 鷹架(防腐層、回退、驗證套件)於遷移開始前已就位
- 元件依風險由低至高遷移
- 並行運行於各步驟驗證等效
- 蛹化階段限期且行特性凍結紀律
- 轉化完成後一切鷹架皆已移除
- 蛻變後穩定期內無關鍵問題
- 回顧捕捉學習
常見陷阱
- 一蹴遷移:意圖一次轉化全部。此舉棄漸進切換之安全,使影響面最大。務必漸進遷移
- 永久鷹架:未除之防腐層與特性旗標化為技術債。將鷹架移除謀於轉化之中,勿為事後補
- 蛹化之否認:將混合態視為常態,致於不穩之基礎上開發新功能。承認蛹化階段並貫徹其紀律
- 目標固執:執著目標架構至忽視更佳替代之徵兆。蛹化中段評估正為此而設
- 轉化疲勞:長遷耗竭團隊。每步轉化保持小至日計而非週計。慶里程以維動能
相關技能
assess-form— 先行評估,判定系統是否堪轉dissolve-form— 對過剛而難直接轉化之系統,溶解可造此處所需之縫repair-damage— 轉化致損時之復原技能shift-camouflage— 表層適應,可能毋需深層架構變更即足coordinate-swarm— 蜂群協調指引分散系統之轉化排程scale-colony— 成長壓力為架構適應之常見觸因implement-gitops-workflow— GitOps 為漸進切換提供部署基礎review-software-architecture— 互補之審查技能,用於評估目標架構
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界面,并指导如何在两种环境间无缝迁移会话。它能分析任务复杂度、迭代需求等要素,推荐最优工作界面和工作流。关键特性包括会话状态管理、环境切换指导和上下文优化建议。
