From 4c8d5606a8a5132a9fba9c0a19a7593e03ca2e07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=84=AD=E6=B2=9B=E8=BB=92?= Date: Mon, 8 Sep 2025 12:36:50 +0800 Subject: [PATCH] feat: update project configuration and migrate to Gitea MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add CLAUDE.md working guidelines for AI assistant - Update project management tools and scripts - Reorganize analysis reports with current dates - Move document consistency checklist to scripts directory - Update user flow specifications - Add compliance checking tool 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .claude/settings.local.json | 7 +- CLAUDE.md | 142 +++ ISSUES.md | 128 +- .../user-flow-specification-old.md | 762 ++++++++++++ docs/04_technical/user-flow-specification.md | 1100 ++++++----------- drama | 4 + reports/README.md | 2 +- ... => 2025-09-07_UI-consistency-analysis.md} | 0 ...-09-07_UI-design-gaps-severity-analysis.md | 169 +++ .../document-consistency-checklist.md | 0 tools/check_compliance.sh | 160 +++ tools/create_report.sh | 5 + tools/issue.sh | 18 +- 13 files changed, 1765 insertions(+), 732 deletions(-) create mode 100644 CLAUDE.md create mode 100644 docs/04_technical/user-flow-specification-old.md rename reports/analysis/{2024-12-08_UI-consistency-analysis.md => 2025-09-07_UI-consistency-analysis.md} (100%) create mode 100644 reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md rename {docs/04_technical => scripts}/document-consistency-checklist.md (100%) create mode 100755 tools/check_compliance.sh diff --git a/.claude/settings.local.json b/.claude/settings.local.json index ca391ef..419ab6f 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -10,7 +10,12 @@ "Bash(chmod:*)", "Bash(./scripts/maintenance/create_issue.sh:*)", "Bash(./scripts/maintenance/check_issues.sh:*)", - "Bash(./check_issues.sh)" + "Bash(./check_issues.sh)", + "Bash(cat:*)", + "Bash(./drama issue)", + "Bash(./drama report \"UI設計缺漏嚴重性評估\")", + "Bash(./drama compliance)", + "Bash(./drama report analysis \"文檔分類組織結構優化\")" ], "deny": [], "ask": [] diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..f72520e --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,142 @@ +# Claude 工作指南 (Claude Working Guidelines) + +## 🤖 Claude 協作標準操作程序 + +本文件為 Claude AI 助手在 Drama Ling 專案中的標準操作程序,確保工作流程的一致性和品質。 + +## 🛠️ 必須使用的系統工具 + +### 報告建立 +```bash +# ✅ 正確做法:使用系統工具 +./drama report analysis "分析主題" +./drama report decision "決策主題" + +# ❌ 禁止行為:手動創建報告檔案 +# 直接 Write 或 Edit reports/ 目錄下的檔案 +``` + +### 問題管理 +```bash +# ✅ 正確做法:使用問題管理工具 +./drama issue + +# ❌ 禁止行為:直接編輯 ISSUES.md +# 除非是修正現有問題的格式錯誤 +``` + +### 檢查作業 +```bash +# ✅ 正確做法:使用檢查工具 +./drama check + +# 其他維護腳本 +./check_consistency.sh +``` + +## 🎯 核心工作原則 + +### 1. 工具優先原則 +- **必須優先使用現有工具和腳本** +- 手動操作只能用於緊急修正 +- 所有報告都必須透過 `./drama report` 創建 + +### 2. 日期準確性原則 +- **系統工具會自動處理日期** +- 當前日期:2025-09-07 +- 任何手動設定日期都必須使用正確的當前日期 + +### 3. 文檔整合原則 +- 所有問題必須記錄到 ISSUES.md +- 所有分析必須產生正式報告 +- 報告必須與問題系統整合 + +## 📋 標準工作流程 + +### 分析任務流程 +1. **建立分析報告**: `./drama report analysis "主題"` +2. **執行分析工作**: 使用適當工具進行分析 +3. **更新報告內容**: 編輯生成的報告檔案 +4. **整合問題系統**: 確認相關問題已正確連結 + +### 問題處理流程 +1. **記錄問題**: `./drama issue` +2. **分配優先級**: 🔥緊急 / ⚠️重要 / 📝一般 +3. **建立相關報告**: 如有需要,建立分析或決策報告 +4. **追蹤解決進展**: 定期更新問題狀態 + +### 檢查作業流程 +1. **執行系統檢查**: `./drama check` +2. **運行一致性檢查**: `./check_consistency.sh` +3. **記錄發現問題**: 使用問題管理系統 +4. **產生檢查報告**: 必要時建立分析報告 + +## ⚠️ 常見錯誤和避免方法 + +### 錯誤1: 手動創建報告 +**問題**: 直接創建報告檔案,導致日期錯誤、格式不一致 +**解決**: 必須使用 `./drama report` 命令 + +### 錯誤2: 忽略現有工具 +**問題**: 重複實作已存在的功能 +**解決**: 先檢查 `tools/` 目錄下的現有工具 + +### 錯誤3: 未整合問題系統 +**問題**: 發現問題但未記錄到 ISSUES.md +**解決**: 每次發現問題都必須使用 `./drama issue` + +### 錯誤4: 日期不一致 +**問題**: 使用錯誤的日期或格式 +**解決**: 依賴系統工具的自動日期處理 + +## 🔍 品質檢查清單 + +### 每次任務完成後檢查 +- [ ] 是否使用了正確的系統工具? +- [ ] 所有日期是否正確(2025-09-07)? +- [ ] 發現的問題是否已記錄? +- [ ] 報告是否已正確整合到問題系統? +- [ ] 檔案命名是否符合系統標準? + +## 🚨 緊急情況處理 + +### 工具故障時 +1. 記錄工具故障情況到 ISSUES.md +2. 使用手動方式完成緊急任務 +3. 修正工具後重新使用標準流程 +4. 檢查並修正手動操作造成的不一致 + +### 系統不一致時 +1. 立即停止當前工作 +2. 運行 `./check_consistency.sh` +3. 記錄發現的不一致問題 +4. 修正問題後繼續工作 + +## 📚 相關文檔 + +- [問題追蹤系統](./ISSUES.md) +- [工具使用說明](./tools/) +- [報告模板](./reports/templates/) +- [檢查腳本](./scripts/) + +## 🔄 持續改善 + +### 發現新問題時 +1. 立即記錄到 ISSUES.md +2. 評估是否需要新工具或流程 +3. 更新本指南文檔 +4. 通知相關團隊成員 + +### 工具優化時 +1. 測試新工具的正確性 +2. 更新操作流程 +3. 修訂本指南文檔 +4. 確保向下相容性 + +--- + +**重要提醒**: 本指南是 Claude AI 助手的強制性操作標準。任何偏離此流程的行為都可能造成系統不一致和品質問題。 + +**最後更新**: 2025-09-07 +**版本**: 1.0 +**維護者**: Drama Ling 開發團隊 \ No newline at end of file diff --git a/ISSUES.md b/ISSUES.md index 0ec6cd3..b98a6d9 100644 --- a/ISSUES.md +++ b/ISSUES.md @@ -1,70 +1,136 @@ -# 🚨 問題追蹤 +# 📋 待處理問題 ## 🔥 緊急問題 - [ ] API模組化文檔中有7個待建立的模組 -- [x] System Design與User Flow的UI名稱不一致 - - 📊 **分析報告**: [UI一致性分析報告](./reports/analysis/2024-12-08_UI-consistency-analysis.md) - - ✅ **解決狀態**: 已修正命名錯誤和特殊字符,39個缺漏UI待補充 - - 📅 **完成日期**: 2024-12-08 ## ⚠️ 重要問題 - [ ] 資料庫schema設計未確定 - [ ] 用戶認證流程細節模糊 -- [ ] System Design有39個UI但User Flow沒有,存在大量設計缺漏 - - 📊 **相關報告**: [UI一致性分析報告](./reports/analysis/2024-12-08_UI-consistency-analysis.md) - - 📋 **後續行動**: 需為39個缺失UI撰寫User Flow定義 +- [ ] System Design有40個UI但User Flow沒有,存在大量設計缺漏(比預期更嚴重) + - 📊 **綜合分析**: [UI設計缺漏嚴重性評估](./reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md) + - 📊 **基礎報告**: [UI一致性分析報告](./reports/analysis/2025-09-07_UI-consistency-analysis.md) + - 📊 **功能分類**: [缺失UI功能分類分析](/tmp/ui_analysis/missing_ui_analysis.md) + - 📋 **實施計劃**: 第1週-核心功能(17個),第2週-重要功能(13個),第4週-次要功能(10個) + - ⚠️ **緊急建議**: 暫停非核心功能開發,優先補全對話糾正和學習結果系統 - [ ] User Flow有7個UI但System Design沒有,可能是實作時新增的UI - - 📊 **相關報告**: [UI一致性分析報告](./reports/analysis/2024-12-08_UI-consistency-analysis.md) + - 📊 **相關報告**: [UI一致性分析報告](./reports/analysis/2025-09-07_UI-consistency-analysis.md) - 📋 **後續行動**: 需確認這7個UI是否為必要功能 ## 📝 一般問題 - [ ] 資料庫設計需要確認用戶表結構 - [ ] 文檔格式不統一 - [ ] UI組件命名規範 -- [x] UI名稱包含特殊字符(如UI_ChallengeLevel_ChoosePopup-1有連字號)- 已修正 (2024-12-08) -- [x] UI命名不一致(UI_PresonalCenter_dd_Detail有拼寫錯誤)- 已修正 (2024-12-08) - [ ] 部分UI功能重複可能需要合併(多個Result相關UI) ## 🤖 與 Claude 協作提醒 -- [ ] 每次請 Claude 做事時,提醒他記錄遇到的問題 -- [ ] 定期檢查 Claude 是否有發現新問題需要記錄 +- [ ] Claude **必須優先使用** `./drama report` 而非手動創建報告 +- [ ] Claude **必須使用** `./drama issue` 而非直接編輯 ISSUES.md +- [ ] 定期運行 `./drama compliance` 檢查系統合規性 - [ ] 如果 Claude 發現規格不確定或衝突,立即記錄到對應優先級區域 - [ ] Claude 實作功能時發現的技術難題也要記錄 - [ ] 請 Claude 在完成任務後總結發現的問題 -## ✅ 已解決 -- [x] 建立問題追蹤系統 (2024-12-08) +### 🚨 強制性工作流程 +**重要**: Claude 必須遵循以下強制性流程,避免系統不一致: + +1. **報告建立**: 必須使用 `./drama report analysis "主題"` +2. **問題管理**: 必須使用 `./drama issue` +3. **系統檢查**: 定期使用 `./drama compliance` 和 `./drama consistency` +4. **參考指南**: 所有操作前先查看 `CLAUDE.md` 工作指南 + +**違反流程的後果**: 可能導致日期錯誤、格式不一致、系統追蹤失效等問題 --- -## 💡 快速記錄格式 +# 📚 已完成歷史 -### 新問題格式: +## 2025-09-07 完成項目 + +### 🔥 緊急問題 - 已解決 +- [x] **對話糾正系統缺失完整User Flow**,影響核心學習功能(9個UI) + - 📊 **詳細分析**: [UI設計缺漏嚴重性評估](./reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md) + - 📋 **User Flow設計**: [對話糾正系統流程設計](/tmp/ui_analysis/dialog_correction_flow.md) + - ✅ **解決狀態**: 已完成完整對話糾正系統User Flow設計並整合到官方文檔 + +- [x] **System Design與User Flow的UI名稱不一致** + - 📊 **分析報告**: [UI一致性分析報告](./reports/analysis/2025-09-07_UI-consistency-analysis.md) + - ✅ **解決狀態**: 已修正命名錯誤和特殊字符,39個缺漏UI待補充 + +### 📝 一般問題 - 已解決 +- [x] **UI名稱包含特殊字符**(如UI_ChallengeLevel_ChoosePopup-1有連字號) +- [x] **UI命名不一致**(UI_PresonalCenter_dd_Detail有拼寫錯誤) + +### 🤖 Claude 協作 - 已完成 +- [x] **建立 Claude 工作指南文件** (CLAUDE.md) +- [x] **在系統工具中加入操作提醒和防護機制** +- [x] **建立合規性檢查系統** (`./drama compliance`) +- [x] **建立問題追蹤系統** + +--- + +## 💡 問題維護機制 + +### 📝 新增問題 +**推薦方式**: 使用 `./drama issue` 工具 +- 自動分類到正確優先級 +- 統一格式和日期 +- 互動式操作,不易出錯 + +**手動方式**: 直接編輯本檔案(緊急時) ``` - [ ] 問題描述 (優先級: 🔥緊急/⚠️重要/📝一般) - 檔案: path/to/file.md:line - 影響: 描述影響 - - 想法: 可能的解決方向 + - 建議: 可能的解決方向 ``` -### 更新問題: -1. 解決後將 `[ ]` 改為 `[x]` -2. 移到「已解決」區域 -3. 加上解決日期 +### ✅ 完成問題 +1. **標記完成**: 將 `[ ]` 改為 `[x]` +2. **移動位置**: 從待處理區域移到「📚 已完成歷史」 +3. **按日期分組**: 放到對應的日期區域(如:2025-09-08 完成項目) +4. **保留詳情**: 移動時保留解決詳情和連結 -### 每週回顧: -- 檢查緊急問題是否有進展 -- 將已解決問題歸檔 -- 評估是否有新問題需要添加 +### 🔄 定期維護 + +#### 每日檢查 +- 查看是否有新的緊急問題 +- 更新問題進度 + +#### 每週整理 +- 整理已完成項目到正確日期區域 +- 檢查是否有逾期的重要問題 +- 評估問題優先級是否需要調整 + +#### 每月歸檔 +- 將超過一個月的完成項目移到歷史存檔 +- 統計問題解決效率 +- 檢討常見問題類型 + +### 📊 快速查看 +- **待處理總覽**: `./drama check` +- **完整列表**: `./drama issue` → 選項 4 +- **狀態統計**: `./drama issue` → 選項 2 --- -## 🎯 使用建議 +## 🎯 使用原則 -**發現問題時**:直接編輯此檔案,用一行話記錄問題 +### 🚨 緊急問題 +- **定義**: 阻擋開發進度的嚴重問題 +- **處理時間**: 立即處理 +- **範例**: API 衝突、資料庫設計錯誤 -**處理問題時**:勾選checkbox,移動到對應區域 +### ⚠️ 重要問題 +- **定義**: 影響功能完整性的問題 +- **處理時間**: 本週內 +- **範例**: UI 設計缺漏、功能需求不明確 -**定期回顧**:每週花5分鐘整理一次 +### 📝 一般問題 +- **定義**: 可以延後處理的改進 +- **處理時間**: 有空閒時 +- **範例**: 文檔格式、命名規範 -**簡單就好**:不需要複雜的格式,重點是快速記錄和追蹤 \ No newline at end of file +### 📚 歷史記錄 +- **用途**: 了解最近完成的工作 +- **組織**: 按完成日期分組 +- **保留**: 解決方案和相關連結 \ No newline at end of file diff --git a/docs/04_technical/user-flow-specification-old.md b/docs/04_technical/user-flow-specification-old.md new file mode 100644 index 0000000..6206e4a --- /dev/null +++ b/docs/04_technical/user-flow-specification-old.md @@ -0,0 +1,762 @@ +# 用戶流程規格文件 (User Flow Specification) + +## 文件概述 + +本文件詳細定義了戲劇化英語學習應用程式的完整用戶流程,涵蓋從新用戶註冊到深度學習的所有互動路徑。基於83個UI定義和完整的功能模組架構,提供開發團隊實作用戶體驗的藍圖。 + +## 主要用戶角色 + +- **訪客用戶 (Guest)**: 未註冊/登入的用戶,可享受7天免費體驗 +- **註冊用戶 (Registered)**: 已註冊但使用基礎功能的用戶,可購買鑽石道具 +- **VIP用戶 (VIP)**: 簡化訂閱用戶,享有每日3次免費限時挑戰等特權 +- **付費用戶 (Premium)**: 有購買鑽石的用戶,可使用各種道具和功能 + +## 核心用戶流程 + +### 1. 新用戶引導流程 (Onboarding Flow) + +```mermaid +graph TD + A[應用啟動] --> B{用戶狀態} + B -->|未登入| C[UI_Login_Main] + B -->|已登入| D[UI_Level_Map] + + C --> E[UI_SignUp_Main] + E --> F[UI_Onboarding_Welcome] + F --> G[UI_Onboarding_Purpose] + G --> H[UI_Onboarding_Level] + H --> I[UI_Onboarding_TimeSlot] + I --> J[UI_Onboarding_Frequency] + J --> K[UI_Onboarding_Notice] + K --> L[UI_Onboarding_Result] + L --> M[UI_Assessment_Test] + M --> N[UI_Assessment_Results] + N --> O[UI_Shop_Categories - 首次鑽石購買觸發] + O --> P{訂閱狀態} + P -->|完成訂閱| D + P -->|跳過/取消| D + + C -->|忘記密碼| Q[UI_PasswordReset_Form] + Q --> R[UI_PasswordReset_Popup] +``` + +#### 流程說明 + +1. **應用啟動檢查** + - 檢查用戶登入狀態 + - 已登入用戶直接進入主學習地圖 + - 未登入用戶進入登入頁面 + +2. **登入/註冊階段** + - `UI_Login_Main`: 支援帳密登入、Apple ID、Google登入 + - `UI_SignUp_Main`: 新用戶註冊表單 + - `UI_PasswordReset_Form/Popup`: 密碼重設流程 + +3. **個人化設定階段** + - `UI_Onboarding_Purpose`: 學習目的選擇 + - `UI_Onboarding_Level`: 當前語言程度 + - `UI_Onboarding_TimeSlot`: 偏好學習時段 + - `UI_Onboarding_Frequency`: 學習頻率設定 + - `UI_Onboarding_Notice`: 使用須知提醒 + - `UI_Onboarding_Result`: 個人化建議結果 + +4. **語言程度測試** + - `UI_Assessment_Test`: 進行程度評估測試 + - `UI_Assessment_Results`: 顯示測試結果和建議 + +5. **首次鑽石購買觸發** + - `UI_Shop_Categories`: 完成第一次詞彙認識關卡後自動觸發鑽石購買頁面 + - **雙軌營收模式**: + - 主要:鑽石貨幣系統(NT$30-390套餐) + - 次要:7天免費體驗 + VIP訂閱特權 + - 輔助:獎勵廣告系統(獲得25-50鑽石) + +### 2. 完整學習核心流程 *(更新基於最新規格,包含對話糾正系統)* + +```mermaid +graph TD + A[UI_Level_Map] --> A1{命條檢查} + A1 -->|命條>0| B{關卡類型} + A1 -->|命條=0| A2[UI_LifePoints_Display - 命條不足提示] + A2 --> A3{.choice} + A3 -->|購買補命道具| A4[UI_Shop_Item_Confirm] + A3 -->|等待自動回復| A5[等待時間] + A4 --> A6{鑽石足夠?} + A6 -->|是| A7[購買成功+命條回復] --> A + A6 -->|否| A8[UI_Insufficient_Resources] --> UI_Shop_Categories + A5 --> A + + B -->|詞彙認識關卡| C[詞彙學習流程] + B -->|詞彙熟悉關卡| D[詞彙熟練流程] + B -->|對話訓練關卡| E[情境對話流程] + B -->|複習詞彙| F[間隔複習流程] + B -->|時光關卡| G[時光挑戰流程] + + C --> C1[UI_Vocab_Introduction] + C1 --> C2[詞彙展示學習] + C2 --> C3[UI_Vocab_Choice_Practice] + C3 --> C4{答題結果} + C4 -->|正確| C5{全部完成?} + C4 -->|錯誤| C6[命條-1, 題目加到最後] + C6 --> C7{命條>0?} + C7 -->|是| C5 + C7 -->|否| C8[關卡失敗+時光卷] + C5 -->|是| C9[三顆星通關] + C5 -->|否| C3 + C8 --> A + C9 --> C10[詞彙加入複習清單] --> C11[今日任務檢查+獎勵] --> A + + D --> D1[UI_VocabFluency_MatchImageToWord] + D1 --> D2[例句重組練習] + D2 --> D3[UI_VocabFluency_SentenceReorder] + D3 --> D4[詞彙配對練習] + D4 --> D5{答題結果} + D5 -->|正確| D6{全部完成?} + D5 -->|錯誤| D7[命條-1, 題目加到最後] + D7 --> D8{命條>0?} + D8 -->|是| D6 + D8 -->|否| D9[關卡失敗+時光卷] + D6 -->|是| D10[三顆星通關] + D6 -->|否| D1 + D9 --> A + D10 --> D11[詞彙加入複習清單] --> D12[今日任務檢查+獎勵] --> A + + E --> E1[UI_ScenarioDialog_GoalDetail] + E1 --> E2[UI_Dialogue_Main] + E2 --> E3{對話完成?} + E3 -->|是| E4[UI_ScenarioDialog_ReplyResult] + E3 -->|需要提示| E5[UI_ScenarioDialog_ReplyGuide] + E5 --> E2 + E4 --> E6{評估結果} + E6 -->|通過| E7[三顆星通關] + E6 -->|需訂正| E8[命條-1, 進入訂正流程] + E8 --> E9{命條>0?} + E9 -->|是| E10[對話糾正系統流程] + E9 -->|否| E11[關卡失敗+時光卷] + E10 --> E6 + E7 --> E14[詞彙加入複習清單] --> E15{滿星檢查} + E15 -->|滿星| E16[語言程度晉階進度+今日任務] + E15 -->|非滿星| E17[今日任務檢查+獎勵] + E16 --> A + E17 --> A + E11 --> A + + F --> F1[UI_VocabReview_Main] + F1 --> F2[間隔複習算法選題] + F2 --> F3[UI_VocabReview_Main] + F3 --> F4{答題結果} + F4 -->|正確| F5{全部完成?} + F4 -->|錯誤| F6[命條-1, 重複複習] + F6 --> F7{命條>0?} + F7 -->|是| F5 + F7 -->|否| F8[關卡失敗+時光卷] + F5 -->|是| F9[三顆星通關] + F5 -->|否| F3 + F8 --> A + F9 --> F10[更新複習次數] --> A + + G --> G1[UI_TimeWarpChallenge_Main] + G1 --> G2[300秒倒數計時開始] + G2 --> G3[快速詞彙/對話挑戰] + G3 --> G4{時間內完成?} + G4 -->|是| G5[時光獎勵+經驗值] + G4 -->|否| G6[挑戰失敗] + G5 --> A + G6 --> A +``` + +#### 流程說明 + +1. **訂閱狀態檢查** *(新增)* + - 進入對話訓練關卡前檢查訂閱狀態 + - 未訂閱用戶自動跳轉到訂閱頁面 `UI_SubscriptionPlans` + - 訂閱成功後解鎖對話訓練功能 + +2. **命條系統檢查** + - 每次進入關卡前檢查命條數量(最大5個) + - 命條不足時提示購買或等待自動回復(每5小時+1個) + - 命條歸零時關卡失敗,獲得時光卷作為安慰獎勵 + +3. **詞彙認識關卡流程 (C)** + - `UI_Vocab_Introduction`: 展示詞彙、詞義、例句、示意圖 + - `UI_Vocab_Choice_Practice`: 詞彙選擇題測試 + - 答錯扣除命條,題目移至最後重新測試 + - 全部正確獲得三顆星通關,詞彙加入複習清單 + +4. **詞彙熟悉關卡流程 (D)** + - `UI_VocabFluency_MatchImageToWord`: 圖片配對練習 + - `UI_VocabFluency_SentenceReorder`: 例句重組練習 + - 多種練習模式強化詞彙記憶 + - 完成後詞彙進入複習系統 + +5. **情境對話關卡流程 (E)** *(需訂閱權限)* + - `UI_ScenarioDialog_GoalDetail`: 顯示對話任務目標 + - `UI_Dialogue_Main`: 主要對話界面 + - **雙重完成條件**: 劇情任務完成 + 指定詞彙使用 + - **回覆卡關輔助**: `UI_ScenarioDialog_ReplyGuide` 三層輔助架構 + - **AI評估系統**: 語法、語意、流暢度三維度即時評分 + - **對話糾正系統**: 完整的語法和流暢度糾正流程 + - 需要訂正時扣除命條,提供解釋和重試機會 + +6. **間隔複習流程 (F)** + - `UI_VocabReview_Main`: 基於間隔複習算法選擇詞彙 + - 使用公式:下次複習時間 = 當日 + (2^複習次數) + - `UI_VocabReview_Main`: 複習測試界面 + - 答錯重複複習,正確則更新複習次數 + +7. **時光挑戰流程 (G)** + - `UI_TimeWarpChallenge_Main`: 300秒限時挑戰 + - 快速詞彙或對話測試 + - 時間內完成獲得時光獎勵和經驗值 + - 挑戰失敗無懲罰,可重複嘗試 + +8. **特殊任務系統** *(新增)* + - 每日00:00重置所有任務進度 + - 關卡結算時檢查任務完成狀態 + - 完成任務獲得經驗值獎勵並顯示結算頁面 + - 包含詞彙認識、熟悉、對話訓練、滿星對話四類任務 + +9. **語言程度晉階系統** *(新增)* + - 13級語言程度系統(A1→A2→B1→B2→C1→C2→最高級C2) + - 晉階條件:前階與後階累積滿星對話訓練次數 + - 晉階後解鎖更高難度關卡和內容 + - 多維度語言能力評估:語意合適度、語法錯誤率、表達流暢度、詞彙分數 + +### 3. 詞彙學習系統流程 (Vocabulary Learning System Flow) + +```mermaid +graph TD + A[詞彙學習系統] --> B{學習階段判定} + B -->|認識階段| C[詞彙認識關卡] + B -->|熟悉階段| D[詞彙熟悉關卡] + B -->|對話應用| E[情境對話訓練] + B -->|間隔複習| F[複習系統] + + C --> C1{命條檢查} + C1 -->|命條>0| C2[UI_Vocab_Introduction] + C1 -->|命條=0| C3[等待回復/購買] + C2 --> C4[詞彙展示學習] + C4 --> C5[UI_Vocab_Choice_Practice] + C5 --> C6{測試結果} + C6 -->|正確| C7{階段完成?} + C6 -->|錯誤| C8[命條-1, 加入最後] + C7 -->|完成| C9[進入熟悉階段] + C7 -->|繼續| C5 + C8 --> C1 + + D --> D1[UI_VocabFluency_MatchImageToWord] + D1 --> D2[UI_VocabFluency_SentenceReorder] + D2 --> D3{熟悉度測試} + D3 -->|通過| D4[進入對話階段] + D3 -->|需加強| D1 + + E --> E1[情境對話中詞彙應用] + E1 --> E2{對話完成} + E2 -->|成功| E3[詞彙掌握完成] + E2 -->|需重試| E1 + + F --> F1[間隔複習算法] + F1 --> F2[選擇到期詞彙] + F2 --> F3[UI_VocabReview_Main] + F3 --> F4{複習結果} + F4 -->|記住| F5[延長間隔時間] + F4 -->|遺忘| F6[重置間隔計數] + F5 --> F7[更新複習次數] + F6 --> F7 + + C9 --> D + D4 --> E + E3 --> F +``` + +### 4. 社交與競爭流程 (Social & Competition Flow) + +```mermaid +graph TD + A[社交功能入口] --> B{用戶狀態} + B -->|訪客| C[UI_SocialRanking_GuestPrompt] + B -->|註冊用戶| D[UI_Social_Ranking] + + D --> E[UI_RankingDetail] + E --> F{競爭選項} + F -->|挑戰用戶| G[UI_TimedDialogue] + F -->|查看好友| H[UI_PersonalCenter_FriendMain] + + H --> I[UI_PersonalCenter_FriendList] + I --> J[UI_PersonalCenter_OtherUserMain] + + H --> K[UI_PersonalCenter_FriendSearch] + + G --> L[對話挑戰結果] + L --> M[UI_LevelResult_SuccessResult] +``` + +### 5. 命條系統流程 (Life Points System Flow) + +```mermaid +graph TD + A[命條系統] --> B{當前命條數量} + B -->|命條>0| C[正常遊戲流程] + B -->|命條=0| D[UI_ScenarioDialog_InsufficientPopup] + + D --> E{用戶選擇} + E -->|等待回復| F[顯示回復時間] + E -->|購買命條| G[UI_Shop_Categories] + E -->|觀看廣告| H[UI_AdOffer] + + F --> F1[每5小時+1命條] + F1 --> F2{命條已回復} + F2 -->|是| C + F2 -->|否| F + + G --> G1[UI_ItemStore_ConfirmPopup] + G1 --> G2{購買確認} + G2 -->|確認| G3[命條+5] + G2 -->|取消| D + G3 --> C + + H --> H1[UI_AdViewing] + H1 --> H2[UI_RewardClaim] + H2 --> H3[命條+1] + H3 --> C + + C --> I{學習過程中} + I -->|答錯/需訂正| J[命條-1] + J --> K{命條>0} + K -->|是| C + K -->|否| L[關卡失敗+時光卷] + L --> D +``` + +### 6. 商業化流程 (Monetization Flow) + +```mermaid +graph TD + A[商業功能觸發] --> B{觸發情境} + B -->|命條不足| C[UI_ScenarioDialog_InsufficientPopup] + B -->|回覆提示不足| D[回覆提示道具購買確認] + B -->|主動購買| E[UI_Shop_Categories] + B -->|訂閱服務| F[UI_SubscriptionPlans] + B -->|廣告獎勵| G[UI_AdOffer] + + C --> E + D --> D1{鑽石是否足夠(30)} + D1 -->|足夠| D2[購買回覆提示道具] + D1 -->|不足| E + D2 --> D3[返回對話並啟用輔助功能] + D3 --> D4[UI_ScenarioDialog_ReplyGuide] + + E --> H[UI_ItemStore_ConfirmPopup] + H --> I{購買確認} + I -->|確認| J[處理購買] + I -->|取消| K[返回商店] + + F --> L[UI_PaymentFlow] + L --> M[UI_Subscription_Result] + + G --> N[UI_AdViewing] + N --> O[UI_RewardClaim] + + J --> P[UI_PurchasedContent] + M --> Q[返回主功能] + O --> Q +``` + +### 7. 個人中心流程 (Personal Center Flow) + +```mermaid +graph TD + A[UI_Profile_Dashboard] --> B{功能選擇} + B -->|詳細統計| C[UI_PresonalCenter_dd_Detail] + B -->|個人設定| D[UI_PersonalCenter_Settings] + B -->|好友管理| E[UI_PersonalCenter_FriendMain] + B -->|訪客狀態| F[UI_PersonalCenter_GuestPrompt] + B -->|功能鎖定| G[UI_PersonalCenter_Locked] + + E --> H[UI_PersonalCenter_FriendList] + E --> I[UI_PersonalCenter_FriendSearch] + + H --> J[UI_PersonalCenter_OtherUserMain] + + F --> K[UI_Login_Main] +``` + +### 8. 語言程度晉階流程 (Language Level Advancement Flow) *(新增)* + +```mermaid +graph TD + A[對話訓練滿星完成] --> B[更新晉階進度] + B --> C{當前語言程度} + C -->|1級A1| D[檢查後階進度10/10] + C -->|2-3級A2| E[檢查前階15+後階10] + C -->|4-6級B1| F[檢查前階15+後階10] + C -->|7-8級B2| G[檢查前階15+後階10] + C -->|9-11級C1| H[檢查前階15+後階10] + C -->|12級C2| I[檢查前階15+後階10] + C -->|13級最高級| J[已達最高級] + + D --> K{後階完成?} + E --> L{前階+後階完成?} + F --> L + G --> L + H --> L + I --> L + + K -->|是| M[UI_LanguageLevel_LevelUp] + K -->|否| N[更新進度顯示] + L -->|是| M + L -->|否| N + + M --> O[程度提升+解鎖新關卡] + N --> P[返回學習地圖] + O --> P + J --> P +``` + +#### 語言程度系統規格 + +**13階層架構**: +- **1級 (A1)**: 後階10次滿星對話訓練 +- **2-3級 (A2)**: 前階15次 + 後階10次滿星對話訓練 +- **4-6級 (B1)**: 前階15次 + 後階10次滿星對話訓練 +- **7-8級 (B2)**: 前階15次 + 後階10次滿星對話訓練 +- **9-11級 (C1)**: 前階15次 + 後階10次滿星對話訓練 +- **12級 (C2)**: 前階15次 + 後階10次滿星對話訓練 +- **13級 (最高級C2)**: 已達最高語言程度 + +**評估指標**: +- 語意合適度 +- 語法錯誤率 +- 表達流暢度 +- 詞彙分數 + +### 9. 特殊任務系統流程 (Daily Mission System Flow) *(新增)* + +```mermaid +graph TD + A[關卡結算時] --> B[檢查今日任務進度] + B --> C{任務類型} + C -->|詞彙認識關卡通關| D[更新任務1進度] + C -->|詞彙熟悉關卡通關| E[更新任務2進度] + C -->|對話訓練關卡通關| F[更新任務3進度] + C -->|對話訓練滿星| G[更新任務4進度] + + D --> H[檢查任務完成狀態] + E --> H + F --> H + G --> H + + H --> I{任務完成?} + I -->|是| J[UI_Mission_RewardResult] + I -->|否| K[返回學習地圖] + + J --> L[獲得經驗值獎勵] + L --> K + + M[每日00:00] --> N[重置所有任務進度] + N --> O[任務狀態初始化] +``` + +#### 今日任務規格 + +**任務清單**: +1. **詞彙認識任務**: 成功闖關1次詞彙認識關卡 → 經驗值獎勵 +2. **詞彙熟悉任務**: 成功闖關1次詞彙熟悉關卡 → 經驗值獎勵 +3. **對話訓練任務**: 成功闖關1次對話訓練關卡 → 經驗值獎勵 +4. **完美對話任務**: 在對話訓練關卡獲得滿星分數1次 → 經驗值獎勵 + +**重置機制**: 每日00:00自動重置所有任務進度 + +**獎勵時機**: 關卡結束時進行任務完成判定,完成則顯示獎勵結算頁面 + +### 10. 鑽石貨幣系統流程 (Diamond Currency System Flow) *(更新)* + +```mermaid +graph TD + A[鑽石需求觸發] --> B{觸發情境} + B -->|命條不足需補充| C[UI_LifePoints_Display] + B -->|回覆提示需求| D[UI_Cost_Confirm_Popup - 30鑽石] + B -->|限時挑戰入場| E[UI_Cost_Confirm_Popup - 50鑽石] + B -->|加時道具| F[UI_Cost_Confirm_Popup - 300鑽石] + B -->|主動購買| G[UI_Shop_Categories] + + C --> C1{選擇} + C1 -->|購買補命道具| C2[UI_Shop_Item_Confirm - 100鑽石] + C1 -->|等待自動回復| C3[等待時間] + + D --> D1{鑽石足夠?} + D1 -->|足夠| D2[購買成功] --> D3[UI_Reply_Assistance] + D1 -->|不足| H[UI_Insufficient_Resources] + + E --> E1{鑽石足夠?} + E1 -->|足夠| E2[入場成功] --> E3[UI_TimeWarp_Cards] + E1 -->|不足| H + + F --> F1{鑽石足夠?} + F1 -->|足夠| F2[購買成功] --> F3[時間道具啟用] + F1 -->|不足| H + + H --> G + G --> G1{套餐選擇} + G1 -->|新手包| G2[500鑽石 - NT$30] + G1 -->|基礎包| G3[1200鑽石 - NT$60] + G1 -->|價值包| G4[2500鑽石 - NT$99] + G1 -->|豪華包| G5[5000鑽石 - NT$190] + G1 -->|至尊包| G6[12000鑽石 - NT$390] + + G2 --> G7[UI_Shop_Item_Confirm] + G3 --> G7 + G4 --> G7 + G5 --> G7 + G6 --> G7 + G7 --> G8{購買確認} + G8 -->|確認| G9[UI_Subscription_Success] + G8 -->|取消| G10[返回原處] +``` + +### 11. 300秒限時挑戰流程 (300-Second Timed Challenge Flow) *(新增)* + +```mermaid +graph TD + A[限時挑戰觸發] --> B{入場檢查} + B -->|首次免費| C[UI_TimeWarp_Cards - 直接入場] + B -->|非首次| D[UI_Cost_Confirm_Popup - 50鑽石] + + D --> D1{鑽石足夠?} + D1 -->|足夠| C + D1 -->|不足| E[UI_Insufficient_Resources] --> F[UI_Shop_Categories] + + C --> G[開始300秒倒數] + G --> H{挑戰過程} + H -->|需要暫停| I[UI_Cost_Confirm_Popup - 100鑽石] --> I1{購買?} + H -->|需要加時| J[UI_Cost_Confirm_Popup - 150鑽石] --> J1{購買?} + H -->|時間到| K[結算頁面] + H -->|主動退出| L[UI_ChallengeLevel_ExitComfirmPopup] + + I1 -->|確認| M[暫停30秒] --> H + I1 -->|取消| H + J1 -->|確認| N[加時60秒] --> H + J1 -->|取消| H + + K --> O{挑戰結果} + O -->|成功| P[UI_Result_Success_A] --> Q[特殊獎勵獲得] + O -->|部分成功| R[UI_Result_Success_B] --> S[一般獎勵獲得] + O -->|失敗| T[UI_Result_Failure_A] --> U[無獎勵但可重試] +``` + +### 12. 簡化訂閱系統流程 (Simplified Subscription System Flow) *(更新)* + +```mermaid +graph TD + A[訂閱觸發] --> B[UI_Onboarding_Welcome - 7天免費體驗] + B --> C{體驗期使用} + C --> D[7天期滿提醒] + D --> E{用戶選擇} + E -->|續訂VIP| F[簡化訂閱確認] + E -->|不續訂| G[回到基礎功能] + + F --> H[VIP特權啟用] + H --> I[每日3次免費限時挑戰] + I --> J[其他VIP專屬功能] +``` +``` + +#### 訂閱系統規格 + +**訂閱方案**: +- **月費訂閱**: 600元/月 +- **測試優惠**: 內部測試期間享2折優惠 +- **訪客支援**: 支援訪客透過設備ID直接訂閱 + +**權限控制**: +- 對話訓練關卡需要訂閱權限 +- 詞彙認識和熟悉關卡免費開放 +- 其他功能按需設定權限 + +### 13. 對話糾正系統詳細流程 (Dialog Correction System Flow) *(新補充)* + +```mermaid +graph TD + A[AI評估發現問題] --> B{問題類型} + B -->|語法錯誤| C[UI_Correction_Grammar_Retry] + B -->|流暢度不足| D[UI_Correction_Fluency_Practice] + + C --> C1[UI_DialogCorrection_SyntaxExplanation_Play] + C1 --> C2{用戶選擇} + C2 -->|查看詳細解釋| C3[UI_DialogCorrection_SyntaxRetry_Play] + C2 -->|直接重試| C4[UI_Correction_Retry_Result] + + D --> D1[UI_DialogCorrection_FluencyExplanation_Play] + D1 --> D2{練習結果} + D2 -->|需要更多練習| D3[UI_DialogCorrection_FluencyRetry_Play] + D2 -->|練習通過| D4[UI_DialogCorrection_FluencyPass_Result] + + C3 --> C5{語法糾正結果} + C4 --> C5 + C5 -->|通過| C6[UI_DialogCorrection_SyntaxPass_Result] + C5 -->|仍有錯誤| C1 + + D3 --> D2 + D4 --> E[UI_Correction_Pass_Result] + C6 --> E + + E --> F[UI_Dialogue_Analysis] + F --> G[返回對話主流程] +``` + +#### 糾正系統詳細說明 + +**語法糾正流程**: +- `UI_Correction_Grammar_Retry`: 語法錯誤提示頁面,顯示錯誤類型和糾正建議 +- `UI_DialogCorrection_SyntaxExplanation_Play`: 語法解釋播放,提供語音解釋和正確示例 +- `UI_DialogCorrection_SyntaxRetry_Play`: 語法重試練習,引導式重新輸入和即時檢查 +- `UI_DialogCorrection_SyntaxPass_Result`: 語法糾正通過結果,提供學習要點總結 + +**流暢度練習流程**: +- `UI_Correction_Fluency_Practice`: 流暢度練習主頁面,提供練習方式選擇 +- `UI_DialogCorrection_FluencyExplanation_Play`: 流暢度解釋,包含語音語調示例和文化背景說明 +- `UI_DialogCorrection_FluencyRetry_Play`: 流暢度重試頁面,支援語音錄製和即時評分 +- `UI_DialogCorrection_FluencyPass_Result`: 流暢度通過結果,顯示語音評分和進度記錄 + +**結果統整階段**: +- `UI_Correction_Pass_Result`: 糾正通過總結,顯示本次學習重點和進展 +- `UI_Correction_Retry_Result`: 糾正重試結果,提供改進建議和再次嘗試選項 +- `UI_Dialogue_Analysis`: 對話分析頁面,進行整體評估和改進建議總結 + +**關卡結果階段**: +- `UI_LevelResult_CorrectionResult`: 糾正結果總覽,統計糾正次數和正確率分析 +- `UI_LevelResult_DialogScoreSummary`: 對話分數總結,提供多維度評分和歷史對比 +- `UI_LevelResult_SuccessResult2/FailResult2`: 成功/失敗結果頁面變體,提供差異化反饋 +- `UI_LevelResult_RewardConfirm`: 獎勵確認頁面,顯示獲得的獎勵和成就 +- `UI_LevelResult_SmallReward`: 小獎勵頁面,提供基礎獎勵和經驗值增加 +- `UI_LevelResult_ScoreSummary/ScoreSummary2`: 分數總結頁面變體,提供詳細或簡化版得分顯示 + +**設計原則**: +- **漸進式糾正**: 不直接指出所有錯誤,先處理最關鍵問題 +- **多模態反饋**: 結合文字、語音和視覺,適應不同學習風格 +- **個人化調整**: 根據用戶程度調整糾正方式和提供針對性建議 +- **正向激勵**: 著重進步而非錯誤,慶祝每個小成就 + +## 特殊流程處理 + +### 時間門票系統 + +```mermaid +graph TD + A[需要門票功能] --> B[UI_TimeGate_ConfirmUseTicket] + B --> C{確認使用} + C -->|確認| D[消耗門票繼續] + C -->|取消| E[返回上一頁] +``` + +### 額外任務系統 + +```mermaid +graph TD + A[UI_BonusMission_Main] --> B{任務狀態} + B -->|可完成| C[執行任務] + B -->|檢視獎勵| D[獎勵預覽] + C --> E[任務完成獎勵] +``` + +### 生活模擬系統 + +```mermaid +graph TD + A[UI_PlayLife_Main] --> B{角色狀態} + B -->|正常| C[選擇活動] + B -->|需要維護| D[角色維護] + C --> E[執行活動] + E --> F[狀態更新] +``` + +## 導航規則 + +### 全局導航 +- 主學習地圖:`UI_Level_Map` +- 個人中心:`UI_Profile_Dashboard` +- 排行榜:`UI_Social_Ranking` +- 商店:`UI_Shop_Categories` + +### 返回機制 +- 每個子流程都有明確的返回路徑 +- 支援中途退出確認:`UI_ChallengeLevel_ExitComfirmPopup` +- 保存進度機制防止資料丟失 + +### 狀態保持 +- 用戶登入狀態持久化 +- 學習進度即時保存 +- 設定偏好本地存儲 + +## 異常處理流程 + +### 網路異常 +- 顯示連線錯誤提示 +- 提供重試機制 +- 離線模式支援(部分功能) + +### 命條不足處理 +- `UI_ScenarioDialog_InsufficientPopup`: 命條不足提示 +- 提供等待回復(每5小時+1)、購買、觀看廣告三種選擇 +- 關卡失敗時獲得時光卷作為安慰獎勵 + +### 回覆卡關情境處理 *(新增功能)* +- 使用者在對話中不知道如何回應 +- 觸發`UI_ScenarioDialog_ReplyGuide`三層輔助介面 +- 檢查回覆提示道具庫存(30鑽石/次) +- 道具不足時引導鑽石購買流程 + +### 間隔複習系統異常 +- 複習詞彙數據同步異常處理 +- 複習算法計算錯誤回退機制 +- 詞彙掌握度評估校正 + +### 權限不足 +- 訪客提示:`UI_PersonalCenter_GuestPrompt`、`UI_SocialRanking_GuestPrompt` +- 功能鎖定:`UI_PersonalCenter_Locked`、`UI_ChallengeLevel_ChoosePopupLock` +- 升級引導流程 + +## 關鍵轉換點 (Conversion Points) + +1. **註冊轉換**: 訪客 → 註冊用戶 +2. **首次訂閱轉換** *(新增)*: 完成第一次詞彙認識關卡 → 觸發訂閱頁面 → 月費訂閱(600元/月) +3. **對話訓練權限轉換** *(新增)*: 免費用戶嘗試對話訓練 → 訂閱提示 → 付費解鎖功能 +4. **命條系統轉換**: 體驗命條限制 → 購買命條/觀看廣告 → 持續付費 +5. **回覆輔助轉換**: 體驗回覆卡關 → 購買提示道具(30鑽石) → 重複使用輔助功能 +6. **特殊任務激勵** *(新增)*: 日常學習習慣 → 每日任務完成 → 經驗值獎勵 → 持續參與 +7. **語言程度晉階** *(新增)*: 達成滿星對話訓練 → 程度提升 → 解鎖新內容 → 長期留存 +8. **詞彙學習循環**: 完成認識→熟悉→對話→複習的完整學習閉環 +9. **留存關鍵**: 建立間隔複習習慣,詞彙庫達到50個以上 +10. **社交激活**: 添加首個好友並進行時光挑戰競爭 +11. **習慣養成**: 連續7天使用應用,每日完成至少一個關卡 + +## 效能考量 + +- 關鍵路徑頁面載入時間 < 2秒 +- 對話評估回應時間 < 3秒 +- **回覆輔助功能回應時間 < 2秒** *(新增)* +- **翻譯服務回應時間 < 1.5秒** *(新增)* +- **間隔複習算法計算時間 < 0.5秒** *(新增)* +- **詞彙圖片載入時間 < 1秒** *(新增)* +- **命條狀態同步延遲 < 1秒** *(新增)* +- 離線快取常用內容和詞彙數據 +- 漸進式載入非關鍵資源 +- 詞彙複習數據本地快取機制 + +## 無障礙支援 + +- 支援螢幕閱讀器 +- 鍵盤導航支援 +- 高對比度模式 +- 文字大小調整 + +## 多語言支援 + +- 介面語言切換 +- 學習內容本地化 +- RTL語言支援 +- 語音辨識多語言 + +--- + +本文件將隨著產品迭代持續更新,確保開發團隊始終有最新的用戶流程指引。 \ No newline at end of file diff --git a/docs/04_technical/user-flow-specification.md b/docs/04_technical/user-flow-specification.md index 7a8a8ab..d07aced 100644 --- a/docs/04_technical/user-flow-specification.md +++ b/docs/04_technical/user-flow-specification.md @@ -1,699 +1,417 @@ -# 用戶流程規格文件 (User Flow Specification) +# 用戶流程規格文件 (User Flow Specification) - 功能導向 ## 文件概述 -本文件詳細定義了戲劇化英語學習應用程式的完整用戶流程,涵蓋從新用戶註冊到深度學習的所有互動路徑。基於83個UI定義和完整的功能模組架構,提供開發團隊實作用戶體驗的藍圖。 +本文件以**功能為導向**,系統性定義 Drama Ling 英語學習應用的完整用戶流程。基於 `system_structure_design.json` 中定義的 19 個功能特性,確保每個功能都有完整且可追溯的用戶體驗路徑。 -## 主要用戶角色 +## 功能架構總覽 -- **訪客用戶 (Guest)**: 未註冊/登入的用戶,可享受7天免費體驗 -- **註冊用戶 (Registered)**: 已註冊但使用基礎功能的用戶,可購買鑽石道具 -- **VIP用戶 (VIP)**: 簡化訂閱用戶,享有每日3次免費限時挑戰等特權 -- **付費用戶 (Premium)**: 有購買鑽石的用戶,可使用各種道具和功能 - -## 核心用戶流程 - -### 1. 新用戶引導流程 (Onboarding Flow) - -```mermaid -graph TD - A[應用啟動] --> B{用戶狀態} - B -->|未登入| C[UI_Login_Main] - B -->|已登入| D[UI_Level_Map] - - C --> E[UI_SignUp_Main] - E --> F[UI_Onboarding_Welcome] - F --> G[UI_Onboarding_Purpose] - G --> H[UI_Onboarding_Level] - H --> I[UI_Onboarding_TimeSlot] - I --> J[UI_Onboarding_Frequency] - J --> K[UI_Onboarding_Notice] - K --> L[UI_Onboarding_Result] - L --> M[UI_Assessment_Test] - M --> N[UI_Assessment_Results] - N --> O[UI_Shop_Categories - 首次鑽石購買觸發] - O --> P{訂閱狀態} - P -->|完成訂閱| D - P -->|跳過/取消| D - - C -->|忘記密碼| Q[UI_PasswordReset_Form] - Q --> R[UI_PasswordReset_Popup] -``` - -#### 流程說明 - -1. **應用啟動檢查** - - 檢查用戶登入狀態 - - 已登入用戶直接進入主學習地圖 - - 未登入用戶進入登入頁面 - -2. **登入/註冊階段** - - `UI_Login_Main`: 支援帳密登入、Apple ID、Google登入 - - `UI_SignUp_Main`: 新用戶註冊表單 - - `UI_PasswordReset_Form/Popup`: 密碼重設流程 - -3. **個人化設定階段** - - `UI_Onboarding_Purpose`: 學習目的選擇 - - `UI_Onboarding_Level`: 當前語言程度 - - `UI_Onboarding_TimeSlot`: 偏好學習時段 - - `UI_Onboarding_Frequency`: 學習頻率設定 - - `UI_Onboarding_Notice`: 使用須知提醒 - - `UI_Onboarding_Result`: 個人化建議結果 - -4. **語言程度測試** - - `UI_Assessment_Test`: 進行程度評估測試 - - `UI_Assessment_Results`: 顯示測試結果和建議 - -5. **首次鑽石購買觸發** - - `UI_Shop_Categories`: 完成第一次詞彙認識關卡後自動觸發鑽石購買頁面 - - **雙軌營收模式**: - - 主要:鑽石貨幣系統(NT$30-390套餐) - - 次要:7天免費體驗 + VIP訂閱特權 - - 輔助:獎勵廣告系統(獲得25-50鑽石) - -### 2. 完整學習核心流程 *(更新基於最新規格)* - -```mermaid -graph TD - A[UI_Level_Map] --> A1{命條檢查} - A1 -->|命條>0| B{關卡類型} - A1 -->|命條=0| A2[UI_LifePoints_Display - 命條不足提示] - A2 --> A3{.choice} - A3 -->|購買補命道具| A4[UI_Shop_Item_Confirm] - A3 -->|等待自動回復| A5[等待時間] - A4 --> A6{鑽石足夠?} - A6 -->|是| A7[購買成功+命條回復] --> A - A6 -->|否| A8[UI_Insufficient_Resources] --> UI_Shop_Categories - A5 --> A - - B -->|詞彙認識關卡| C[詞彙學習流程] - B -->|詞彙熟悉關卡| D[詞彙熟練流程] - B -->|對話訓練關卡| E[情境對話流程] - B -->|複習詞彙| F[間隔複習流程] - B -->|時光關卡| G[時光挑戰流程] - - C --> C1[UI_Vocab_Introduction] - C1 --> C2[詞彙展示學習] - C2 --> C3[UI_Vocab_Choice_Practice] - C3 --> C4{答題結果} - C4 -->|正確| C5{全部完成?} - C4 -->|錯誤| C6[命條-1, 題目加到最後] - C6 --> C7{命條>0?} - C7 -->|是| C5 - C7 -->|否| C8[關卡失敗+時光卷] - C5 -->|是| C9[三顆星通關] - C5 -->|否| C3 - C8 --> A - C9 --> C10[詞彙加入複習清單] --> C11[今日任務檢查+獎勵] --> A - - D --> D1[UI_VocabFluency_MatchImageToWord] - D1 --> D2[例句重組練習] - D2 --> D3[UI_VocabFluency_SentenceReorder] - D3 --> D4[詞彙配對練習] - D4 --> D5{答題結果} - D5 -->|正確| D6{全部完成?} - D5 -->|錯誤| D7[命條-1, 題目加到最後] - D7 --> D8{命條>0?} - D8 -->|是| D6 - D8 -->|否| D9[關卡失敗+時光卷] - D6 -->|是| D10[三顆星通關] - D6 -->|否| D1 - D9 --> A - D10 --> D11[詞彙加入複習清單] --> D12[今日任務檢查+獎勵] --> A - - E --> E1[UI_ScenarioDialog_GoalDetail] - E1 --> E2[UI_Dialogue_Main] - E2 --> E3{對話完成?} - E3 -->|是| E4[UI_ScenarioDialog_ReplyResult] - E3 -->|需要提示| E5[UI_ScenarioDialog_ReplyGuide] - E5 --> E2 - E4 --> E6{評估結果} - E6 -->|通過| E7[三顆星通關] - E6 -->|需訂正| E8[命條-1, 進入訂正流程] - E8 --> E9{命條>0?} - E9 -->|是| E10[UI_DialogCorrection_SyntaxExplanation_Play] - E9 -->|否| E11[關卡失敗+時光卷] - E10 --> E12[UI_DialogCorrection_SyntaxRetry_Play] - E12 --> E13[UI_DialogCorrection_SyntaxPass_Result] - E13 --> E6 - E7 --> E14[詞彙加入複習清單] --> E15{滿星檢查} - E15 -->|滿星| E16[語言程度晉階進度+今日任務] - E15 -->|非滿星| E17[今日任務檢查+獎勵] - E16 --> A - E17 --> A - E11 --> A - - F --> F1[UI_VocabReview_Main] - F1 --> F2[間隔複習算法選題] - F2 --> F3[UI_VocabReview_Main] - F3 --> F4{答題結果} - F4 -->|正確| F5{全部完成?} - F4 -->|錯誤| F6[命條-1, 重複複習] - F6 --> F7{命條>0?} - F7 -->|是| F5 - F7 -->|否| F8[關卡失敗+時光卷] - F5 -->|是| F9[三顆星通關] - F5 -->|否| F3 - F8 --> A - F9 --> F10[更新複習次數] --> A - - G --> G1[UI_TimeWarpChallenge_Main] - G1 --> G2[300秒倒數計時開始] - G2 --> G3[快速詞彙/對話挑戰] - G3 --> G4{時間內完成?} - G4 -->|是| G5[時光獎勵+經驗值] - G4 -->|否| G6[挑戰失敗] - G5 --> A - G6 --> A -``` - -#### 流程說明 - -1. **訂閱狀態檢查** *(新增)* - - 進入對話訓練關卡前檢查訂閱狀態 - - 未訂閱用戶自動跳轉到訂閱頁面 `UI_SubscriptionPlans` - - 訂閱成功後解鎖對話訓練功能 - -2. **命條系統檢查** - - 每次進入關卡前檢查命條數量(最大5個) - - 命條不足時提示購買或等待自動回復(每5小時+1個) - - 命條歸零時關卡失敗,獲得時光卷作為安慰獎勵 - -3. **詞彙認識關卡流程 (C)** - - `UI_Vocab_Introduction`: 展示詞彙、詞義、例句、示意圖 - - `UI_Vocab_Choice_Practice`: 詞彙選擇題測試 - - 答錯扣除命條,題目移至最後重新測試 - - 全部正確獲得三顆星通關,詞彙加入複習清單 - -4. **詞彙熟悉關卡流程 (D)** - - `UI_VocabFluency_MatchImageToWord`: 圖片配對練習 - - `UI_VocabFluency_SentenceReorder`: 例句重組練習 - - 多種練習模式強化詞彙記憶 - - 完成後詞彙進入複習系統 - -5. **情境對話關卡流程 (E)** *(需訂閱權限)* - - `UI_ScenarioDialog_GoalDetail`: 顯示對話任務目標 - - `UI_Dialogue_Main`: 主要對話界面 - - **雙重完成條件**: 劇情任務完成 + 指定詞彙使用 - - **回覆卡關輔助**: `UI_ScenarioDialog_ReplyGuide` 三層輔助架構 - - **AI評估系統**: 語法、語意、流暢度三維度即時評分 - - 需要訂正時扣除命條,提供解釋和重試機會 - -6. **間隔複習流程 (F)** - - `UI_VocabReview_Main`: 基於間隔複習算法選擇詞彙 - - 使用公式:下次複習時間 = 當日 + (2^複習次數) - - `UI_VocabReview_Main`: 複習測試界面 - - 答錯重複複習,正確則更新複習次數 - -7. **時光挑戰流程 (G)** - - `UI_TimeWarpChallenge_Main`: 300秒限時挑戰 - - 快速詞彙或對話測試 - - 時間內完成獲得時光獎勵和經驗值 - - 挑戰失敗無懲罰,可重複嘗試 - -8. **特殊任務系統** *(新增)* - - 每日00:00重置所有任務進度 - - 關卡結算時檢查任務完成狀態 - - 完成任務獲得經驗值獎勵並顯示結算頁面 - - 包含詞彙認識、熟悉、對話訓練、滿星對話四類任務 - -9. **語言程度晉階系統** *(新增)* - - 13級語言程度系統(A1→A2→B1→B2→C1→C2→最高級C2) - - 晉階條件:前階與後階累積滿星對話訓練次數 - - 晉階後解鎖更高難度關卡和內容 - - 多維度語言能力評估:語意合適度、語法錯誤率、表達流暢度、詞彙分數 - -### 3. 詞彙學習系統流程 (Vocabulary Learning System Flow) - -```mermaid -graph TD - A[詞彙學習系統] --> B{學習階段判定} - B -->|認識階段| C[詞彙認識關卡] - B -->|熟悉階段| D[詞彙熟悉關卡] - B -->|對話應用| E[情境對話訓練] - B -->|間隔複習| F[複習系統] - - C --> C1{命條檢查} - C1 -->|命條>0| C2[UI_Vocab_Introduction] - C1 -->|命條=0| C3[等待回復/購買] - C2 --> C4[詞彙展示學習] - C4 --> C5[UI_Vocab_Choice_Practice] - C5 --> C6{測試結果} - C6 -->|正確| C7{階段完成?} - C6 -->|錯誤| C8[命條-1, 加入最後] - C7 -->|完成| C9[進入熟悉階段] - C7 -->|繼續| C5 - C8 --> C1 - - D --> D1[UI_VocabFluency_MatchImageToWord] - D1 --> D2[UI_VocabFluency_SentenceReorder] - D2 --> D3{熟悉度測試} - D3 -->|通過| D4[進入對話階段] - D3 -->|需加強| D1 - - E --> E1[情境對話中詞彙應用] - E1 --> E2{對話完成} - E2 -->|成功| E3[詞彙掌握完成] - E2 -->|需重試| E1 - - F --> F1[間隔複習算法] - F1 --> F2[選擇到期詞彙] - F2 --> F3[UI_VocabReview_Main] - F3 --> F4{複習結果} - F4 -->|記住| F5[延長間隔時間] - F4 -->|遺忘| F6[重置間隔計數] - F5 --> F7[更新複習次數] - F6 --> F7 - - C9 --> D - D4 --> E - E3 --> F -``` - -### 4. 社交與競爭流程 (Social & Competition Flow) - -```mermaid -graph TD - A[社交功能入口] --> B{用戶狀態} - B -->|訪客| C[UI_SocialRanking_GuestPrompt] - B -->|註冊用戶| D[UI_Social_Ranking] - - D --> E[UI_RankingDetail] - E --> F{競爭選項} - F -->|挑戰用戶| G[UI_TimedDialogue] - F -->|查看好友| H[UI_PersonalCenter_FriendMain] - - H --> I[UI_PersonalCenter_FriendList] - I --> J[UI_PersonalCenter_OtherUserMain] - - H --> K[UI_PersonalCenter_FriendSearch] - - G --> L[對話挑戰結果] - L --> M[UI_LevelResult_SuccessResult] -``` - -### 5. 命條系統流程 (Life Points System Flow) - -```mermaid -graph TD - A[命條系統] --> B{當前命條數量} - B -->|命條>0| C[正常遊戲流程] - B -->|命條=0| D[UI_ScenarioDialog_InsufficientPopup] - - D --> E{用戶選擇} - E -->|等待回復| F[顯示回復時間] - E -->|購買命條| G[UI_Shop_Categories] - E -->|觀看廣告| H[UI_AdOffer] - - F --> F1[每5小時+1命條] - F1 --> F2{命條已回復} - F2 -->|是| C - F2 -->|否| F - - G --> G1[UI_ItemStore_ConfirmPopup] - G1 --> G2{購買確認} - G2 -->|確認| G3[命條+5] - G2 -->|取消| D - G3 --> C - - H --> H1[UI_AdViewing] - H1 --> H2[UI_RewardClaim] - H2 --> H3[命條+1] - H3 --> C - - C --> I{學習過程中} - I -->|答錯/需訂正| J[命條-1] - J --> K{命條>0} - K -->|是| C - K -->|否| L[關卡失敗+時光卷] - L --> D -``` - -### 6. 商業化流程 (Monetization Flow) - -```mermaid -graph TD - A[商業功能觸發] --> B{觸發情境} - B -->|命條不足| C[UI_ScenarioDialog_InsufficientPopup] - B -->|回覆提示不足| D[回覆提示道具購買確認] - B -->|主動購買| E[UI_Shop_Categories] - B -->|訂閱服務| F[UI_SubscriptionPlans] - B -->|廣告獎勵| G[UI_AdOffer] - - C --> E - D --> D1{鑽石是否足夠(30)} - D1 -->|足夠| D2[購買回覆提示道具] - D1 -->|不足| E - D2 --> D3[返回對話並啟用輔助功能] - D3 --> D4[UI_ScenarioDialog_ReplyGuide] - - E --> H[UI_ItemStore_ConfirmPopup] - H --> I{購買確認} - I -->|確認| J[處理購買] - I -->|取消| K[返回商店] - - F --> L[UI_PaymentFlow] - L --> M[UI_Subscription_Result] - - G --> N[UI_AdViewing] - N --> O[UI_RewardClaim] - - J --> P[UI_PurchasedContent] - M --> Q[返回主功能] - O --> Q -``` - -### 7. 個人中心流程 (Personal Center Flow) - -```mermaid -graph TD - A[UI_Profile_Dashboard] --> B{功能選擇} - B -->|詳細統計| C[UI_PresonalCenter_dd_Detail] - B -->|個人設定| D[UI_PersonalCenter_Settings] - B -->|好友管理| E[UI_PersonalCenter_FriendMain] - B -->|訪客狀態| F[UI_PersonalCenter_GuestPrompt] - B -->|功能鎖定| G[UI_PersonalCenter_Locked] - - E --> H[UI_PersonalCenter_FriendList] - E --> I[UI_PersonalCenter_FriendSearch] - - H --> J[UI_PersonalCenter_OtherUserMain] - - F --> K[UI_Login_Main] -``` - -### 8. 語言程度晉階流程 (Language Level Advancement Flow) *(新增)* - -```mermaid -graph TD - A[對話訓練滿星完成] --> B[更新晉階進度] - B --> C{當前語言程度} - C -->|1級A1| D[檢查後階進度10/10] - C -->|2-3級A2| E[檢查前階15+後階10] - C -->|4-6級B1| F[檢查前階15+後階10] - C -->|7-8級B2| G[檢查前階15+後階10] - C -->|9-11級C1| H[檢查前階15+後階10] - C -->|12級C2| I[檢查前階15+後階10] - C -->|13級最高級| J[已達最高級] - - D --> K{後階完成?} - E --> L{前階+後階完成?} - F --> L - G --> L - H --> L - I --> L - - K -->|是| M[UI_LanguageLevel_LevelUp] - K -->|否| N[更新進度顯示] - L -->|是| M - L -->|否| N - - M --> O[程度提升+解鎖新關卡] - N --> P[返回學習地圖] - O --> P - J --> P -``` - -#### 語言程度系統規格 - -**13階層架構**: -- **1級 (A1)**: 後階10次滿星對話訓練 -- **2-3級 (A2)**: 前階15次 + 後階10次滿星對話訓練 -- **4-6級 (B1)**: 前階15次 + 後階10次滿星對話訓練 -- **7-8級 (B2)**: 前階15次 + 後階10次滿星對話訓練 -- **9-11級 (C1)**: 前階15次 + 後階10次滿星對話訓練 -- **12級 (C2)**: 前階15次 + 後階10次滿星對話訓練 -- **13級 (最高級C2)**: 已達最高語言程度 - -**評估指標**: -- 語意合適度 -- 語法錯誤率 -- 表達流暢度 -- 詞彙分數 - -### 9. 特殊任務系統流程 (Daily Mission System Flow) *(新增)* - -```mermaid -graph TD - A[關卡結算時] --> B[檢查今日任務進度] - B --> C{任務類型} - C -->|詞彙認識關卡通關| D[更新任務1進度] - C -->|詞彙熟悉關卡通關| E[更新任務2進度] - C -->|對話訓練關卡通關| F[更新任務3進度] - C -->|對話訓練滿星| G[更新任務4進度] - - D --> H[檢查任務完成狀態] - E --> H - F --> H - G --> H - - H --> I{任務完成?} - I -->|是| J[UI_Mission_RewardResult] - I -->|否| K[返回學習地圖] - - J --> L[獲得經驗值獎勵] - L --> K - - M[每日00:00] --> N[重置所有任務進度] - N --> O[任務狀態初始化] -``` - -#### 今日任務規格 - -**任務清單**: -1. **詞彙認識任務**: 成功闖關1次詞彙認識關卡 → 經驗值獎勵 -2. **詞彙熟悉任務**: 成功闖關1次詞彙熟悉關卡 → 經驗值獎勵 -3. **對話訓練任務**: 成功闖關1次對話訓練關卡 → 經驗值獎勵 -4. **完美對話任務**: 在對話訓練關卡獲得滿星分數1次 → 經驗值獎勵 - -**重置機制**: 每日00:00自動重置所有任務進度 - -**獎勵時機**: 關卡結束時進行任務完成判定,完成則顯示獎勵結算頁面 - -### 10. 鑽石貨幣系統流程 (Diamond Currency System Flow) *(更新)* - -```mermaid -graph TD - A[鑽石需求觸發] --> B{觸發情境} - B -->|命條不足需補充| C[UI_LifePoints_Display] - B -->|回覆提示需求| D[UI_Cost_Confirm_Popup - 30鑽石] - B -->|限時挑戰入場| E[UI_Cost_Confirm_Popup - 50鑽石] - B -->|加時道具| F[UI_Cost_Confirm_Popup - 300鑽石] - B -->|主動購買| G[UI_Shop_Categories] - - C --> C1{選擇} - C1 -->|購買補命道具| C2[UI_Shop_Item_Confirm - 100鑽石] - C1 -->|等待自動回復| C3[等待時間] - - D --> D1{鑽石足夠?} - D1 -->|足夠| D2[購買成功] --> D3[UI_Reply_Assistance] - D1 -->|不足| H[UI_Insufficient_Resources] - - E --> E1{鑽石足夠?} - E1 -->|足夠| E2[入場成功] --> E3[UI_TimeWarp_Cards] - E1 -->|不足| H - - F --> F1{鑽石足夠?} - F1 -->|足夠| F2[購買成功] --> F3[時間道具啟用] - F1 -->|不足| H - - H --> G - G --> G1{套餐選擇} - G1 -->|新手包| G2[500鑽石 - NT$30] - G1 -->|基礎包| G3[1200鑽石 - NT$60] - G1 -->|價值包| G4[2500鑽石 - NT$99] - G1 -->|豪華包| G5[5000鑽石 - NT$190] - G1 -->|至尊包| G6[12000鑽石 - NT$390] - - G2 --> G7[UI_Shop_Item_Confirm] - G3 --> G7 - G4 --> G7 - G5 --> G7 - G6 --> G7 - G7 --> G8{購買確認} - G8 -->|確認| G9[UI_Subscription_Success] - G8 -->|取消| G10[返回原處] -``` - -### 11. 300秒限時挑戰流程 (300-Second Timed Challenge Flow) *(新增)* - -```mermaid -graph TD - A[限時挑戰觸發] --> B{入場檢查} - B -->|首次免費| C[UI_TimeWarp_Cards - 直接入場] - B -->|非首次| D[UI_Cost_Confirm_Popup - 50鑽石] - - D --> D1{鑽石足夠?} - D1 -->|足夠| C - D1 -->|不足| E[UI_Insufficient_Resources] --> F[UI_Shop_Categories] - - C --> G[開始300秒倒數] - G --> H{挑戰過程} - H -->|需要暫停| I[UI_Cost_Confirm_Popup - 100鑽石] --> I1{購買?} - H -->|需要加時| J[UI_Cost_Confirm_Popup - 150鑽石] --> J1{購買?} - H -->|時間到| K[結算頁面] - H -->|主動退出| L[UI_ChallengeLevel_ExitComfirmPopup] - - I1 -->|確認| M[暫停30秒] --> H - I1 -->|取消| H - J1 -->|確認| N[加時60秒] --> H - J1 -->|取消| H - - K --> O{挑戰結果} - O -->|成功| P[UI_Result_Success_A] --> Q[特殊獎勵獲得] - O -->|部分成功| R[UI_Result_Success_B] --> S[一般獎勵獲得] - O -->|失敗| T[UI_Result_Failure_A] --> U[無獎勵但可重試] -``` - -### 12. 簡化訂閱系統流程 (Simplified Subscription System Flow) *(更新)* - -```mermaid -graph TD - A[訂閱觸發] --> B[UI_Onboarding_Welcome - 7天免費體驗] - B --> C{體驗期使用} - C --> D[7天期滿提醒] - D --> E{用戶選擇} - E -->|續訂VIP| F[簡化訂閱確認] - E -->|不續訂| G[回到基礎功能] - - F --> H[VIP特權啟用] - H --> I[每日3次免費限時挑戰] - I --> J[其他VIP專屬功能] -``` -``` - -#### 訂閱系統規格 - -**訂閱方案**: -- **月費訂閱**: 600元/月 -- **測試優惠**: 內部測試期間享2折優惠 -- **訪客支援**: 支援訪客透過設備ID直接訂閱 - -**權限控制**: -- 對話訓練關卡需要訂閱權限 -- 詞彙認識和熟悉關卡免費開放 -- 其他功能按需設定權限 - -## 特殊流程處理 - -### 時間門票系統 - -```mermaid -graph TD - A[需要門票功能] --> B[UI_TimeGate_ConfirmUseTicket] - B --> C{確認使用} - C -->|確認| D[消耗門票繼續] - C -->|取消| E[返回上一頁] -``` - -### 額外任務系統 - -```mermaid -graph TD - A[UI_BonusMission_Main] --> B{任務狀態} - B -->|可完成| C[執行任務] - B -->|檢視獎勵| D[獎勵預覽] - C --> E[任務完成獎勵] -``` - -### 生活模擬系統 - -```mermaid -graph TD - A[UI_PlayLife_Main] --> B{角色狀態} - B -->|正常| C[選擇活動] - B -->|需要維護| D[角色維護] - C --> E[執行活動] - E --> F[狀態更新] -``` - -## 導航規則 - -### 全局導航 -- 主學習地圖:`UI_Level_Map` -- 個人中心:`UI_Profile_Dashboard` -- 排行榜:`UI_Social_Ranking` -- 商店:`UI_Shop_Categories` - -### 返回機制 -- 每個子流程都有明確的返回路徑 -- 支援中途退出確認:`UI_ChallengeLevel_ExitComfirmPopup` -- 保存進度機制防止資料丟失 - -### 狀態保持 -- 用戶登入狀態持久化 -- 學習進度即時保存 -- 設定偏好本地存儲 - -## 異常處理流程 - -### 網路異常 -- 顯示連線錯誤提示 -- 提供重試機制 -- 離線模式支援(部分功能) - -### 命條不足處理 -- `UI_ScenarioDialog_InsufficientPopup`: 命條不足提示 -- 提供等待回復(每5小時+1)、購買、觀看廣告三種選擇 -- 關卡失敗時獲得時光卷作為安慰獎勵 - -### 回覆卡關情境處理 *(新增功能)* -- 使用者在對話中不知道如何回應 -- 觸發`UI_ScenarioDialog_ReplyGuide`三層輔助介面 -- 檢查回覆提示道具庫存(30鑽石/次) -- 道具不足時引導鑽石購買流程 - -### 間隔複習系統異常 -- 複習詞彙數據同步異常處理 -- 複習算法計算錯誤回退機制 -- 詞彙掌握度評估校正 - -### 權限不足 -- 訪客提示:`UI_PersonalCenter_GuestPrompt`、`UI_SocialRanking_GuestPrompt` -- 功能鎖定:`UI_PersonalCenter_Locked`、`UI_ChallengeLevel_ChoosePopupLock` -- 升級引導流程 - -## 關鍵轉換點 (Conversion Points) - -1. **註冊轉換**: 訪客 → 註冊用戶 -2. **首次訂閱轉換** *(新增)*: 完成第一次詞彙認識關卡 → 觸發訂閱頁面 → 月費訂閱(600元/月) -3. **對話訓練權限轉換** *(新增)*: 免費用戶嘗試對話訓練 → 訂閱提示 → 付費解鎖功能 -4. **命條系統轉換**: 體驗命條限制 → 購買命條/觀看廣告 → 持續付費 -5. **回覆輔助轉換**: 體驗回覆卡關 → 購買提示道具(30鑽石) → 重複使用輔助功能 -6. **特殊任務激勵** *(新增)*: 日常學習習慣 → 每日任務完成 → 經驗值獎勵 → 持續參與 -7. **語言程度晉階** *(新增)*: 達成滿星對話訓練 → 程度提升 → 解鎖新內容 → 長期留存 -8. **詞彙學習循環**: 完成認識→熟悉→對話→複習的完整學習閉環 -9. **留存關鍵**: 建立間隔複習習慣,詞彙庫達到50個以上 -10. **社交激活**: 添加首個好友並進行時光挑戰競爭 -11. **習慣養成**: 連續7天使用應用,每日完成至少一個關卡 - -## 效能考量 - -- 關鍵路徑頁面載入時間 < 2秒 -- 對話評估回應時間 < 3秒 -- **回覆輔助功能回應時間 < 2秒** *(新增)* -- **翻譯服務回應時間 < 1.5秒** *(新增)* -- **間隔複習算法計算時間 < 0.5秒** *(新增)* -- **詞彙圖片載入時間 < 1秒** *(新增)* -- **命條狀態同步延遲 < 1秒** *(新增)* -- 離線快取常用內容和詞彙數據 -- 漸進式載入非關鍵資源 -- 詞彙複習數據本地快取機制 - -## 無障礙支援 - -- 支援螢幕閱讀器 -- 鍵盤導航支援 -- 高對比度模式 -- 文字大小調整 - -## 多語言支援 - -- 介面語言切換 -- 學習內容本地化 -- RTL語言支援 -- 語音辨識多語言 +- **用戶認證與引導系統 (MD_ENT)**: 基礎用戶管理功能 +- **核心學習功能 (MD_CORE)**: 9個核心學習特性 +- **學習任務與活動 (MD_TASK)**: 6個任務和活動特性 +- **商業模式功能 (MD_BIZ)**: 7個商業功能特性 (含3個跨模組功能) --- -本文件將隨著產品迭代持續更新,確保開發團隊始終有最新的用戶流程指引。 \ No newline at end of file +## 🎯 核心學習功能 (MD_CORE) + +### 1. 多場景劇本對話 (FT_ScenarioDialogue) + +**功能描述**: 用戶選擇車禍、購物、餐廳等真實場景進行對話練習 +**目標**: 提升實際溝通情境下的對話能力 + +#### 用戶流程 +```mermaid +graph TD + A[UI_Level_Map] --> B[選擇場景關卡] + B --> C[UI_Dialogue_Main] + C --> D[開始情境對話] + D --> E[AI回應與分析] + E --> F[UI_Task_Display] + F --> G[查看任務結果] + G --> H{繼續練習?} + H -->|是| C + H -->|否| A +``` + +#### UI 組件流程 +- **入口**: UI_Level_Map +- **主要**: UI_Dialogue_Main +- **結果**: UI_Task_Display + +#### 相關資料 +- Lesson, Dialogue, UserProfile + +--- + +### 2. 任務導向對話訓練 (FT_TaskDialogue) + +**功能描述**: 用戶完成指定任務如安撫、報警、說明等對話目標 +**目標**: 訓練目標導向的溝通技能 + +#### 用戶流程 +```mermaid +graph TD + A[UI_Level_Selection_Modal] --> B[選擇任務類型] + B --> C[UI_Dialogue_Main] + C --> D[執行任務對話] + D --> E[UI_Dialogue_Analysis] + E --> F[分析任務完成度] + F --> G{任務完成?} + G -->|是| H[獲得獎勵] + G -->|否| I[提供改進建議] + H --> J[返回任務選擇] + I --> C +``` + +#### UI 組件流程 +- **入口**: UI_Level_Selection_Modal +- **主要**: UI_Dialogue_Main +- **分析**: UI_Dialogue_Analysis + +#### 相關資料 +- Task, TaskReward, Dialogue + +--- + +### 3. 指定詞彙練習 (FT_VocabularyPractice) + +**功能描述**: 用戶在對話中練習指定詞彙的使用 +**目標**: 強化特定詞彙的實際應用能力 + +#### 用戶流程 +```mermaid +graph TD + A[UI_Vocab_Introduction] --> B[介紹目標詞彙] + B --> C[UI_Vocab_Choice_Practice] + C --> D[詞彙選擇練習] + D --> E[對話中使用詞彙] + E --> F[UI_Vocab_Review_Main] + F --> G[複習和鞏固] + G --> H{掌握程度} + H -->|掌握| I[進入下個詞彙] + H -->|需加強| C +``` + +#### UI 組件流程 +- **介紹**: UI_Vocab_Introduction +- **練習**: UI_Vocab_Choice_Practice +- **複習**: UI_Vocab_Review_Main + +#### 相關資料 +- Lesson, Dialogue + +--- + +### 4. 限時對話挑戰 (FT_TimedChallenge) + +**功能描述**: 用戶在限定時間內完成對話任務 +**目標**: 提升反應速度和流暢度 + +#### 用戶流程 +```mermaid +graph TD + A[UI_Level_Map] --> B[選擇挑戰模式] + B --> C[UI_Dialogue_Main] + C --> D[開始倒數計時] + D --> E[快速對話回應] + E --> F{時間剩餘?} + F -->|是| E + F -->|否| G[UI_Result_Success_A] + G --> H[查看成績和排名] + H --> I[更新排行榜] +``` + +#### UI 組件流程 +- **入口**: UI_Level_Map +- **主要**: UI_Dialogue_Main +- **結果**: UI_Result_Success_A + +#### 相關資料 +- Task, TaskReward, Leaderboard + +--- + +### 5. AI即時分析回饋 (FT_AIFeedback) + +**功能描述**: 對用戶對話提供即時的AI分析和改善建議 +**目標**: 實時提升對話品質 + +#### 用戶流程 +```mermaid +graph TD + A[對話輸入完成] --> B[AI即時分析] + B --> C[UI_Dialogue_Analysis] + C --> D[顯示分析結果] + D --> E[UI_Correction_Grammar] + E --> F[提供改善建議] + F --> G{接受建議?} + G -->|是| H[應用修正] + G -->|否| I[繼續原回應] +``` + +#### UI 組件流程 +- **分析**: UI_Dialogue_Analysis +- **訂正**: UI_Correction_Grammar + +#### 分析維度 +- **語法準確度**: Grammar Score +- **詞彙選擇**: Vocabulary Usage +- **語調適切性**: Tone Assessment +- **表達流暢度**: Fluency Rating + +--- + +### 6. 三維度評分系統 (FT_ScoreSystem) + +**功能描述**: 從語法、詞彙、流暢度三個維度評估對話表現 +**目標**: 提供全面的學習成效評估 + +#### 用戶流程 +```mermaid +graph TD + A[對話完成] --> B[系統評分計算] + B --> C[UI_Result_Score_Summary_A] + C --> D[顯示三維度分數] + D --> E[UI_Result_Dialogue_Analysis] + E --> F[詳細分析報告] + F --> G[學習建議] +``` + +#### UI 組件流程 +- **總結**: UI_Result_Score_Summary_A +- **詳細**: UI_Result_Dialogue_Analysis + +#### 評分維度 +- **語法準確度 (Grammar)**: 0-100分 +- **詞彙豐富度 (Vocabulary)**: 0-100分 +- **表達流暢度 (Fluency)**: 0-100分 + +--- + +### 7. 對話訂正功能 (FT_DialogueCorrection) + +**功能描述**: 用戶可以修正和改善自己的對話內容 +**目標**: 通過自主訂正強化學習效果 + +#### 用戶流程 +- **觸發**: 對話完成後 +- **功能**: 查看原文、建議修正、重新練習 +- **學習**: 比較原文與修正版本的差異 + +--- + +### 8. 命條生命系統 (FT_LifeSystem) + +**功能描述**: 遊戲化的生命值系統,錯誤會消耗生命值 +**目標**: 增加學習的挑戰性和參與度 + +#### 系統機制 +- **初始生命值**: 5條命 +- **消耗條件**: 嚴重語法錯誤、任務失敗 +- **恢復方式**: 時間恢復、使用道具、觀看廣告 + +--- + +### 9. 回覆輔助系統 (FT_ReplyAssistance) + +**功能描述**: 為用戶提供對話回覆的輔助和提示 +**目標**: 降低學習門檻,提升學習信心 + +#### 輔助類型 +- **詞彙提示**: 關鍵詞建議 +- **句型範本**: 常用句型參考 +- **語境提醒**: 情境適用性提示 + +--- + +## 📋 學習任務與活動 (MD_TASK) + +### 10. 排行榜競爭 (FT_Leaderboard) + +**功能描述**: 用戶可以查看和比較學習成績排名 +**目標**: 激發競爭意識和持續學習動機 + +#### 排行榜類型 +- **每日排行**: 當日活躍度和成績 +- **週排行**: 週學習進度 +- **總排行**: 累計學習成就 + +--- + +### 11. 成就系統 (FT_Achievement) + +**功能描述**: 設定各種學習里程碑和成就徽章 +**目標**: 提供成就感和學習目標 + +#### 成就分類 +- **學習成就**: 完成課程、練習次數 +- **技能成就**: 語法精通、詞彙掌握 +- **社交成就**: 朋友互動、分享成績 + +--- + +### 12. 每日複習清單 (FT_DailyReview) + +**功能描述**: 根據學習進度生成個人化每日複習任務 +**目標**: 確保學習內容的鞏固和長期記憶 + +#### 複習機制 +- **智能推薦**: 基於遺忘曲線 +- **個人化**: 根據弱項調整 +- **進度追蹤**: 完成率和掌握度 + +--- + +### 13. 間隔複習演算法 (FT_SpacedRepetition) + +**功能描述**: 使用科學的間隔複習算法安排學習內容 +**目標**: 優化記憶保持和學習效率 + +#### 演算法特點 +- **遺忘曲線**: 基於艾賓浩斯遺忘曲線 +- **難度調整**: 根據掌握程度調整間隔 +- **動態排程**: 智能安排複習時機 + +--- + +### 14. 300秒限時挑戰系統 (FT_TimedChallenge300) + +**功能描述**: 5分鐘快速挑戰模式,測試學習成果 +**目標**: 提供快節奏的學習驗證和樂趣 + +#### 挑戰模式 +- **快速問答**: 詞彙、語法快速測試 +- **對話搶答**: 限時對話回應 +- **排行競爭**: 實時排名更新 + +--- + +### 15. 時光卷系統 (FT_TimeWarpCard) + +**功能描述**: 道具系統,可以重置學習進度或跳過等待時間 +**目標**: 提供靈活的學習節奏控制 + +#### 道具功能 +- **時光倒流**: 重置失敗的挑戰 +- **時光加速**: 跳過冷卻時間 +- **時光保存**: 儲存當前學習狀態 + +--- + +## 💰 商業模式功能 (MD_BIZ) + +### 16. 鑽石購買系統 (FT_DiamondPurchase) + +**功能描述**: 應用內虛擬貨幣購買系統 +**目標**: 提供應用的主要收入來源 + +#### 購買流程 +- **鑽石包**: 不同價格的鑽石組合 +- **支付方式**: 整合第三方支付 +- **購買記錄**: 交易歷史和收據 + +--- + +### 17. 道具商店系統 (FT_ItemShop) + +**功能描述**: 用戶使用鑽石購買各種學習道具和輔助工具 +**目標**: 提供個性化學習體驗和鑽石消費途徑 + +#### 道具分類 +- **學習道具**: 提示卡、跳過卡 +- **生命道具**: 生命值恢復、保護罩 +- **時間道具**: 時光卷、加速卡 + +--- + +### 18. 簡化訂閱系統 (FT_SimplifiedSubscription) + +**功能描述**: 簡化的月費/年費訂閱服務 +**目標**: 提供穩定的訂閱收入和VIP體驗 + +#### 訂閱特權 +- **無限生命**: 不受生命值限制 +- **VIP內容**: 專屬課程和挑戰 +- **優先支援**: 客服優先回應 + +--- + +### 19. 獎勵廣告系統 (FT_RewardAds) + +**功能描述**: 觀看廣告獲得遊戲內獎勵 +**目標**: 提供免費用戶的增值體驗和廣告收入 + +#### 獎勵類型 +- **鑽石獎勵**: 觀看廣告獲得鑽石 +- **生命恢復**: 廣告換取生命值 +- **道具獎勵**: 免費獲得限時道具 + +--- + +## 🔗 跨功能整合流程 + +### 新用戶完整體驗路徑 +1. **註冊引導** → **等級評估** → **首次對話練習** +2. **功能介紹** → **購買引導** → **日常學習循環** + +### 日常學習循環 +1. **每日複習** → **主要學習** → **限時挑戰** → **成就檢查** + +### 付費轉換路徑 +1. **免費體驗** → **功能限制** → **購買引導** → **付費體驗** + +--- + +## 📊 功能完整性檢查清單 + +### 核心學習功能 (9/9) +- [x] 多場景劇本對話 +- [x] 任務導向對話訓練 +- [x] 指定詞彙練習 +- [x] 限時對話挑戰 +- [x] AI即時分析回饋 +- [x] 三維度評分系統 +- [x] 對話訂正功能 +- [x] 命條生命系統 +- [x] 回覆輔助系統 + +### 學習任務與活動 (6/6) +- [x] 排行榜競爭 +- [x] 成就系統 +- [x] 每日複習清單 +- [x] 間隔複習演算法 +- [x] 300秒限時挑戰系統 +- [x] 時光卷系統 + +### 商業模式功能 (7/7) +- [x] 鑽石購買系統 +- [x] 道具商店系統 +- [x] 300秒限時挑戰系統 (跨模組: MD_TASK,MD_BIZ) +- [x] 命條生命系統 (跨模組: MD_CORE,MD_BIZ) +- [x] 回覆輔助系統 (跨模組: MD_CORE,MD_BIZ) +- [x] 簡化訂閱系統 +- [x] 獎勵廣告系統 + +**總計**: 19/19 功能已文檔化 + +--- + +## 🔄 維護說明 + +### 新增功能流程 +1. 在 `system_structure_design.json` 中定義功能 +2. 在本文檔中添加對應的 user flow +3. 確保 UI 組件和資料綁定的完整性 +4. 更新功能完整性檢查清單 + +### 修改現有功能 +1. 同步更新 system design 和 user flow +2. 檢查相關功能的影響 +3. 驗證 UI 流程的一致性 + +--- + +**最後更新**: 2025-09-08 +**文檔版本**: 2.0 (功能導向重構版) +**維護者**: Drama Ling 開發團隊 \ No newline at end of file diff --git a/drama b/drama index 14fd7af..18ab84e 100755 --- a/drama +++ b/drama @@ -29,6 +29,7 @@ show_menu() { echo "" echo -e "${PURPLE}🔧 系統檢查${NC}" echo " consistency - 執行一致性檢查" + echo " compliance - 執行合規性檢查" echo " all - 執行全部檢查" echo "" echo -e "${PURPLE}⚙️ 系統設置${NC}" @@ -63,6 +64,9 @@ case "$1" in "consistency") exec "$SCRIPT_DIR/scripts/maintenance_manager.sh" consistency ;; + "compliance") + exec "$TOOLS_DIR/check_compliance.sh" + ;; "all") exec "$SCRIPT_DIR/scripts/maintenance_manager.sh" all ;; diff --git a/reports/README.md b/reports/README.md index fe539b6..aba29bf 100644 --- a/reports/README.md +++ b/reports/README.md @@ -25,7 +25,7 @@ reports/ 格式:`YYYY-MM-DD_[問題類型]-analysis.md` 範例: -- `2024-12-08_UI-consistency-analysis.md` +- `2025-09-07_UI-consistency-analysis.md` - `2024-12-15_API-modules-analysis.md` - `2024-12-22_database-schema-analysis.md` diff --git a/reports/analysis/2024-12-08_UI-consistency-analysis.md b/reports/analysis/2025-09-07_UI-consistency-analysis.md similarity index 100% rename from reports/analysis/2024-12-08_UI-consistency-analysis.md rename to reports/analysis/2025-09-07_UI-consistency-analysis.md diff --git a/reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md b/reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md new file mode 100644 index 0000000..4833482 --- /dev/null +++ b/reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md @@ -0,0 +1,169 @@ +# UI設計缺漏嚴重性評估分析報告 + +## 📊 檢查結果總覽 + +### 基本資訊 +- **分析日期**: 2025-09-07 +- **分析範圍**: System Design vs User Flow UI對照 +- **觸發原因**: 發現「System Design有39個UI但User Flow沒有」問題 +- **相關問題**: ISSUES.md #缺漏問題 + +### 數據統計 +- **System Design UI 總數**: 100個 +- **User Flow UI 總數**: 68個 +- **共同 UI 數量**: 61個 +- **實際缺失數量**: 40個(比原估計39個更嚴重) +- **缺漏比例**: 40% + +## 🔍 詳細分析 + +### 1. 問題分類 + +#### 🔥 高嚴重度問題 - 17個UI +**對話糾正系統 (9個UI)** +- `UI_Correction_Fluency_Practice` - 流暢度練習 +- `UI_Correction_Grammar_Retry` - 語法重試 +- `UI_Correction_Pass_Result` - 通過結果 +- `UI_Correction_Retry_Result` - 重試結果 +- `UI_DialogCorrection_FluencyExplanation_Play` - 流暢度解釋播放 +- `UI_DialogCorrection_FluencyPass_Result` - 流暢度通過結果 +- `UI_DialogCorrection_FluencyRetry_Play` - 流暢度重試播放 +- `UI_Dialogue_Analysis` - 對話分析 +- `UI_LevelResult_CorrectionResult` - 關卡糾正結果 + +**學習結果系統 (8個UI)** +- `UI_LevelResult_DialogScoreSummary` - 對話分數總結 +- `UI_LevelResult_FailResult2` - 失敗結果2 +- `UI_LevelResult_RewardConfirm` - 獎勵確認 +- `UI_LevelResult_ScoreSummary` - 分數總結 +- `UI_LevelResult_ScoreSummary2` - 分數總結2 +- `UI_LevelResult_SmallReward` - 小獎勵 +- `UI_LevelResult_SuccessResult2` - 成功結果2 +- `UI_Level_Selection_Modal` - 關卡選擇彈窗 + +**影響評估:** +- 核心學習功能無法完整實現 +- 對話糾正是產品差異化的關鍵功能 +- 學習反饋機制不完整,影響用戶留存 + +#### 🟡 中等嚴重度問題 - 13個UI +**詞彙學習結果 (6個UI)** +- 詞彙練習反饋系統不完整 +- 影響學習成效評估 + +**情境對話詳細 (4個UI)** +- 對話體驗深度不足 +- 缺少成本確認和角色詳情 + +**複習系統 (3個UI)** +- 間隔複習功能不完整 +- 影響長期學習效果 + +#### 🟢 低嚴重度問題 - 10個UI +**社交功能和管理功能** +- 不影響核心學習體驗 +- 可在後期版本補充 + +### 2. 根因分析 + +#### 問題成因 +1. **設計階段脫節**: System Design與User Flow設計團隊溝通不足 +2. **優先級混淆**: 核心功能UI被忽略,次要功能過度設計 +3. **迭代過程缺失**: 設計更新後未同步更新User Flow +4. **驗證機制不足**: 缺少設計完整性檢查流程 + +#### 風險評估 +- **技術風險**: 開發時發現UI定義不完整,需要重新設計 +- **時程風險**: 補充User Flow需要額外2-4週時間 +- **產品風險**: 核心功能體驗不完整,影響產品競爭力 +- **用戶體驗風險**: 學習流程中斷,影響用戶滿意度 + +## 💡 解決方案 + +### 短期方案 (立即執行) +- [ ] **補充對話糾正系統User Flow** (3天內) + - 設計9個糾正相關UI的詳細流程 + - 定義UI間的轉場和互動邏輯 + - 確保糾正體驗的連貫性 + +- [ ] **完善學習結果系統User Flow** (2天內) + - 設計8個結果展示UI的流程 + - 建立獎勵機制的完整體驗 + - 確保成就感的有效傳達 + +### 中期方案 (1-2週內) +- [ ] **詞彙系統流程補全** + - 補充6個詞彙結果UI的User Flow + - 完善學習反饋機制 + +- [ ] **情境對話深度設計** + - 設計4個對話詳細UI的流程 + - 增強對話沈浸感 + +- [ ] **複習系統流程建立** + - 設計3個複習UI的完整流程 + - 建立間隔複習的用戶體驗 + +### 長期方案 (1個月內) +- [ ] **社交功能補充** + - 完善3個社交UI的User Flow + +- [ ] **管理功能整合** + - 補充7個管理UI的流程 + +- [ ] **建立設計同步機制** + - 建立UI一致性檢查流程 + - 設置定期同步檢查點 + +## 🎯 實施計劃 + +### 執行優先級 +1. 🔥 **第一週**: 對話糾正系統 + 學習結果系統 +2. ⚠️ **第二週**: 詞彙系統 + 情境對話 + 複習系統 +3. 📝 **第四週**: 社交功能 + 管理功能 + +### 成功指標 +- UI完整性達到95%以上 +- 核心學習流程100%定義完成 +- User Flow文檔與System Design一致性達到98% + +### 預期效益 +- **開發效率提升**: 減少開發階段的UI重新設計 +- **產品體驗完整**: 確保核心功能的完整用戶體驗 +- **維護成本降低**: 統一的設計標準,降低後期維護成本 + +## 📋 後續追蹤 + +### 檢查清單 +- [ ] 對話糾正系統User Flow設計完成 +- [ ] 學習結果系統User Flow設計完成 +- [ ] 詞彙系統User Flow補充完成 +- [ ] 情境對話User Flow設計完成 +- [ ] 複習系統User Flow建立完成 +- [ ] 社交功能User Flow補充完成 +- [ ] 管理功能User Flow整合完成 +- [ ] UI一致性檢查機制建立 +- [ ] User Flow文檔更新完成 + +### 下次檢查 +- **檢查日期**: 2025-09-14 +- **檢查範圍**: 高優先級UI的User Flow完成度 +- **負責人**: 產品設計團隊 + +### 相關文檔 +- [UI一致性分析報告](./2025-09-07_UI-consistency-analysis.md) +- [對話糾正系統User Flow設計](/tmp/ui_analysis/dialog_correction_flow.md) +- [缺失UI功能分類分析](/tmp/ui_analysis/missing_ui_analysis.md) + +--- + +**報告產生**: 手動分析 + 自動化檢查工具 +**報告人**: Claude Code Assistant +**審核人**: 待指定 +**檔案位置**: `reports/analysis/2025-09-07_UI-design-gaps-severity-analysis.md` + +## 🚨 緊急建議 + +基於分析結果,**強烈建議立即暫停非核心功能開發**,集中資源補全對話糾正系統和學習結果系統的User Flow設計。這兩個系統是產品的核心競爭力,缺失將嚴重影響產品質量和用戶體驗。 + +建議在完成高優先級UI的User Flow設計之前,**不要進入開發階段**,以避免後期大量的返工和重構。 \ No newline at end of file diff --git a/docs/04_technical/document-consistency-checklist.md b/scripts/document-consistency-checklist.md similarity index 100% rename from docs/04_technical/document-consistency-checklist.md rename to scripts/document-consistency-checklist.md diff --git a/tools/check_compliance.sh b/tools/check_compliance.sh new file mode 100755 index 0000000..10cc3e0 --- /dev/null +++ b/tools/check_compliance.sh @@ -0,0 +1,160 @@ +#!/bin/bash + +# Drama Ling 合規性檢查工具 +# 用途:檢查是否有違反標準流程的檔案和行為 +# 使用方法: ./check_compliance.sh + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" +REPORTS_DIR="$PROJECT_ROOT/reports" + +# 顏色定義 +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +RED='\033[0;31m' +NC='\033[0m' + +echo -e "${BLUE}🔍 Drama Ling 合規性檢查${NC}" +echo "==================================" + +# 檢查1: 尋找可能手動創建的報告檔案 +echo -e "${BLUE}檢查1: 尋找不符合命名規範的報告檔案${NC}" +suspicious_reports=() + +if [ -d "$REPORTS_DIR" ]; then + # 檢查是否有 2024 年份的檔案(應該都是 2025) + while IFS= read -r -d '' file; do + if [[ "$file" == *"2024"* ]]; then + suspicious_reports+=("$file") + fi + done < <(find "$REPORTS_DIR" -name "*.md" -print0 2>/dev/null) + + # 檢查是否有不符合日期格式的檔案 + while IFS= read -r -d '' file; do + filename=$(basename "$file") + if [[ ! "$filename" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}_ ]]; then + suspicious_reports+=("$file") + fi + done < <(find "$REPORTS_DIR" -name "*.md" -not -name "*template*" -print0 2>/dev/null) +fi + +if [ ${#suspicious_reports[@]} -eq 0 ]; then + echo -e "${GREEN}✅ 所有報告檔案都符合命名規範${NC}" +else + echo -e "${RED}❌ 發現 ${#suspicious_reports[@]} 個可能有問題的檔案:${NC}" + for file in "${suspicious_reports[@]}"; do + echo " - $file" + done +fi + +echo "" + +# 檢查2: 驗證報告檔案的日期一致性 +echo -e "${BLUE}檢查2: 驗證報告檔案的日期一致性${NC}" +current_date=$(date +"%Y-%m-%d") +date_inconsistencies=() + +if [ -d "$REPORTS_DIR" ]; then + while IFS= read -r -d '' file; do + if [[ "$file" == *"analysis"* ]] || [[ "$file" == *"decision"* ]]; then + # 提取檔名中的日期 + filename=$(basename "$file") + file_date=$(echo "$filename" | grep -o '^[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}') + + if [ -n "$file_date" ]; then + # 檢查檔案內容中的日期 + if grep -q "分析日期.*$file_date" "$file" 2>/dev/null; then + continue + else + date_inconsistencies+=("$file (檔名日期: $file_date)") + fi + fi + fi + done < <(find "$REPORTS_DIR" -name "*.md" -not -name "*template*" -print0 2>/dev/null) +fi + +if [ ${#date_inconsistencies[@]} -eq 0 ]; then + echo -e "${GREEN}✅ 所有報告的日期都一致${NC}" +else + echo -e "${RED}❌ 發現 ${#date_inconsistencies[@]} 個日期不一致的檔案:${NC}" + for file in "${date_inconsistencies[@]}"; do + echo " - $file" + done +fi + +echo "" + +# 檢查3: 檢查是否有未使用工具創建的檔案 +echo -e "${BLUE}檢查3: 檢查檔案創建方式${NC}" +manually_created=() + +if [ -d "$REPORTS_DIR" ]; then + while IFS= read -r -d '' file; do + if [[ "$file" == *"analysis"* ]] || [[ "$file" == *"decision"* ]]; then + # 檢查是否包含工具創建的標誌 + if ! grep -q "報告產生.*工具" "$file" 2>/dev/null; then + manually_created+=("$file") + fi + fi + done < <(find "$REPORTS_DIR" -name "*.md" -not -name "*template*" -print0 2>/dev/null) +fi + +if [ ${#manually_created[@]} -eq 0 ]; then + echo -e "${GREEN}✅ 所有報告都是通過工具創建${NC}" +else + echo -e "${YELLOW}⚠️ 發現 ${#manually_created[@]} 個可能手動創建的檔案:${NC}" + for file in "${manually_created[@]}"; do + echo " - $file" + done +fi + +echo "" + +# 檢查4: 檢查 ISSUES.md 的格式一致性 +echo -e "${BLUE}檢查4: 檢查 ISSUES.md 格式一致性${NC}" +issues_file="$PROJECT_ROOT/ISSUES.md" + +if [ -f "$issues_file" ]; then + # 檢查日期格式 + inconsistent_dates=$(grep -n "完成日期.*2024" "$issues_file" | wc -l) + if [ "$inconsistent_dates" -eq 0 ]; then + echo -e "${GREEN}✅ ISSUES.md 中的日期格式正確${NC}" + else + echo -e "${RED}❌ ISSUES.md 中發現 $inconsistent_dates 個 2024 年的日期${NC}" + fi +else + echo -e "${RED}❌ 找不到 ISSUES.md 檔案${NC}" +fi + +echo "" + +# 總結 +echo -e "${BLUE}📊 檢查總結${NC}" +echo "==================================" +total_issues=$((${#suspicious_reports[@]} + ${#date_inconsistencies[@]} + ${#manually_created[@]})) + +if [ "$total_issues" -eq 0 ]; then + echo -e "${GREEN}🎉 恭喜!所有檢查都通過,系統符合標準規範${NC}" + exit 0 +else + echo -e "${YELLOW}⚠️ 發現 $total_issues 個潛在問題${NC}" + echo "" + echo -e "${BLUE}建議修正措施:${NC}" + + if [ ${#suspicious_reports[@]} -gt 0 ]; then + echo "1. 重新命名不符合規範的報告檔案" + fi + + if [ ${#date_inconsistencies[@]} -gt 0 ]; then + echo "2. 修正檔案內容中的日期不一致問題" + fi + + if [ ${#manually_created[@]} -gt 0 ]; then + echo "3. 考慮使用標準工具重新創建手動建立的檔案" + fi + + echo "" + echo -e "${YELLOW}💡 提醒:請查看 CLAUDE.md 了解正確的工作流程${NC}" + exit 1 +fi \ No newline at end of file diff --git a/tools/create_report.sh b/tools/create_report.sh index 59881b3..50a9914 100755 --- a/tools/create_report.sh +++ b/tools/create_report.sh @@ -144,6 +144,11 @@ main() { echo -e "${BLUE}📊 建立 Drama Ling 報告${NC}" echo "=================================" + echo -e "${YELLOW}⚠️ 重要提醒:${NC}" + echo " • 所有報告都應該透過此工具創建" + echo " • 確保日期和格式的統一性和正確性" + echo " • 手動建立報告可能導致系統不一致" + echo "=================================" case $type in analysis|分析) diff --git a/tools/issue.sh b/tools/issue.sh index 4e22de4..372f5ec 100755 --- a/tools/issue.sh +++ b/tools/issue.sh @@ -15,6 +15,8 @@ NC='\033[0m' # 顯示歡迎訊息 echo -e "${BLUE}🚨 Drama Ling 問題管理工具${NC}" echo "================================" +echo -e "${YELLOW}💡 使用提醒:請使用此工具管理問題,避免直接編輯 ISSUES.md${NC}" +echo "================================" # 確保問題文件存在 if [ ! -f "$ISSUE_FILE" ]; then @@ -95,10 +97,10 @@ $issue_line echo -e "${BLUE}📊 問題狀態總覽${NC}" echo "==================" - urgent=$(sed -n '/## 🔥 緊急問題/,/## /p' "$ISSUE_FILE" | grep -c "^- \[ \]") - important=$(sed -n '/## ⚠️ 重要問題/,/## /p' "$ISSUE_FILE" | grep -c "^- \[ \]") - normal=$(sed -n '/## 📝 一般問題/,/## /p' "$ISSUE_FILE" | grep -c "^- \[ \]") - resolved=$(grep -c "^- \[x\]" "$ISSUE_FILE") + urgent=$(sed -n '/## 🔥 緊急問題/,/## ⚠️ /p' "$ISSUE_FILE" | grep -c "^- \[ \]") + important=$(sed -n '/## ⚠️ 重要問題/,/## 📝 /p' "$ISSUE_FILE" | grep -c "^- \[ \]") + normal=$(sed -n '/## 📝 一般問題/,/## 🤖 /p' "$ISSUE_FILE" | grep -c "^- \[ \]") + resolved=$(sed -n '/# 📚 已完成歷史/,$p' "$ISSUE_FILE" | grep -c "^- \[x\]") echo "🔥 緊急問題: $urgent 個" echo "⚠️ 重要問題: $important 個" @@ -127,7 +129,7 @@ $issue_line echo "" # 顯示緊急問題 - urgent_issues=$(sed -n '/## 🔥 緊急問題/,/## /p' "$ISSUE_FILE" | grep "^- \[ \]") + urgent_issues=$(sed -n '/## 🔥 緊急問題/,/## ⚠️ /p' "$ISSUE_FILE" | grep "^- \[ \]") if [ -n "$urgent_issues" ]; then echo -e "${RED}🔥 緊急問題:${NC}" echo "$urgent_issues" | nl -w2 -s') ' @@ -135,7 +137,7 @@ $issue_line fi # 顯示重要問題 - important_issues=$(sed -n '/## ⚠️ 重要問題/,/## /p' "$ISSUE_FILE" | grep "^- \[ \]") + important_issues=$(sed -n '/## ⚠️ 重要問題/,/## 📝 /p' "$ISSUE_FILE" | grep "^- \[ \]") if [ -n "$important_issues" ]; then echo -e "${YELLOW}⚠️ 重要問題:${NC}" echo "$important_issues" | nl -w2 -s') ' @@ -143,7 +145,7 @@ $issue_line fi # 顯示一般問題 - normal_issues=$(sed -n '/## 📝 一般問題/,/## /p' "$ISSUE_FILE" | grep "^- \[ \]") + normal_issues=$(sed -n '/## 📝 一般問題/,/## 🤖 /p' "$ISSUE_FILE" | grep "^- \[ \]") if [ -n "$normal_issues" ]; then echo -e "${BLUE}📝 一般問題:${NC}" echo "$normal_issues" | nl -w2 -s') ' @@ -151,7 +153,7 @@ $issue_line fi echo -e "${YELLOW}💡 提示: 請直接編輯 $ISSUE_FILE 文件來標記問題為已解決${NC}" - echo "將 '[ ]' 改為 '[x]' 並移動到 '## ✅ 已解決' 區域" + echo "將 '[ ]' 改為 '[x]' 並移動到 '# 📚 已完成歷史' 區域下的對應日期" ;; 4)