54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
|
|
# 設計架構 (Design Architecture) 技能指南
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
`design-architecture` 是 Architect Pipeline 的核心步驟,用來基於 PRD 需求設計完整系統架構,產出單一嚴格輸出檔案 `docs/architecture/{feature}.md`。
|
|||
|
|
|
|||
|
|
## 輸入與輸出
|
|||
|
|
### 輸入
|
|||
|
|
- `docs/prd/{feature}.md`
|
|||
|
|
|
|||
|
|
### 輸出
|
|||
|
|
- `docs/architecture/{feature}.md`(唯一檔案,所有交付物必須嵌入此檔案)
|
|||
|
|
|
|||
|
|
## 必備章節(18 個)
|
|||
|
|
1. Overview
|
|||
|
|
2. System Architecture
|
|||
|
|
3. Service Boundaries
|
|||
|
|
4. Data Flow
|
|||
|
|
5. Database Schema
|
|||
|
|
6. API Contract
|
|||
|
|
7. Async / Queue Design
|
|||
|
|
8. Consistency Model
|
|||
|
|
9. Error Model
|
|||
|
|
10. Security Boundaries
|
|||
|
|
11. Integration Boundaries
|
|||
|
|
12. Observability
|
|||
|
|
13. Scaling Strategy
|
|||
|
|
14. Non-Functional Requirements
|
|||
|
|
15. Mermaid Diagrams
|
|||
|
|
16. ADR
|
|||
|
|
17. Risks
|
|||
|
|
18. Open Questions
|
|||
|
|
|
|||
|
|
## 設計原則
|
|||
|
|
1. **High Availability** — 設計容錯與復原力,勝過完美一致性
|
|||
|
|
2. **Scalability** — 設計水平擴展,勝過垂直擴展
|
|||
|
|
3. **Stateless First** — 偏好無狀態服務,外部化狀態到資料庫或快取
|
|||
|
|
4. **API First** — 先定義合約再實作,API 是主要介面
|
|||
|
|
5. **Event Driven First** — 偏好事件驅動溝通
|
|||
|
|
6. **Async First** — 偏好非同步處理
|
|||
|
|
|
|||
|
|
## 知識合約與可交付技能引用
|
|||
|
|
- **知識合約**:13 個(system-decomposition、api-contract-design、data-modeling、distributed-system-basics、architecture-patterns、storage-knowledge、async-queue-design、error-model-design、security-boundary-design、consistency-transaction-design、integration-boundary-design、observability-design、migration-rollout-design)
|
|||
|
|
- **可交付技能**:5 個(generate_mermaid_diagram、design_database_schema、generate_openapi_spec、write_adr、evaluate_tech_stack)
|
|||
|
|
|
|||
|
|
## 防範佔位符規則
|
|||
|
|
範例僅供說明用途。請勿重複使用範例中的佔位符元件、欄位、端點或結構,否則會與 PRD 要求不符。
|
|||
|
|
|
|||
|
|
## 不應做的事
|
|||
|
|
- 不改變 PRD 範圍或需求
|
|||
|
|
- 不建立任務拆分或里程碑
|
|||
|
|
- 不寫測試案例
|
|||
|
|
- 不寫實作程式碼
|
|||
|
|
- 不選擇特定函式庫或框架
|
|||
|
|
- 不產生 `docs/architecture/{feature}.md` 以外的檔案
|