From 64a30cd4884d423985533fafd4c76c08deb65157 Mon Sep 17 00:00:00 2001 From: Ignacio Lee Date: Tue, 20 Jan 2026 00:37:46 +0800 Subject: [PATCH 1/2] feat: update SDD templates to include ideation and archiving processes --- .gitignore | 3 + scripts/templates/sdd-auto.md | 39 +++++- scripts/templates/sdd-ideate.md | 218 ++++++++++++++++++++++++++++++++ scripts/templates/sdd-impl.md | 30 ++++- 4 files changed, 283 insertions(+), 7 deletions(-) create mode 100644 scripts/templates/sdd-ideate.md diff --git a/.gitignore b/.gitignore index c7d4e0e..6ccd8ff 100644 --- a/.gitignore +++ b/.gitignore @@ -78,3 +78,6 @@ test_env/ # .codex/prompts/sdd-*.md # .github/prompts/sdd-*.prompt.md +.codex/ +.claude/ +.github/ \ No newline at end of file diff --git a/scripts/templates/sdd-auto.md b/scripts/templates/sdd-auto.md index bc4541b..f989ccb 100644 --- a/scripts/templates/sdd-auto.md +++ b/scripts/templates/sdd-auto.md @@ -23,6 +23,10 @@ find . -type d -maxdepth 3 | grep -E "src|models|services" | head -10 # 程式碼樣本 find . -name "*.ts" -o -name "*.py" -o -name "*.go" | head -5 + +# 功能發想清單(如有) +echo "=== 待實作功能 ===" +ls ideate/p0/*.md ideate/p1/*.md ideate/p2/*.md 2>/dev/null || echo "無待處理的功能發想" ``` **判斷優先順序:** Prompt 指定 > 專案上下文 > 詢問使用者 > 預設 TypeScript @@ -135,6 +139,7 @@ Feature: {功能名稱} 4. **Phase 3** → 實作檔案(依 architecture.md) 5. **Phase 4** → `docs/features/{feature}/conclusion.md` 6. 失敗時返回 Phase 3 重試 +7. **歸檔功能發想**(如有對應的 ideate 檔案) **選用階段(不包含在自動模式):** - **Integration Tests**:如需測試先行開發,請使用手動工作流程 @@ -143,19 +148,41 @@ Feature: {功能名稱} **輸出結構:** ``` project_root/ -├── features/{feature}.feature # Phase 1 +├── ideate/ # 功能發想 +│ ├── p0/ # 緊急優先級 +│ ├── p1/ # 重要優先級 +│ ├── p2/ # 一般優先級 +│ └── done/ # 已完成實作 +│ └── {feature}.md # 歸檔的功能發想 +├── features/{feature}.feature # Phase 1 ├── docs/features/{feature}/ -│ ├── architecture.md # Phase 2 -│ └── conclusion.md # Phase 4 +│ ├── architecture.md # Phase 2 +│ └── conclusion.md # Phase 4 └── {專案目錄}/ - ├── {模型檔案} # Phase 3 - └── {服務檔案} # Phase 3 + ├── {模型檔案} # Phase 3 + └── {服務檔案} # Phase 3 +``` + +## 歸檔功能發想 + +Phase 4 驗證通過後,檢查是否有對應的功能發想檔案需要歸檔: + +```bash +# 檢查各優先級資料夾 +ls ideate/p0/{feature}.md ideate/p1/{feature}.md ideate/p2/{feature}.md 2>/dev/null + +# 如存在,移動到已完成資料夾並更新狀態 +mkdir -p ideate/done +mv ideate/p0/{feature}.md ideate/done/ 2>/dev/null || \ +mv ideate/p1/{feature}.md ideate/done/ 2>/dev/null || \ +mv ideate/p2/{feature}.md ideate/done/ 2>/dev/null ``` -**重要:** +**重要:** - Phase 2 輸出繁體中文 Markdown(語言無關) - Phase 3 遵循專案技術棧與架構 - 每個 Phase 必須完成才進入下一個 - Integration tests 為選用功能,不包含在自動模式中 +- 完成後自動歸檔對應的 ideate 檔案(如有) 開始執行 Phase 1。 diff --git a/scripts/templates/sdd-ideate.md b/scripts/templates/sdd-ideate.md new file mode 100644 index 0000000..d99bb90 --- /dev/null +++ b/scripts/templates/sdd-ideate.md @@ -0,0 +1,218 @@ +--- +description: 階段 0 - 針對主題發想產品功能點子(策略師角色) +--- + +# SDD 階段 0:功能發想(靈感) + +**角色:** 產品策略師 + +**目標:** 針對指定主題,深入分析專案現狀並發想具體可行的功能點子,每個點子獨立存檔於 `ideate/` 資料夾,可直接用於階段 1。 + +## 發想主題 + +__PROMPT__ + +## 主題類型參考 + +| 主題類型 | 發想方向 | 思考重點 | +|---------|---------|---------| +| 新增功能 | 全新能力、創新特性 | 使用者痛點、市場趨勢、競品分析 | +| 完善體驗 | 優化流程、提升易用性 | 使用者旅程、摩擦點、操作效率 | +| 問題修復 | 解決已知問題、技術債 | 錯誤回報、效能瓶頸、穩定性 | +| 效能優化 | 速度、資源使用 | 載入時間、記憶體、回應速度 | +| 安全強化 | 防護、合規、隱私 | 漏洞、權限、資料保護 | + +## 您的職責約束 + +- 您是產品策略師,專注於「做什麼」而非「怎麼做」 +- 不要討論技術實作細節(資料庫、API、演算法) +- 專注於使用者價值和業務影響 +- 每個點子必須具體、可執行、有明確範圍 + +## 您的任務 + +### 1. 專案分析 + +首先掃描專案,了解現有功能和架構: + +```bash +# 建立 ideate 資料夾結構(如不存在) +mkdir -p ideate/p0 ideate/p1 ideate/p2 ideate/done + +# 查看各優先級的功能發想 +echo "=== P0 (緊急) ===" && ls ideate/p0/*.md 2>/dev/null || echo "無" +echo "=== P1 (重要) ===" && ls ideate/p1/*.md 2>/dev/null || echo "無" +echo "=== P2 (一般) ===" && ls ideate/p2/*.md 2>/dev/null || echo "無" +echo "=== 已完成 ===" && ls ideate/done/*.md 2>/dev/null || echo "無" + +# 查看現有功能規格 +ls features/ 2>/dev/null || echo "尚無 features 目錄" + +# 查看專案結構 +ls -la | head -20 +``` + +### 2. 發想原則 + +根據主題類型,運用以下思考框架: + +**新增功能:** +- 使用者目前無法做到什麼? +- 競品有什麼我們沒有的? +- 什麼功能能帶來最大價值? + +**完善體驗:** +- 使用者在哪裡卡住或困惑? +- 哪些操作步驟可以簡化? +- 什麼資訊應該更早呈現? + +**問題修復:** +- 有哪些已知的錯誤或異常? +- 什麼情況下系統表現不穩定? +- 使用者最常抱怨什麼? + +### 3. 輸出格式 + +**每個功能點子建立獨立檔案,依優先級存放:** + +| 優先級 | 資料夾 | 說明 | +|-------|--------|------| +| P0 | `ideate/p0/` | 緊急:影響核心功能、阻礙使用者、需立即處理 | +| P1 | `ideate/p1/` | 重要:顯著提升體驗、中期規劃、資源允許時優先 | +| P2 | `ideate/p2/` | 一般:錦上添花、長期規劃、可延後處理 | + +檔案路徑:`ideate/{priority}/{feature_name}.md` + +檔案命名規則: +- 使用小寫英文 +- 單字間用連字號 `-` 連接 +- 簡潔描述功能(如 `remember-login.md`、`export-csv.md`) + +**檔案內容結構:** + +```markdown +--- +title: {功能名稱} +priority: P0/P1/P2 +impact: 高/中/低 +complexity: 高/中/低 +status: pending +created: {YYYY-MM-DD} +--- + +# {功能名稱} + +## 問題陳述 + +{描述目前的問題或機會,1-2 句} + +## 目標使用者 + +{誰會使用這個功能} + +## 功能描述 + +{具體描述這個功能做什麼,3-5 句} + +## 使用情境 + +- 情境 1:{使用者在什麼情況下會用到} +- 情境 2:{另一個使用情境} + +## 預期效益 + +- {對使用者的好處} +- {對業務的好處} + +## 階段 1 輸入 + +{一段完整的需求描述,可直接作為 sdd-spec 的輸入} +``` + +## 範例輸出 + +針對主題:「完善體驗 - 使用者登入流程」 + +建立檔案 `ideate/p1/remember-login.md`(P1 重要優先級): + +```markdown +--- +title: 記住登入狀態 +priority: P1 +impact: 高 +complexity: 中 +status: pending +created: 2024-01-15 +--- + +# 記住登入狀態 + +## 問題陳述 + +使用者每次開啟應用程式都需要重新登入,造成使用摩擦。 + +## 目標使用者 + +所有需要登入的使用者,特別是頻繁使用的活躍用戶。 + +## 功能描述 + +提供「記住我」選項,讓使用者可以選擇在信任的裝置上保持登入狀態。系統會使用安全的 token 機制,在一定期限內(如 30 天)自動登入,同時提供「登出所有裝置」的安全選項。 + +## 使用情境 + +- 情境 1:使用者在自己的手機上勾選「記住我」,之後開啟 App 直接進入主頁 +- 情境 2:使用者在公用電腦上不勾選「記住我」,關閉瀏覽器後自動登出 + +## 預期效益 + +- 減少登入摩擦,提升使用者留存率 +- 增加日活躍用戶數(DAU) + +## 階段 1 輸入 + +實作「記住我」登入功能。使用者登入時可勾選「記住我」選項,勾選後在 30 天內自動登入,不需重新輸入密碼。未勾選則關閉瀏覽器後需重新登入。使用者可在設定中查看已登入裝置並登出特定裝置或所有裝置。 +``` + +## 品質檢查清單 + +完成前,確保: + +- [ ] 已建立 `ideate/` 資料夾結構(p0、p1、p2、done) +- [ ] 已分析專案現有功能,避免重複 +- [ ] 每個點子都有獨立的 `.md` 檔案 +- [ ] 檔案依優先級放置到正確資料夾(p0/p1/p2) +- [ ] 檔案命名符合規則(小寫、連字號) +- [ ] 每個檔案包含完整的 frontmatter 與內容 +- [ ] frontmatter 中的 priority 與資料夾一致 +- [ ] 「階段 1 輸入」段落可直接使用 + +## 資料夾結構 + +``` +project_root/ +└── ideate/ + ├── p0/ # 緊急優先級 + │ └── critical-bug-fix.md + ├── p1/ # 重要優先級 + │ ├── remember-login.md + │ └── export-csv.md + ├── p2/ # 一般優先級 + │ ├── dark-mode.md + │ └── custom-theme.md + └── done/ # 已完成實作 + ├── user-profile.md + └── search-filter.md +``` + +## 下一步 + +完成功能發想後: + +1. 檢視 `ideate/` 資料夾中的功能清單 +2. 與團隊討論優先級 +3. 選擇要實作的功能,讀取該檔案的「階段 1 輸入」 +4. 執行:`__CMD_PREFIX__sdd-spec {階段 1 輸入內容}` +5. 實作完成後,該功能檔案會自動移至 `ideate/done/` + +現在根據主題開始發想功能點子,請產出 3-5 個具體可行的功能提案,每個存為獨立檔案。 diff --git a/scripts/templates/sdd-impl.md b/scripts/templates/sdd-impl.md index d3589b5..0c514c3 100644 --- a/scripts/templates/sdd-impl.md +++ b/scripts/templates/sdd-impl.md @@ -200,7 +200,34 @@ if not user: - 運行相關測試:`npm test` 或 `pytest` - 確保所有情境都能通過 - 如失敗,修整程式碼並重複此步驟 -8. 回報已建立的檔案清單與驗證結果 +8. **歸檔功能發想**:如果此功能來自 `ideate/` 資料夾,將對應檔案移至已完成區 +9. 回報已建立的檔案清單與驗證結果 + +## 歸檔功能發想 + +實作完成且所有檢查通過後,檢查是否有對應的功能發想檔案需要歸檔: + +```bash +# 檢查各優先級資料夾是否存在對應的 ideate 檔案 +ls ideate/p0/{feature_name}.md 2>/dev/null || \ +ls ideate/p1/{feature_name}.md 2>/dev/null || \ +ls ideate/p2/{feature_name}.md 2>/dev/null + +# 如存在,移動到已完成資料夾 +mkdir -p ideate/done +mv ideate/p0/{feature_name}.md ideate/done/ 2>/dev/null || \ +mv ideate/p1/{feature_name}.md ideate/done/ 2>/dev/null || \ +mv ideate/p2/{feature_name}.md ideate/done/ 2>/dev/null + +# 更新檔案中的 status +# 將 status: pending 改為 status: completed +``` + +**注意事項:** +- 只有在所有品質檢查通過後才進行歸檔 +- 依序檢查 `ideate/p0/`、`ideate/p1/`、`ideate/p2/` 資料夾 +- 如果檔案不存在於任何優先級資料夾,跳過此步驟 +- 移動後更新檔案 frontmatter 中的 `status: pending` 為 `status: completed` ## 下一步 @@ -208,3 +235,4 @@ if not user: - 執行專案既有測試框架驗證 - 進入 Phase 4:測試驗證(如有定義) - 整合至專案主要程式碼 +- 檢視 `ideate/` 資料夾中的下一個待實作功能 From da38dbafb00272ae3921fcffdef521265c4b4d1e Mon Sep 17 00:00:00 2001 From: Ignacio Lee Date: Wed, 21 Jan 2026 13:31:40 +0800 Subject: [PATCH 2/2] feat: enhance ideation process by adding user input analysis and examples --- scripts/templates/sdd-ideate.md | 218 ++++++++++++++++---------------- 1 file changed, 111 insertions(+), 107 deletions(-) diff --git a/scripts/templates/sdd-ideate.md b/scripts/templates/sdd-ideate.md index d99bb90..073f58d 100644 --- a/scripts/templates/sdd-ideate.md +++ b/scripts/templates/sdd-ideate.md @@ -2,93 +2,98 @@ description: 階段 0 - 針對主題發想產品功能點子(策略師角色) --- -# SDD 階段 0:功能發想(靈感) +# SDD 階段 0:功能發想 -**角色:** 產品策略師 +**角色:** 產品策略師 | **目標:** 深入分析專案現狀,發想具體可行的功能點子,獨立存檔於 `ideate/` 資料夾 -**目標:** 針對指定主題,深入分析專案現狀並發想具體可行的功能點子,每個點子獨立存檔於 `ideate/` 資料夾,可直接用於階段 1。 - -## 發想主題 +## 使用者輸入 __PROMPT__ +## 解析需求 + +從自然語言輸入提取:發想主題、點子數量(預設 3-5 個,「越多越好」則 5-8 個)、具體痛點/情境、約束條件、目標使用者、優先級偏好 + ## 主題類型參考 -| 主題類型 | 發想方向 | 思考重點 | -|---------|---------|---------| +| 主題 | 發想方向 | 思考重點 | +|-----|---------|---------| | 新增功能 | 全新能力、創新特性 | 使用者痛點、市場趨勢、競品分析 | | 完善體驗 | 優化流程、提升易用性 | 使用者旅程、摩擦點、操作效率 | | 問題修復 | 解決已知問題、技術債 | 錯誤回報、效能瓶頸、穩定性 | -| 效能優化 | 速度、資源使用 | 載入時間、記憶體、回應速度 | -| 安全強化 | 防護、合規、隱私 | 漏洞、權限、資料保護 | - -## 您的職責約束 -- 您是產品策略師,專注於「做什麼」而非「怎麼做」 -- 不要討論技術實作細節(資料庫、API、演算法) -- 專注於使用者價值和業務影響 -- 每個點子必須具體、可執行、有明確範圍 +## 職責約束 -## 您的任務 +產品策略師專注「做什麼」而非「怎麼做」。不討論技術實作細節,專注使用者價值和業務影響。 -### 1. 專案分析 +## 專案分析流程 -首先掃描專案,了解現有功能和架構: +### 1. 識別技術棧(CRITICAL) ```bash -# 建立 ideate 資料夾結構(如不存在) -mkdir -p ideate/p0 ideate/p1 ideate/p2 ideate/done +# 檢查配置檔案 +ls -la | grep -E "(package.json|requirements.txt|Gemfile|Cargo.toml|go.mod)" -# 查看各優先級的功能發想 -echo "=== P0 (緊急) ===" && ls ideate/p0/*.md 2>/dev/null || echo "無" -echo "=== P1 (重要) ===" && ls ideate/p1/*.md 2>/dev/null || echo "無" -echo "=== P2 (一般) ===" && ls ideate/p2/*.md 2>/dev/null || echo "無" -echo "=== 已完成 ===" && ls ideate/done/*.md 2>/dev/null || echo "無" +# Node.js: 檢查框架 +cat package.json | grep -E "(react|vue|next|express)" -# 查看現有功能規格 -ls features/ 2>/dev/null || echo "尚無 features 目錄" - -# 查看專案結構 -ls -la | head -20 +# Python: 檢查框架 +cat requirements.txt | grep -E "(django|flask|fastapi)" ``` -### 2. 發想原則 +**技術棧對照:** +- `package.json` → Node.js (檢查 `src/`, `app/`, `pages/`) +- `requirements.txt` → Python (檢查 `src/`, `app/`) +- `Gemfile` → Ruby/Rails (檢查 `app/`, `config/`) +- `Cargo.toml` → Rust (檢查 `src/`) +- `go.mod` → Go (檢查 `cmd/`, `pkg/`) + +**明確陳述:** 專案類型、語言、框架、程式碼位置。無法識別則列出 `ls -la` 和 `cat README.md`。 + +### 2. 檢查現有功能 -根據主題類型,運用以下思考框架: +```bash +# 檢查 ideate 資料夾(存在則列出,不存在才建立) +if [ -d "ideate" ]; then + echo "=== 現有發想 ===" + ls ideate/p0/*.md ideate/p1/*.md ideate/p2/*.md ideate/done/*.md 2>/dev/null || echo "無" +else + mkdir -p ideate/p0 ideate/p1 ideate/p2 ideate/done +fi + +# 檢查現有功能 +ls features/ 2>/dev/null || echo "尚無 features" +ls -la | head -10 +``` -**新增功能:** -- 使用者目前無法做到什麼? -- 競品有什麼我們沒有的? -- 什麼功能能帶來最大價值? +### 3. 發想原則 -**完善體驗:** -- 使用者在哪裡卡住或困惑? -- 哪些操作步驟可以簡化? -- 什麼資訊應該更早呈現? +**根據技術棧調整方向:** +- **前端:** UI/UX、互動體驗、回應式設計、無障礙功能 +- **後端:** 資料處理、安全性、效能、錯誤處理 +- **全端:** 前後端整合、資料流、狀態管理 +- **行動:** 原生功能(相機、定位)、離線支援、效能優化 -**問題修復:** -- 有哪些已知的錯誤或異常? -- 什麼情況下系統表現不穩定? -- 使用者最常抱怨什麼? +**思考框架:** +- 新增功能:使用者無法做到什麼?競品有什麼?技術棧支援嗎? +- 完善體驗:使用者在哪裡卡住?如何簡化步驟? +- 問題修復:已知錯誤?不穩定情況?檢查 TODO/FIXME 註解 -### 3. 輸出格式 +## 輸出格式 -**每個功能點子建立獨立檔案,依優先級存放:** +### 優先級分類 | 優先級 | 資料夾 | 說明 | |-------|--------|------| -| P0 | `ideate/p0/` | 緊急:影響核心功能、阻礙使用者、需立即處理 | -| P1 | `ideate/p1/` | 重要:顯著提升體驗、中期規劃、資源允許時優先 | -| P2 | `ideate/p2/` | 一般:錦上添花、長期規劃、可延後處理 | +| P0 | `ideate/p0/` | 緊急:影響核心功能、阻礙使用者 | +| P1 | `ideate/p1/` | 重要:顯著提升體驗、中期規劃 | +| P2 | `ideate/p2/` | 一般:錦上添花、長期規劃 | -檔案路徑:`ideate/{priority}/{feature_name}.md` +### 檔案格式 -檔案命名規則: -- 使用小寫英文 -- 單字間用連字號 `-` 連接 -- 簡潔描述功能(如 `remember-login.md`、`export-csv.md`) +**檔名:** `ideate/{priority}/{feature-name}.md`(小寫、連字號、簡潔) -**檔案內容結構:** +**內容結構:** ```markdown --- @@ -103,37 +108,35 @@ created: {YYYY-MM-DD} # {功能名稱} ## 問題陳述 - -{描述目前的問題或機會,1-2 句} +{描述問題或機會,1-2 句} ## 目標使用者 - -{誰會使用這個功能} +{誰會使用} ## 功能描述 - -{具體描述這個功能做什麼,3-5 句} +{具體描述做什麼,3-5 句} ## 使用情境 - - 情境 1:{使用者在什麼情況下會用到} - 情境 2:{另一個使用情境} ## 預期效益 - - {對使用者的好處} - {對業務的好處} ## 階段 1 輸入 - -{一段完整的需求描述,可直接作為 sdd-spec 的輸入} +{完整需求描述,可直接作為 sdd-spec 的輸入} ``` -## 範例輸出 +## 範例 + +**輸入:** "改善登入體驗,每次都要重新登入很麻煩,想 3 個點子讓常用使用者更方便" -針對主題:「完善體驗 - 使用者登入流程」 +**分析:** +- 技術棧:Next.js + React 前端(檢查到 package.json 含 react/next) +- 主題:登入體驗改善 | 數量:3 個 | 痛點:重複登入 | 使用者:活躍用戶 -建立檔案 `ideate/p1/remember-login.md`(P1 重要優先級): +**產出:** `ideate/p1/remember-login.md` ```markdown --- @@ -148,71 +151,72 @@ created: 2024-01-15 # 記住登入狀態 ## 問題陳述 - 使用者每次開啟應用程式都需要重新登入,造成使用摩擦。 ## 目標使用者 - 所有需要登入的使用者,特別是頻繁使用的活躍用戶。 ## 功能描述 - -提供「記住我」選項,讓使用者可以選擇在信任的裝置上保持登入狀態。系統會使用安全的 token 機制,在一定期限內(如 30 天)自動登入,同時提供「登出所有裝置」的安全選項。 +提供「記住我」選項,讓使用者可以選擇在信任裝置上保持登入狀態。系統使用安全 token 機制,30 天內自動登入,並提供「登出所有裝置」安全選項。 ## 使用情境 - -- 情境 1:使用者在自己的手機上勾選「記住我」,之後開啟 App 直接進入主頁 -- 情境 2:使用者在公用電腦上不勾選「記住我」,關閉瀏覽器後自動登出 +- 情境 1:使用者在手機勾選「記住我」,之後開啟 App 直接進入主頁 +- 情境 2:使用者在公用電腦不勾選「記住我」,關閉瀏覽器後自動登出 ## 預期效益 - - 減少登入摩擦,提升使用者留存率 - 增加日活躍用戶數(DAU) ## 階段 1 輸入 - -實作「記住我」登入功能。使用者登入時可勾選「記住我」選項,勾選後在 30 天內自動登入,不需重新輸入密碼。未勾選則關閉瀏覽器後需重新登入。使用者可在設定中查看已登入裝置並登出特定裝置或所有裝置。 +實作「記住我」登入功能。使用者登入時可勾選「記住我」選項,勾選後在 30 天內自動登入,不需重新輸入密碼。未勾選則關閉瀏覽器後需重新登入。使用者可在設定中查看已登入裝置並登出特定或所有裝置。 ``` -## 品質檢查清單 +## 品質檢查 + +**專案分析:** +- [ ] 已識別技術棧(語言、框架、程式碼位置) +- [ ] 已檢查 ideate 資料夾(存在則列出現有點子) +- [ ] 僅在必要時建立資料夾 -完成前,確保: +**功能發想:** +- [ ] 符合技術棧特性 +- [ ] 回應使用者需求 +- [ ] 不與現有點子/已完成功能重複 -- [ ] 已建立 `ideate/` 資料夾結構(p0、p1、p2、done) -- [ ] 已分析專案現有功能,避免重複 -- [ ] 每個點子都有獨立的 `.md` 檔案 -- [ ] 檔案依優先級放置到正確資料夾(p0/p1/p2) -- [ ] 檔案命名符合規則(小寫、連字號) -- [ ] 每個檔案包含完整的 frontmatter 與內容 -- [ ] frontmatter 中的 priority 與資料夾一致 -- [ ] 「階段 1 輸入」段落可直接使用 +**檔案產出:** +- [ ] 獨立 .md 檔案,正確資料夾 +- [ ] 檔名符合規則 +- [ ] 完整 frontmatter 與內容 +- [ ] priority 與資料夾一致 +- [ ] 「階段 1 輸入」可直接使用 ## 資料夾結構 ``` project_root/ └── ideate/ - ├── p0/ # 緊急優先級 - │ └── critical-bug-fix.md - ├── p1/ # 重要優先級 - │ ├── remember-login.md - │ └── export-csv.md - ├── p2/ # 一般優先級 - │ ├── dark-mode.md - │ └── custom-theme.md - └── done/ # 已完成實作 - ├── user-profile.md - └── search-filter.md + ├── p0/ # 緊急 + ├── p1/ # 重要 + ├── p2/ # 一般 + └── done/ # 已完成 ``` -## 下一步 +## 執行發想 + +**前置確認:** ✅ 已識別技術棧 → ✅ 已檢查 ideate 狀態 → ✅ 已解析需求 -完成功能發想後: +**發想步驟:** +1. 確認數量(預設 3-5 個) +2. 對齊主題與使用者痛點 +3. 考量技術棧特性(前端/後端/行動/全端) +4. 避免與現有點子重複 +5. 依影響力分配優先級(P0/P1/P2) +6. 建立獨立檔案到對應資料夾 -1. 檢視 `ideate/` 資料夾中的功能清單 -2. 與團隊討論優先級 -3. 選擇要實作的功能,讀取該檔案的「階段 1 輸入」 -4. 執行:`__CMD_PREFIX__sdd-spec {階段 1 輸入內容}` -5. 實作完成後,該功能檔案會自動移至 `ideate/done/` +**避免重複:** 若 ideate 已有點子,可考慮延伸補充、不同角度或替代方案。 + +現在開始發想並產出功能提案。 + +## 下一步 -現在根據主題開始發想功能點子,請產出 3-5 個具體可行的功能提案,每個存為獨立檔案。 +完成後執行:`__CMD_PREFIX__sdd-spec {階段 1 輸入內容}`