將想法腦力激盪成設計
概述
透過自然的協作對話,幫助將想法轉化為完整的設計和規格。
首先了解當前的專案脈絡,然後一次一個地提問以完善想法。一旦您了解要構建什麼,以小節(200-300 字)呈現設計,在每個節後確認到目前為止是否正確。
流程
了解想法:
- •首先檢視當前專案狀態(檔案、文件、最近的提交)
- •一次一個問題來完善想法
- •盡可能優先使用選擇題,但開放式問題也可以
- •每則訊息只有一個問題 - 如果一個主題需要更多探索,將其分成多個問題
- •專注於理解:目的、限制、成功標準
探索方法:
- •提出 2-3 種不同的方法及其權衡
- •以對話方式呈現選項,說明您的推薦和理由
- •首先提出您推薦的選項並解釋原因
呈現設計:
- •一旦您相信自己了解要構建什麼,就呈現設計
- •將其分成 200-300 字的小節
- •在每個小節後詢問到目前為止是否正確
- •涵蓋:架構、元件、資料流、錯誤處理、測試
- •如果有些內容不清楚,準備好回頭澄清
設計文件必要元素:
- •問題描述/概述 - 功能目的和解決的問題
- •需求 - 明確的需求清單(編號列表)
- •使用者體驗流程 - ASCII 流程圖
- •資料流程 - 資料如何在系統中流動
- •資料結構變更 - 新增或修改的型別/欄位(如適用)
- •UI 變更 - ASCII UI 圖(如適用)
- •修改檔案清單 - 表格列出所有變更
- •實作邏輯 - 關鍵程式碼片段
- •驗收標準 - checkbox 清單,定義「完成」的標準
UI 視覺化(適用於有介面的功能):
- •使用 ASCII/文字圖示呈現 UI 佈局和元件配置
- •標註互動元素、狀態變化、資料流向
- •呈現不同螢幕尺寸或狀態的變化(如:loading、error、empty)
UI 圖示範例格式:
code
┌─────────────────────────────────────┐ │ Header [≡] [×] │ ├─────────────────────────────────────┤ │ ┌──────────┐ ┌──────────────────┐ │ │ │ Sidebar │ │ Main Content │ │ │ │ - Item 1 │ │ │ │ │ │ - Item 2 │ │ [Button] │ │ │ │ - Item 3 │ │ │ │ │ └──────────┘ └──────────────────┘ │ ├─────────────────────────────────────┤ │ Footer │ └─────────────────────────────────────┘
常用符號:
- •
[ ]按鈕、checkbox - •
( )radio button - •
[===]輸入框 - •
[▼]下拉選單 - •
←→↑↓方向/流向 - •
├─┤分隔線 - •
●○狀態指示器
設計之後
文件化並立即提交:
- •將驗證過的設計寫入
docs/plans/YYYY-MM-DD-<topic>-design.md - •如果可用,使用 elements-of-style:writing-clearly-and-concisely 技能
- •立即使用
/auto-commit提交設計文件- •設計文件是獨立的交付物,不要等到實作完成才提交
- •分開提交可追蹤設計演進,避免大型混合 commit
- •執行
/hi-update-plans-index更新計畫索引
檔案命名規則:
- •格式:
YYYY-MM-DD-<descriptive-topic>-design.md - •命名前必須檢查
docs/plans/和docs/plans/archive/是否有同名檔案 - •如果名稱已存在於 archive,選擇不同的描述性名稱(換個說法)
- •好的命名範例:
- •
2026-01-06-inbox-crm-integration-design.md(而非重複的message-center-enhancement) - •
2026-01-06-customer-panel-redesign-design.md(具體描述功能)
- •
- •避免使用過於通用的名稱如
enhancement、improvement、update
目錄結構:
code
docs/plans/ ├── archive/ # 已完成的設計和計劃 │ ├── 2026-01-04-xxx-design.md │ └── 2026-01-04-xxx-plan.md ├── 2026-01-06-xxx-design.md # 進行中的設計 └── 2026-01-06-xxx-plan.md # 進行中的計劃
實作(如果繼續):
- •詢問:「準備好設置實作環境了嗎?」
- •使用 hi-skills:using-git-worktrees 創建隔離的工作區
- •使用 hi-skills:writing-plans 創建詳細的實作計劃
關鍵原則
- •一次一個問題 - 不要用多個問題讓人感到不知所措
- •優先選擇題 - 在可能的情況下比開放式問題更容易回答
- •無情地 YAGNI - 從所有設計中移除不必要的功能
- •探索替代方案 - 在確定之前總是提出 2-3 種方法
- •漸進式驗證 - 分節呈現設計,驗證每一節
- •保持靈活 - 當某些內容不清楚時回頭澄清