Communitygithub.com

gabros20/architecture-skill

決定軟體系統的形狀——邊界、合約、非功能性需求預算、威脅模型與架構決策紀錄(ADR)。屬於數位產品技能家族的「塑形」階段。

architecture-skill 是什麼?

這項技能是針對 AI 代理(如 Claude Code、Cursor)設計的「產品架構」技能,專注於定義軟體系統的形狀。它涵蓋服務邊界、公開 API 合約、資料儲存與一致性選擇、身分驗證模型、SLO 目標等重大且難以逆轉的決策,而非底層的實作程式碼。技能明確區分其職責範圍:只負責決策、合約、預算與威脅模型,而生產程式碼則交由其他的開發技能處理。它透過一個「先路由再行動」的流程來運作,使用者必須先從「系統設計」、「分解」、「合約」、「資料架構」、「安全架構」、「遷移」與「ADR」等主要任務中選擇一項,並可疊加如「代理式/LLM 系統」、「多租戶 Web 應用」等表面覆蓋層。這項技能遵守嚴格的通用不變原則,例如需求閘門(先收集需求再解決方案)、避免過度架構、根據可逆性權重分析(區分單向門與雙向門),以及使用結構化表格與自我審計計數來完成詳盡檢查。輸出產物包括解決方案架構文件、C4/arc42 圖表、NFR 預算表、ADR 和 STRIDE 威脅模型,並在需要下游建置時產生一個 machine-readable 的 handoff.yaml 檔案。

相容平台~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add gabros20/architecture-skill

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

產品架構

使命與邊界

決定軟體系統的 形狀 — 其邊界、介面合約、非功能性需求(NFR)預算、威脅模型,以及持久的決策紀錄 — 精確到讓建構技能可以並行地實作正確的事物,而無需重新推導。負責管理 product(決定建置什麼及為何建置)與建構技能(撰寫生產程式碼)之間的「塑形」階段:即那些重大、難以逆轉的決策 — 服務邊界、公開 API 形狀、資料儲存與一致性選擇、身分驗證模型、SLO 目標 — 而不是它們背後的實作方式。

擁有決策、合約、預算和威脅模型;不擁有程式碼。生產前端/後端/資料/AI 程式碼屬於建構技能;UX 和 UI 屬於 design;探索、PRD 和優先級排序屬於 product;獨立負載測試與弱點掃描屬於 quality;執行時期 SLO 監控、儀表板和部署流水線屬於 operate;跨越非你所屬系統的跨系統業務流程屬於 automation。可以貢獻於這些領域,但不擁有它們。單獨被呼叫時獨立運作;當提供了相容的上游產物(如 PRD、產品交接文件、現有 ADR 日誌或設計文件)時,使用它們而不會無聲地覆蓋已建立的決策。在有用時建議相鄰的技能;除非使用者明確要求組合工作流程,否則不會自動呼叫它們。

先路由再行動

  1. 先擷取需求(見不變原則)— 在功能需求和非功能性需求(NFR)被陳述且矛盾被揭露之前,不要開啟參考解決方案。
  2. 挑選請求所需的一個主要任務,以及最多一個表面覆蓋層 — 系統類型會重塑邊界、合約和預算。
  3. 在產出受影響的產物之前,完整閱讀每個選定的參考資料;最多載入 2-3 個,絕不預先載入整個套件。
  4. 對於 LLM/代理系統,務必加上代理式覆蓋層 — 它會改變拓撲、評估閘門和安全模型。

主要任務(選擇一個)

使用者意圖閱讀來源產出物
從頭「設計/架構/規格化系統」,或審查設計的缺口 — 預設進入點system-design需求閘門、分層 C4/arc42 設計、權衡取捨、概略估算數字
「拆解這個」、「這應該是微服務嗎」、定義模組/有限脈絡、修正耦合decomposition有限脈絡、單體/模組化/微服務呼叫(附指定分解因子)、量化耦合報告
「設計 API」、「定義合約」、規格化端點/事件、版本化/棄用介面contractsREST/gRPC/GraphQL 選擇、OpenAPI/AsyncAPI 骨架、版本化與棄用計劃、審查清單
設計資料流程、選擇一致性模型、決定 CQRS/ES、挑選識別碼方案data-architecture每次流程的一致性決策、CQRS/ES 評分、outbox/dual-write 選項、儲存選擇
設定效能/延遲/可靠性目標、SLO、擴展/容量/成本計劃、Well-Architected 審查nfr-budgets效能預算表、SLO + 錯誤預算、擴展觸發條件、WA 自我審計、韌性策略
威脅建模、決定身分驗證/授權模型、租戶隔離、隱私/資料治理立場security-architectureSTRIDE 登記表、身分驗證/授權決策、零信任態勢、資料分類聲明
遷移/更換平台、提取服務、棄用 API、現代化遺留系統migration7 Rs / 絞殺藤模式選擇、提取順序、對比閱讀切換閘門、棄用時間表
「撰寫 ADR」、記錄/治理決策、根據先前決策檢查程式碼、審計 ADR 日誌adr-and-governanceADR(權重適中的模板)、生命週期/不可變性規則、漂移偵測、命名的適合度函式

表面覆蓋層(最多新增一個基礎表面)

