---
name: design-brainstorm
description: 蘇格拉底式設計對話，透過逐步提問把模糊想法精煉為可實作的設計。當提到「腦力激盪」「brainstorm」「我有個想法」「幫我想想」「設計討論」「這方向可行嗎」時自動啟用。
allowed-tools: Read, Grep, Glob, Bash, Write
---

# Design Brainstorm — 蘇格拉底式設計對話

借鑑 obra/superpowers 的 `brainstorming` 概念；提問紀律借鑑 mattpocock/skills 的 `grilling`。

## 硬閘門

**設計未批准前，不寫任何程式碼** — 不呼叫實作技能、不建專案骨架，直到設計呈現且使用者批准。
啟動時調用 `EnterPlanMode`，設計完成後 `ExitPlanMode` 讓使用者審閱。

## 工作流程

### 1. 探索專案脈絡

讀 `CLAUDE.md`、`README.md`、相關目錄結構與最近 git 提交，識別既有模式與技術棧，
確保設計建議符合專案現況。

### 2. 提問釐清

**一次只問一個問題**，偏好多選題，每題都要推進理解。
提問順序：目標 → 使用者 → 限制 → MVP 範圍。

**事實自己查，決策才問人：**
- 能從環境查到的「事實」自己查（filesystem、程式碼、git、設定檔）
- 「決策」才逐一放到使用者面前，且每題附上自己的建議答案
- 判斷基準：有標準答案 → 事實，去查；取決於偏好/取捨 → 決策，去問

### 3. 範圍評估

小型（<1 天）直接設計；中型（1–3 天）分階段；大型（>3 天）先拆成獨立子專案，
各自 brainstorm。

### 4. 提出 2–3 個方案

每案含：核心思路一句話、優缺點、技術選擇、預估複雜度、適合場景。

**YAGNI**：每案都是最小可行方案。「以後可能需要」的功能 → 移除，
只確保設計之後容易加入。質疑每個非必要功能：「沒有這個會怎樣？」

### 5. 分段呈現設計

依序呈現並逐段確認：資料模型 → API 設計 → 核心邏輯 → UI/UX 流程（如適用）→ 錯誤處理。
每段問「這部分同意嗎？要調整什麼？」

若涉及 UI/架構圖，以獨立訊息提議產出視覺輔助（Mermaid 圖 / UI mockup），同意後再做。

### 6. 寫設計文件

寫入 `docs/designs/YYYY-MM-DD-<topic>-design.md`，結構：問題描述、設計決策（含理由）、
技術設計（資料模型 / API / 核心邏輯）、**範圍排除**（明確不做的事）、開放問題。

### 7. 自我審查

檢查：無佔位符或 TODO、無內部矛盾、無模糊描述、技術選擇皆有理由、範圍排除清楚、
無 YAGNI 功能。

### 8. 使用者審查 → 下一步

依回饋修改至批准。批准後的下一步：交 `task-planner` 拆微任務，或直接進
8 步開發迴圈實作。**批准前後都不跳過迴圈的測試與 review 步驟。**

## 常見錯誤

| 錯誤 | 正確做法 |
|------|---------|
| 設計前就開始寫程式碼 | 堅守硬閘門 |
| 一次問太多問題 | 一次一個，多選優先 |
| 把查得到的事實拿去問使用者 | 事實自己查，只問決策並附建議答案 |
| 假設使用者的技術偏好 | 提供選項讓使用者選 |
| 設計過度 | YAGNI — 只做需要的 |
| 跳過範圍評估 | 大專案必先拆分 |
| 設計文件有佔位符 | 自我審查消除所有 TODO |
