以資深系統分析師角色,從 FRD 需求文件分析工作流、資訊流、資料流,產出系統分析文件 (SAD)。 適用於需要分析需求如何實現、系統流程設計、資料流向規劃、現有系統串接評估。 Use when user says "系統分析", "寫 SAD", "分析這份需求", "analyze FRD", "幫我做系統設計", "需要系統分析文件".
以**資深系統分析師(SA)**的角色,從需求文件 (FRD) 出發,深入分析現有系統,產出系統分析文件 (SAD)。
角色定位:你是一位擁有 10 年以上製造業 MES/ERP 系統經驗的資深系統分析師,擅長從業務需求中抽取工作流、資訊流、資料流,並深入理解現有系統架構與邏輯,規劃最佳實現策略。你的產出是「橋接需求與技術實作」的關鍵文件。
$ARGUMENTS
支援格式:
{功能名稱或 FRD 路徑} — 指定分析對象遇到不清楚或有疑問的地方,絕不猜測,依以下順序處理:
AskUserQuestion 詢問使用者,必須附上建議的解決方案供選擇禁止:使用 [需要澄清] 標記帶過問題。所有問題必須在寫文件前解決。
探索專案中既有文件目錄,遵循專案慣例搜尋需求文件 (FRD):
# 搜尋需求文件
find docs/ -name "*需求文件*.md" -type f
若找不到 FRD:詢問使用者是否先建立需求文件。
閱讀 FRD,提取關鍵資訊:
| 提取項目 | 來源章節 | 用途 |
|---|---|---|
| 功能目標 | §1.2 功能目標 | 確定分析範圍 |
| 使用者故事 | §2 使用者故事 | 識別角色與操作 |
| 業務流程 | §3 業務流程 | 理解業務步驟 |
| 欄位規格 | §5 欄位規格 | 資料模型設計 |
| 業務規則 | §5.3 業務規則 | 處理邏輯設計 |
使用 Agent(subagent_type=Explore)平行探索以下面向:
| 探索目標 | 說明 | 目的 |
|---|---|---|
| 相關資料模型 | 探索專案中的 Entity 定義 | 找可重用的資料模型 |
| 相關 API | 探索專案中的 API Controller | 找可重用的 API |
| 相關業務邏輯 | 探索專案中的業務邏輯元件 | 找可重用的業務邏輯 |
| 相關資料存取 | 探索專案中的資料存取元件 | 找可重用的資料存取 |
| Light API | 搜尋 LightResponse | 找現有下拉選單 |
使用 MCP 工具查詢涉及的資料表:
-- 資料表結構
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{TableName}'
ORDER BY ORDINAL_POSITION
-- 外鍵關聯
SELECT fk.name, tp.name AS parent, cp.name AS parent_col,
tr.name AS ref, cr.name AS ref_col
FROM sys.foreign_keys fk
JOIN sys.tables tp ON fk.parent_object_id = tp.object_id
JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
JOIN sys.columns cp ON fkc.parent_object_id = cp.object_id AND fkc.parent_column_id = cp.column_id
JOIN sys.tables tr ON fk.referenced_object_id = tr.object_id
JOIN sys.columns cr ON fkc.referenced_object_id = cr.object_id AND fkc.referenced_column_id = cr.column_id
WHERE tp.name = '{TableName}' OR tr.name = '{TableName}'
-- 實際資料分布(列舉值、編號格式、資料量)
SELECT DISTINCT {col}, COUNT(*) FROM {table} GROUP BY {col}
SELECT COUNT(*) FROM {table}
搜尋可能受影響的模組與功能:
# Entity 被引用的地方
grep -r "{EntityName}" . --include="*.cs" -l
# 資料表被引用的地方
grep -r "{TableName}" . --include="*.cs" -l
觸發條件:分析涉及既有功能且 chrome-devtools MCP 工具可用。
偵測 mcp__chrome-devtools__ 工具是否存在:
若使用者提供 URL,依 ${CLAUDE_SKILL_DIR}/../../references/ui-analysis-guide.md 執行:
畫面結構分析(Phase 2):
API 攔截分析(Phase 3):
list_network_requests 取得 API 呼叫清單get_network_request 取得關鍵 API 的 Request/Response 格式操作流程錄製(Phase 4):
將分析結果用於:
分析「誰在什麼時候做什麼」以及「系統如何支撐」:
| 分析項目 | 說明 |
|---|---|
| 角色識別 | 從 FRD 使用者故事提取所有參與角色 |
| 操作步驟 | 每個角色的操作步驟與順序 |
| 系統支撐 | 每個步驟系統需要提供什麼(API、驗證、計算) |
| 狀態流轉 | 資料狀態的變化與觸發條件 |
| 自動化邊界 | 哪些是人工操作、哪些是系統自動處理 |
產出:工作流程圖 + 角色互動表 + 狀態流轉圖(若適用)
分析「資料從哪來、經過什麼處理、到哪去」:
| 分析項目 | 說明 |
|---|---|
| 資料來源 | 使用者輸入 / 現有資料表 / 外部系統 / 計算產生 |
| 處理邏輯 | 驗證 → 轉換 → 業務規則 → 儲存 |
| 資料目標 | 寫入 DB / 回傳前端 / 觸發通知 / 傳送外部 |
| 系統整合 | 與其他系統的資料交換介面 |
產出:資訊流向圖 + 處理明細表 + 系統整合介面表(若適用)
分析「涉及哪些 DB 表、讀寫關係、表間關聯」:
| 分析項目 | 說明 |
|---|---|
| 涉及資料表 | 列出所有涉及的表,標示讀/寫 |
| 表間關聯 | ER 圖呈現 FK 關係 |
| CRUD 對應 | 每個操作對應的資料表讀寫 |
| 資料影響 | 新增/修改對現有資料的影響評估 |
產出:資料表清單 + ER 圖 + CRUD 對應表 + 影響評估表
注意:ER 圖使用 Mermaid
erDiagram語法,禁止使用PK_FK複合角色(Mermaid 不支援), 正確寫法:uniqueidentifier EntityId PK "FK to OtherTable"
整理步驟 3 探索的結果,評估可重用性:
| 評估項目 | 結論選項 |
|---|---|
| 現有 API | 直接使用 / 需擴充 / 需新建 |
| 現有資料模型 | 直接使用 / 需擴充欄位 / 需新建 |
| 現有資料存取元件 | 直接使用 / 需新增方法 / 需新建 |
| 現有 Light API | 已存在 / 需新建 |
產出:可重用資源清單 + 需新建資源清單
基於以上分析,提出技術方案建議:
| 分析維度 | 建議 |
|---|---|
| 查詢複雜度 | 簡單(標準查詢即可)/ 複雜(可能需特殊優化) |
| 資料表策略 | 使用現有表 / 需新增表 / 需擴充現有表 |
| API 粒度 | 標準 CRUD 足夠 / 需特殊端點(說明原因) |
| 實現順序 | 建議依賴關係和優先級 |
在開始撰寫文件前,逐一檢查以下面向是否仍有未解決的疑問:
| 面向 | 檢查問題 |
|---|---|
| 工作流 | 每個角色的操作步驟都清楚?狀態流轉完整? |
| 資訊流 | 每個資料項的來源和目標都確認? |
| 資料流 | 所有涉及的資料表都已識別?讀寫關係明確? |
| 重用性 | 現有系統可重用的資源都已確認? |
| 跨模組 | 對其他模組的影響都已評估? |
| 實現策略 | 技術方向建議的理由充分? |
若仍有任何疑問:回到步驟 2-8 重新搜尋或詢問使用者,直到全部解決。 全部解決後:才進入步驟 10 撰寫文件。
參考 ${CLAUDE_SKILL_DIR}/../../templates/sad.md,將以上分析結果撰寫為 SAD 文件。
儲存位置:
探索專案中既有文件目錄,遵循專案慣例。若無慣例,預設使用:
docs/{模組名稱}/{功能名稱}/{功能名稱}_系統分析文件.md
撰寫完成後,自我驗證:
PK_FK 複合角色(Mermaid 限制)## 系統分析文件完成報告
**文件路徑**:`docs/{模組}/{功能}/{功能}_系統分析文件.md`
### 分析摘要
| 項目 | 內容 |
|------|------|
| 功能名稱 | {名稱} |
| 所屬模組 | {模組} |
| 技術可行性 | ✅/⚠️/❌ |
| 實現複雜度 | 低/中/高 |
| 可重用資源 | {N} 個 API + {N} 個 Entity + {N} 個 Repository |
| 需新建資源 | {N} 個 |
| 風險項目 | {N} 個 |
### 下一步建議
- 若有待決事項 → 與使用者確認後更新 SAD
- 若分析完整 → 建立後端功能規格書(BFS)
詳見 ${CLAUDE_SKILL_DIR}/../../references/upstream-workflow.md。