選擇一個符合系統類型的基礎表面。代理式覆蓋層是附加的:當系統同時也是一個 LLM/代理系統時,將 surface-agentic 疊加在基礎表面之上 — 它不會取代它(根據下面的不變原則,它會改變拓撲、評估閘門和安全模型)。

系統類型閱讀來源重塑項目
多租戶 Web 應用 / SaaS(預設)surface-web-saas租戶隔離(豎井/池/橋)、三層 + 每個用戶端 BFF、OIDC 租戶解析
原生行動用戶端(iOS/Android)surface-mobile用戶端模式(MVVM/TCA/Clean/RIBs)、離線/同步 + 衝突規則、SSOT/UDF
代理式 / LLM 系統surface-agentic編排設計、工作流程 vs 代理、多代理經濟學、RAG 拓撲、記憶層級、評估即閘門、代理安全
資料 / 分析 / ML 平台surface-data-intensive操作/分析邊界、批次 vs 串流、網格 vs 集中式所有權
內部工具 / 開發者平台 (IDP)surface-internal-platform團隊拓撲橋接、平台即產品的門檻、「先別建平台」閘門

交接

當預期有下游建置工作時,請閱讀 handoff 並產出 handoff.yaml 伴隨檔;如果是獨立的請求解,而下游不會讀取時則跳過。

通用不變原則

  • 解決方案前的需求閘門。 在功能需求和非功能性需求(NFR)被擷取,且任何矛盾(例如「完整網路隔離」與「即時公開資料攝取」)被揭露並解決之前,不得提出、概述或推薦任何設計。對於缺失的輸入,一次問一個問題;將未知標記為 TBD;絕不發明一個請求者未提供或批准的数字。
  • 不要過度架構。 預設採用模組化單體架構和最輕量的足夠產物 — 一個單一的 ADR 往往勝過一份完整的 arc42,一個共享函式庫往往勝過一個平台團隊。僅在指定的分解因子證明其合理性時(而非因為它是「現代」選擇),才增加複雜度(服務拆分、事件溯源、平台團隊)。將成熟階段的架構應用於 MVP 是應避免的失敗模式。
  • 根據可逆性權重分析。 將每個決策視為單向門(不可逆:資料儲存、公開 API 形狀、組織/團隊邊界)或雙向門。單向門需要更深入的分析和一個 ADR;雙向門只需快速決定。明確命名選項並陳述「如果 {觸發條件} 成立,將選擇 X」。
  • 每個建議都是一個具體選擇 + 不要建置什麼 + 明確說明的取捨。 每次傳遞限制在 3-5 個決策;更多則更像是文件傾倒,而非決策集合。
  • 詳盡清單使用統一的表格 + 自我審計計數,絕不使用敘述性文字。 對於任何「涵蓋 N 項」的任務(Well-Architected 支柱、每個元素的 STRIDE、API 清單),每項填寫一行,並在宣告完成前對比已覆蓋行數與總數 — 單一的敘述性傳遞會可靠地遺漏行數,並在達到完整覆蓋之前就停止引用發現。
  • 區分事實、決策、假設和提議。 保留上游決策和使用者約束,或明確標記衝突;優先依據儲存庫和產物證據,而非通用預設值。

核心工作流程

  1. 檢查請求、證據、約束和現有產物(PRD、ADR 日誌、設計文件)。
  2. 需求閘門:功能 + NFR + 約束已擷取,矛盾已揭露。
  3. 選擇最小且足夠的路徑:一個主要任務,最多一個表面覆蓋層。
  4. 記錄重大假設和未解決的輸入(附上負責人)。
  5. 產出請求的產物,以參考資料命名的框架為基礎;每次傳遞限制在 3-5 個決策,每個決策附帶其取捨。
  6. 根據請求、約束和驗收標準進行驗證;陳述信心程度。
  7. 當預期有下游建置工作時,產出精簡的 handoff.yaml。

產物合約

每個參考資料定義其自身的產物。每個架構產物都必須記錄:所做的決策和考慮過的選項;接受的取捨;區分的事實/決策/假設;以及應用於任何難以逆轉的決策的可逆性視角。一次完整的架構傳遞最多可產出五個下游產物 — 解決方案架構文件(assets/solution-architecture-doc.md,arc42 風格)、API/事件合約、NFR 預算(assets/nfr-budget-worksheet.md)、ADR(assets/adr-template.md)和 STRIDE 威脅模型(assets/threat-model-register.md)— 加上 DDD 畫布(assets/bounded-context-canvas.md、assets/aggregate-design-canvas.md)和 assets/arc42-skeleton.md(當工作需求它們時)。每當預期有下游工作時,提供 machine-readable 的 handoff.yaml 伴隨檔;請參閱 handoff。

完成與交接

在完成前:

  • 確認每個請求的產物都存在,且其驗收標準是可檢查的。
  • 確認每個詳盡清單產物都是一個帶自我審計計數的表格,而非敘述性文字。
  • 記錄決策、假設、風險和未解決的問題(附上指定的負責人)。
  • 區分已執行的驗證與待執行的驗證;誠實地陳述信心程度。
  • 當預期有下游建置工作時,產出 handoff.yaml 伴隨檔,包含產物路徑、約束、決策、風險和建議的下一步技能 — 但不重複完整的產物。絕不無聲地呼叫一個建構技能;在 recommended_next 中命名它。

資源

僅載入所選路徑要求的內容;絕不預先載入。

相關技能