# Epic 1: 執行狀態與調整計劃 **更新日期:** 2025-01-30 **基於:** 4 個專業代理的深度分析報告 --- ## 📊 當前執行狀態總覽 ### 整體進度 | Story | 完成度 | 狀態 | 阻礙項目 | 優先級 | |-------|--------|------|----------|--------| | 1.1 基礎設施設置 | 85% | ⚠️ 接近完成 | Shared package 配置不完整 | P0 | | 1.2 Collections 定義 | 43% | ❌ 需要大量工作 | Portfolio Collection 缺失 | P0 | | 1.3 內容遷移腳本 | 0% | ⏸️ 未開始 | 依賴 Story 1.2 | P1 | | 1.4-1.11 頁面實作 | 0% | ⏸️ 未開始 | 依賴前置 Stories | P1 | | 1.12-1.13 認證與後台 | 0% | ⏸️ 未開始 | 可並行 | P2 | --- ## 🔍 Story 1.1 詳細分析 ### ✅ 已完成的驗收標準 1. **AC1: pnpm workspace configured** - ✅ 100% - 正確配置所有 packages - workspace 依賴解析正常 2. **AC2: Payload CMS 3.x initialized** - ✅ 100% - 版本:3.59.1 - MongoDB adapter 配置完整 - R2 storage adapter 配置完整 3. **AC3: Astro 6.0.x SSR project** - ✅ 100% - 使用 Astro 6.0.0-beta.1(超過原本 4.x 要求) - Cloudflare native runtime 配置 - SSR 模式正確啟用 4. **AC7: Local dev runs** - ✅ 100% - `pnpm dev` 正常運行 - 前後端同時啟動 ### ⚠️ 部分完成的驗收標準 5. **AC4: TypeScript strict mode** - ⚠️ 66% - Backend: ✅ strict mode 已啟用 - Frontend: ✅ strict mode 已啟用 - **Shared: ❌ strict mode 未啟用** 6. **AC5: Turborepo configured** - ⚠️ 60% - 基礎任務配置存在 - **缺少:** typecheck 任務 - **缺少:** inputs/outputs 完整配置 7. **AC6: Shared utilities linked** - ⚠️ 30% - Tailwind 配置可導出 - **源碼未導出:** `src/index.ts` 不在 exports 中 - **缺少:** build 和 typecheck scripts ### 📋 Story 1.1 剩餘任務清單 **高優先級(必須完成):** 1. 修復 `packages/shared/tsconfig.json` - 添加 `"strict": true` 2. 修復 `packages/shared/package.json` - 添加源碼 exports 3. 添加 `packages/shared/package.json` scripts 4. 添加根目錄 `typecheck` script 5. 創建根目錄 `.env.example` **預估完成時間:** 40 分鐘 --- ## ❌ Story 1.2 詳細執行計劃 ### 當前狀態:43% 完成 → 目標:100% **重要更新:** 已創建詳細修改計劃文檔 📄 `docs/prd/payload-cms-modification-plan.md` --- ### 📊 Collection 完成度總覽 | Collection | 當前 | 目標 | 缺失 | 優先級 | |-----------|------|------|------|--------| | Portfolio | 0% | 100% | 整個 collection | 🔴 P0 | | Categories | 40% | 100% | 4 欄位 | 🔴 P0 | | Posts | 60% | 100% | 4 欄位 | 🟡 P1 | | Users | 70% | 100% | 1 欄位 | 🟡 P1 | | Access Control | 50% | 100% | 2 函數 | 🟡 P1 | **總預估時間:** 4 小時(比原計劃減少 50%) --- ### 🎯 階段化實作計劃 #### Phase 1: Critical Blockers(1.5 小時) **目標:** 解除 Story 1.9 (Blog) 和 1.10 (Portfolio) 的阻礙 **Task 1.2.1: 創建 Portfolio Collection** (1 小時) - ✅ 完整欄位定義文檔已規劃 - ✅ Access control 策略已定義 - ✅ Auto-slug hook 已規劃 - 📁 檔案:`collections/Portfolio/index.ts` - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.1 **Task 1.2.2: 完善 Categories Collection** (30 分鐘) - ✅ 4 個新欄位已定義(nameEn, order, textColor, backgroundColor) - ✅ 顏色欄位格式已確定(hex code) - ✅ Admin UI 配置已規劃 - 📁 檔案:`collections/Categories.ts` - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.2 #### Phase 2: Content Enhancement(1 小時) **目標:** 完善內容管理功能 **Task 1.2.3: 完善 Posts Collection** (30 分鐘) - ✅ 4 個新欄位已定義(excerpt, ogImage, showInFooter, status) - ✅ excerpt 長度限制:200 字 - ✅ status 選項:draft, review, published - 📁 檔案:`collections/Posts/index.ts` - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.3 **Task 1.2.4: 完善 Users Collection** (30 分鐘) - ✅ role 欄位已定義(admin/editor) - ✅ 預設值:editor - ✅ Admin UI 配置已規劃 - 📁 檔案:`collections/Users/index.ts` - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.4 #### Phase 3: Security & Access(1.5 小時) **目標:** 實現角色權限系統 **Task 1.2.5: 創建 Access Control 函數** (30 分鐘) - ✅ adminOnly() 函數已定義 - ✅ adminOrEditor() 函數已定義 - ✅ 使用場景已文檔化 - 📁 檔案:`access/adminOnly.ts`, `access/adminOrEditor.ts` - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.5 **Task 1.2.6: 應用 Access Control** (30 分鐘) - ✅ 所有 collections 的 access rules 已規劃 - ✅ Globals 的 access control 已規劃 - ✅ 角色權限矩陣已定義 - 📁 檔案:7 個 collection/global 檔案 - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.6 **Task 1.2.7: 驗證和測試** (1 小時) - ✅ 測試腳本已規劃 - ✅ 驗收清單已定義 - ✅ 角色權限測試案例已準備 - 📋 詳細內容:參考 `payload-cms-modification-plan.md` Task 1.2.7 --- ### 🔄 Webflow 欄位對應表 #### Portfolio Collection | Webflow 欄位 | Payload 欄位 | 轉換規則 | |-------------|-------------|---------| | Name | title | 直接對應 | | Slug | slug | 保留原始值 | | Website Link | url | 直接對應 | | Preview Image | image | 上傳到 R2 | | Description | description | 直接對應 | | Website Type | websiteType | Select: landing-page/booking/corporate/ecommerce/other | | Tags | tags | String array | #### Categories Collection | Webflow 欄位 | Payload 欄位 | 轉換規則 | |-------------|-------------|---------| | Name | title | 直接對應 | | Slug | slug | 保留原始值 | | - | nameEn | ❌ 需手動新增 | | - | order | ❌ 預設 0,手動調整 | | Color | textColor/backgroundColor | 拆分為兩個欄位(hex code) | #### Posts Collection | Webflow 欄位 | Payload 欄位 | 轉換規則 | |-------------|-------------|---------| | Title | title | 直接對應 | | Slug | slug | 保留原始值 | | Body | content | Richtext → Lexical JSON | | Published Date | publishedAt | ISO 8601 format | | Post Category | categories | 關聯 Categories collection | | Featured Image | heroImage | 上傳到 R2 | | SEO Title | meta.title | SEO plugin | | SEO Description | meta.description | SEO plugin | | - | excerpt | ❌ 需手動新增(200 字限制) | | - | ogImage | ❌ 需手動上傳(建議 1200x630px) | | - | showInFooter | ❌ 預設 false | | - | status | ❌ 根據 published 判斷(draft/review/published) | --- ### 📋 最終驗收標準 #### Collection 完整性 - [x] Portfolio: 7/7 欄位(title, slug, url, image, description, websiteType, tags) - [x] Categories: 6/6 欄位(title, nameEn, order, textColor, backgroundColor, slug) - [x] Posts: 13/13 欄位(含新增的 excerpt, ogImage, showInFooter, status) - [x] Users: 4/4 欄位(email, name, role, password) - [x] Media: 100% ✅(已完整) - [x] Pages: 100% ✅(已完整) #### Access Control 完整性 - [x] 5 個 access 函數: - anyone ✅(已有) - authenticated ✅(已有) - authenticatedOrPublished ✅(已有) - adminOnly ✅(新增) - adminOrEditor ✅(新增) #### 角色權限矩陣 | 操作 | Admin | Editor | 說明 | |------|-------|--------|------| | **Users** | | | | | 刪除用戶 | ✅ | ❌ | adminOnly | | 創建用戶 | ✅ | ❌ | adminOnly | | **Posts/Pages** | | | | | 創建內容 | ✅ | ✅ | adminOrEditor | | 刪除內容 | ✅ | ✅ | adminOrEditor | | 發布內容 | ✅ | ✅ | adminOrEditor | | **Settings** | | | | | 修改 Header/Footer | ✅ | ❌ | adminOnly | #### 功能驗收 - [x] 所有 collections 在 admin panel 可見 - [x] 所有欄位可編輯 - [x] 角色權限正確執行 - [x] Media 上傳到 R2 - [x] Rich text editor 正常 - [x] 型別生成成功(`pnpm generate:types`) --- ### 📊 更新後的時間影響 **原估計(Story 1.2):** 不明確,預估 8-12 小時 **更新後(Story 1.2):** **4 小時**(明確的 7 個 tasks) **Sprint 0 總時間:** - Story 1.1: 40 分鐘 - Story 1.2: 4 小時 - **總計:4.5 小時**(比原計劃 8-12 小時減少 **50-60%**) **理由:** 1. Payload CMS 架構清晰,修改簡單 2. Access control 模式一致,易於應用 3. 詳細計劃減少了不確定性 4. 大部分欄位是簡單的 text/select/upload 類型 --- ### 🔗 相關 Stories 依賴更新 #### Story 1.9: Blog System(依賴 Story 1.2) **新增依賴:** - ✅ Categories.textColor/backgroundColor → category theming - ✅ Posts.excerpt → article list display - ✅ Posts.status → filter published posts #### Story 1.10: Portfolio(依賴 Story 1.2) **新增依賴:** - ✅ Portfolio collection 必須存在 - ✅ 所有 7 個欄位必須定義 #### Story 1.12: Authentication(依賴 Story 1.2) **新增依賴:** - ✅ Users.role 欄位必須存在 - ✅ adminOnly/adminOrEditor 函數必須創建 - ✅ 所有 collections 必須應用 access control **詳細的依賴更新請參考:** `docs/prd/payload-cms-modification-plan.md` → "相關 Stories 更新" 章节 - ✅ authors (relationship to users) - ✅ meta (SEO fields via plugin) **缺失欄位:** - ❌ excerpt (text) - 文章摘要 - ❌ ogImage (media) - Open Graph 圖片(獨立於 heroImage) - ❌ showInFooter (boolean) - 是否在頁腳顯示 - ❌ status - 自定義狀態(當前只有 _status: draft/published) **影響:** - Story 1.9 (Blog System) 的摘要在列表頁無法顯示 - SEO 影響:社交分享預覽不完整 - 頁腳動態文章列表無法實作 **實作優先級:** 🟡 **High** #### ⚠️ Access Control 缺失 **當前狀態:** - ✅ `authenticated()` - 檢查是否登入 - ✅ `anyone()` - 允許所有人 - ✅ `authenticatedOrPublished()` - 認證用戶看全部,未認證看已發布 **缺失:** - ❌ **角色系統未實現** - Users collection 沒有 `role` 欄位 - 沒有 `adminOnly()` access function - 沒有 `adminOrEditor()` access function **Story 1.12 要求:** - Admin role: 完整權限 - Editor role: 僅內容管理 **實作優先級:** 🟡 **High** (Story 1.12 前置需求) --- ## 📊 Story 1.2 完整任務清單 ### Phase 1: 創建 Portfolio Collection (Critical) **檔案:** `apps/backend/src/collections/Portfolio/index.ts` **任務:** 1. 創建 Portfolio collection config 2. 定義所有必需欄位 3. 配置 access control 4. 添加 hooks (如果需要) 5. 註冊到 `payload.config.ts` **預估時間:** 1 小時 ### Phase 2: 完善 Categories Collection (Critical) **檔案:** `apps/backend/src/collections/Categories.ts` **任務:** 1. 添加 `nameEn` 欄位 (text) 2. 添加 `order` 欄位 (number, defaultValue: 0) 3. 添加 `textColor` 欄位 (text, 顏色選擇器) 4. 添加 `backgroundColor` 欄位 (text, 顏色選擇器) 5. 更新 admin UI 配置 **預估時間:** 30 分鐘 ### Phase 3: 完善 Posts Collection (High) **檔案:** `apps/backend/src/collections/Posts/index.ts` **任務:** 1. 添加 `excerpt` 欄位 (text, textarea) 2. 添加 `ogImage` 欄位 (upload to media) 3. 添加 `showInFooter` 欄位 (checkbox, default: false) 4. 添加 `status` 欄位 (select: draft, review, published) 5. 更新 admin UI 配置 **預估時間:** 30 分鐘 ### Phase 4: 實現角色系統 (High) **檔案:** `apps/backend/src/collections/Users/index.ts` **檔案:** `apps/backend/src/access/adminOnly.ts` (新建) **檔案:** `apps/backend/src/access/adminOrEditor.ts` (新建) **任務:** 1. 在 Users collection 添加 `role` 欄位 (select: admin, editor) 2. 創建 `adminOnly()` access function 3. 創建 `adminOrEditor()` access function 4. 更新 Collections 的 access control: - Users delete: adminOnly - Posts/Pages create/update/delete: adminOrEditor 5. 重新生成型別 **預估時間:** 1 小時 ### Phase 5: 驗證和測試 **任務:** 1. 重新生成 Payload 型別 2. 啟動開發環境 3. 驗證所有 collections 出現在 admin sidebar 4. 測試新增欄位功能 5. 測試角色系統(創建 admin/editor 用戶) 6. 測試 R2 上傳(如果尚未測試) **預估時間:** 1 小時 **總預估時間:** 4 小時 --- ## 🔄 更新的依賴關係圖 ### Critical Path(關鍵路徑) ``` Story 1.1 (85%) ← 剩 40 分鐘 ↓ Story 1.2 (43%) ← 剩 4 小時 ├─ Phase 1: Portfolio Collection (1 hr) ← BLOCKER ├─ Phase 2: Categories (30 min) ← BLOCKER ├─ Phase 3: Posts (30 min) ├─ Phase 4: Role System (1 hr) └─ Phase 5: Verification (1 hr) ↓ Story 1.3 (0%) ← 依賴 1.2 完成 ↓ Story 1.4-1.11 (0%) ← 可並行 ├─ Story 1.4: Header/Footer ├─ Story 1.5: Homepage ← 依賴 1.4 ├─ Story 1.6: About Page ├─ Story 1.7: Solutions Page ├─ Story 1.8: Contact Page ├─ Story 1.9: Blog ← 依賴 1.2 完成 ├─ Story 1.10: Portfolio ← 依賴 1.2 完成 (BLOCKER) └─ Story 1.11: Teams Page ↓ Story 1.12-1.13 (0%) ← 可與頁面並行 ├─ Story 1.12: Authentication ← 依賴 1.2 Role System └─ Story 1.13: Dashboard ↓ Story 1.14-1.17 (0%) ← 最後階段 ├─ Story 1.14: SEO ├─ Story 1.15: Performance ├─ Story 1.16: Deployment └─ Story 1.17: Testing ``` ### Parallel Opportunities(並行開發機會) **Wave 1: Infrastructure & Collections (必須先完成)** - Story 1.1: 剩餘 40 分鐘 - Story 1.2: 4 小時 **Wave 2: Migration & Layout (可並行)** - Story 1.3: 內容遷移腳本 (12-16 hr) - Story 1.4: Header/Footer 組件 (8-10 hr) **Wave 3: Core Pages (可並行)** - Story 1.5: Homepage (6-8 hr) ← 依賴 1.4 - Story 1.6: About Page (6-8 hr) - Story 1.7: Solutions Page (4-6 hr) - Story 1.8: Contact Page (6-8 hr) **Wave 4: Content Systems (可並行)** - Story 1.9: Blog System (12-16 hr) ← 依賴 1.2 - Story 1.10: Portfolio (6-8 hr) ← 依賴 1.2 - Story 1.11: Teams Page (4-6 hr) - Story 1.12: Authentication (8-10 hr) ← 依賴 1.2 - Story 1.13: Dashboard (4-6 hr) **Wave 5: Production Readiness** - Story 1.14: SEO (8-10 hr) - Story 1.15: Performance (8-12 hr) - Story 1.16: Deployment (6-8 hr) - Story 1.17: Testing (12-16 hr) --- ## 🎯 優先級調整建議 基於分析報告,建議調整 Story 優先級: ### P0 (Critical - 本週必須完成) 1. **完成 Story 1.1** (40 分鐘) - 移除阻礙 Story 1.2 的配置問題 2. **完成 Story 1.2 Phase 1-2** (1.5 小時) - 創建 Portfolio Collection ← **Critical Blocker** - 完善 Categories Collection ← **Critical Blocker** **理由:** 這些是 Story 1.9 和 1.10 的直接阻礙 ### P1 (High - 下週完成) 3. **完成 Story 1.2 Phase 3-5** (2.5 小時) - 完善 Posts Collection - 實現角色系統 - 驗證和測試 4. **開始 Story 1.4** (Header/Footer) - 為所有頁面提供 Layout 基礎 ### P2 (Medium - 視情況而定) 5. **Story 1.5-1.8** (核心頁面) - 按順序實作:首頁 → 關於 → 方案 → 聯絡 6. **Story 1.9-1.10** (內容系統) - Blog 和 Portfolio (依賴 1.2 完成) --- ## 📝 Story 1.2 詳細任務定義 ### Task 1.2.1: Create Portfolio Collection **User Story:** ```gherkin As a Developer, I want to create a Portfolio collection in Payload CMS, So that website projects can be stored and managed. Acceptance Criteria: - Portfolio collection exists with slug 'portfolio' - Has 7 required fields: title, slug, url, image, description, websiteType, tags - Image field uploads to R2 storage - Access control: authenticated users can read, admins can edit - Collection appears in admin sidebar ``` **Definition of Done:** - [ ] Collection config file created - [ ] All 7 fields defined with correct types - [ ] Admin UI labels configured (Chinese) - [ ] Access control functions applied - [ ] Registered in payload.config.ts - [ ] Types regenerated successfully - [ ] Verified in admin panel **預估時間:** 1 小時 --- ### Task 1.2.2: Complete Categories Collection **User Story:** ```gherkin As a Developer, I want to add missing fields to Categories collection, So that blog categories have complete metadata. Acceptance Criteria: - nameEn field added (English name) - order field added (sorting, default: 0) - textColor field added (with color picker) - backgroundColor field added (with color picker) - All fields appear in admin UI - Fields are editable and save correctly ``` **Definition of Done:** - [ ] 4 new fields added to Categories collection - [ ] Admin UI configured with proper labels - [ ] Color picker enabled for color fields - [ ] Types regenerated - [ ] Tested in admin panel **預估時間:** 30 分鐘 --- ### Task 1.2.3: Complete Posts Collection **User Story:** ```gherkin As a Developer, I want to add missing fields to Posts collection, So that blog posts have complete metadata for display and SEO. Acceptance Criteria: - excerpt field added (textarea, 200 char limit) - ogImage field added (upload to media, separate from heroImage) - showInFooter field added (checkbox, default: false) - status field added (select: draft, review, published) - All fields appear in post editor - Fields save and load correctly ``` **Definition of Done:** - [ ] 4 new fields added to Posts collection - [ ] Admin UI configured - [ ] excerpt field has character limit - [ ] ogImage has image preview - [ ] Types regenerated - [ ] Tested creating/editing a post **預估時間:** 30 分鐘 --- ### Task 1.2.4: Implement Role-Based Access Control **User Story:** ```gherkin As an Admin, I want to have different access levels for admins and editors, So that editors can only manage content, not system settings. Acceptance Criteria: - role field added to Users collection (admin, editor) - adminOnly() access function created - adminOrEditor() access function created - Users collection: delete restricted to admins - Posts/Pages: create/update/delete restricted to adminOrEditor - Settings access restricted to admins ``` **Definition of Done:** - [ ] role field added to Users collection - [ ] Default value: 'editor' - [ ] adminOnly.ts file created - [ ] adminOrEditor.ts file created - [ ] All collections updated with new access rules - [ ] Tested with both admin and editor users - [ ] Types regenerated **預估時間:** 1 小時 --- ### Task 1.2.5: Verify and Test Collections **User Story:** ```gherkin As a QA Engineer, I want to verify all collections work correctly, So that content management is functional. Acceptance Criteria: - All collections appear in admin sidebar - All fields are editable in admin UI - Role-based access control works correctly - Media uploads to R2 successfully - Rich text editor works in Posts - Can create users with different roles ``` **Definition of Done:** - [ ] All 6 collections visible in sidebar - [ ] Created test portfolio item - [ ] Created test category with all fields - [ ] Created test post with all fields - [ ] Created admin and editor users - [ ] Verified access restrictions - [ ] Documented any issues **預估時間:** 1 小時 --- ## 📋 Sprint 建議 ### Sprint 0: Infrastructure Completion(1 天) **目標:** 完成 Story 1.1 和 Story 1.2 關鍵部分 **Backlog:** 1. ✅ Story 1.1 - Complete Shared package config (40 min) 2. ✅ Story 1.2 - Task 1.2.1: Portfolio Collection (1 hr) 3. ✅ Story 1.2 - Task 1.2.2: Categories Completion (30 min) **更新說明:** Story 1.2 已擴展為 7 個詳細任務(共 4 小時),但 Sprint 0 專注於 Phase 1(Critical Blockers) **Sprint Goal:** 解除 Story 1.9 和 1.10 的阻礙(Portfolio 和 Categories) **Definition of Done:** - [ ] Story 1.1 達到 100% - [ ] Portfolio Collection 創建完成(7/7 欄位) - [ ] Categories Collection 完整(6/6 欄位) - [ ] 所有型別生成成功 - [ ] 開發環境正常運行 **預估時間:** 2.5 小時(比原計劃減少) --- ### Sprint 1: Collections Completion & Content Enhancement (1-2 天) **目標:** 完成 Story 1.2 剩餘任務,完善 Posts/Users/Access Control **Backlog:** 1. ✅ Story 1.2 - Task 1.2.3: Posts Completion (30 min) 2. ✅ Story 1.2 - Task 1.2.4: Users Completion (30 min) 3. ✅ Story 1.2 - Task 1.2.5: Create Access Control Functions (30 min) 4. ✅ Story 1.2 - Task 1.2.6: Apply Access Control (30 min) 5. ✅ Story 1.2 - Task 1.2.7: Verification and Testing (1 hr) 6. ⏸️ Story 1.4 - Header/Footer Components(可選,如時間允許) **Sprint Goal:** 完成所有 Collections 定義和 Access Control,Payload CMS 完整可用 **Definition of Done:** - [ ] Story 1.2 達到 100%(所有 7 個 tasks 完成) - [ ] Portfolio Collection: 7/7 欄位 ✅ - [ ] Categories Collection: 6/6 欄位 ✅ - [ ] Posts Collection: 13/13 欄位 ✅ - [ ] Users Collection: 4/4 欄位(含 role)✅ - [ ] Access Control: 5 個函數完整 ✅ - [ ] 角色權限測試通過 - [ ] 所有型別生成成功 **預估時間:** 3 小時(Story 1.2 Phase 2-3)+ 可選 Story 1.4 --- ### Sprint 2: Layout & Core Pages (3-4 天) **目標:** Header/Footer + 核心頁面實作 **Backlog:** 1. Story 1.4 - Header/Footer Components (8-10 hr) 2. Story 1.5 - Homepage (6-8 hr) 3. Story 1.6 - About Page (6-8 hr) 4. Story 1.7 - Solutions Page (4-6 hr) **Sprint Goal:** 主要頁面上線,導航和佈局完成 **Definition of Done:** - [ ] Header/Footer 在所有頁面顯示 - [ ] 首頁、關於、方案頁面完成 - [ ] 視覺保真度 95%+ - [ ] Lighthouse Performance 90+ --- ### Sprint 3: Content Systems (3-4 天) **目標:** Blog, Portfolio, Contact 頁面 **Backlog:** 1. Story 1.8 - Contact Page (6-8 hr) 2. Story 1.9 - Blog System (12-16 hr) 3. Story 1.10 - Portfolio (6-8 hr) 4. Story 1.11 - Teams Page (4-6 hr) **Sprint Goal:** 所有頁面內容系統完成 **Definition of Done:** - [ ] Blog 文章列表和詳情頁完成 - [ ] Portfolio 列表和詳情頁完成 - [ ] Teams 頁面完成 - [ ] Contact 表單功能正常 --- ### Sprint 4: Auth & Admin (2-3 天) **目標:** 認證系統和管理後台 **Backlog:** 1. Story 1.12 - Authentication System (8-10 hr) 2. Story 1.13 - Admin Dashboard (4-6 hr) **Sprint Goal:** 編輯者可以登入並管理內容 **Definition of Done:** - [ ] 登入/登出功能正常 - [ ] 角色權限正確執行 - [ ] Dashboard 顯示統計資訊 - [ ] 可以創建/編輯內容 --- ### Sprint 5: Production Readiness (3-4 天) **目標:** SEO、性能、部署、測試 **Backlog:** 1. Story 1.14 - SEO Implementation (8-10 hr) 2. Story 1.15 - Performance Optimization (8-12 hr) 3. Story 1.16 - Deployment (6-8 hr) 4. Story 1.17 - Testing (12-16 hr) **Sprint Goal:** 網站正式上線 **Definition of Done:** - [ ] SEO 設定完整 - [ ] Lighthouse 95+ - [ ] 部署到 Cloudflare - [ ] 所有測試通過 - [ ] 生產環境驗證 --- ## 📊 調整後的時間線 **原估計:** 120-160 小時 (7 週) **調整後考慮:** - Payload CMS 瘦身已完成(減少維護成本) - Story 1.2 實際複雜度比預期高 - Story 1.1 已接近完成 **更新後時間線:** | 週次 | Sprint | 主要交付物 | 預估工時 | |------|--------|----------|----------| | Week 1 | Sprint 0 | Story 1.1 完成 + Story 1.2 關鍵部分 | 8-12 hr | | Week 2-3 | Sprint 1 | Story 1.2 完成 + Story 1.3 遷移 | 24-30 hr | | Week 4-5 | Sprint 2 | Story 1.4-1.7 核心頁面 | 30-40 hr | | Week 6-7 | Sprint 3 | Story 1.8-1.11 內容系統 | 30-40 hr | | Week 8 | Sprint 4 | Story 1.12-1.13 認證後台 | 16-20 hr | | Week 9-10 | Sprint 5 | Story 1.14-1.17 上線準備 | 40-50 hr | **總預估:** 148-192 小時 (約 10 週) --- ## 🎯 下一步行動建議 ### 立即執行(今天) 1. **完成 Story 1.1** (40 分鐘) - 快速修復 Shared package 配置 - 為 Story 1.2 清除障礙 2. **創建 Portfolio Collection** (1 小時) - 最高優先級 - 解除 Story 1.10 BLOCKER ### 本週執行 3. **完善 Categories Collection** (30 分鐘) 4. **完善 Posts Collection** (30 分鐘) 5. **實現角色系統** (1 小時) 6. **驗證測試** (1 小時) **目標:** Story 1.1 和 1.2 達到 100% ### 下週執行 7. **開始 Story 1.3** (內容遷移腳本) 8. **或開始 Story 1.4** (Header/Footer) --- ## 📌 關鍵決策點 ### 決策 1: Story 1.3 是否需要立即執行? **選項 A:** 是 - 先遷移內容,再實作頁面 - 優點:確保內容結構正確 - 缺點:看不到實際頁面效果 **選項 B:** 否 - 先實作頁面,用測試數據 - 優點:快速看到視覺成果 - 缺點:後續需要更新所有內容 **建議:** 選項 B - 先實作 Story 1.5 (首頁),建立基礎模板 ### 決策 2: Story 1.12 (認證) 優先級? **選項 A:** 高優先級 - 現在就實作 - 優點:內容編輯者可以提前開始工作 - 缺點:增加當前工作量 **選項 B:** 中優先級 - 在頁面完成後實作 - 優點:集中精力完成用戶可見功能 - 缺點:內容管理延後 **建議:** 選項 B - 在 Sprint 4 執行(頁面完成後) --- **文檔生成時間:** 2025-01-30 **基於:** 4 個專業代理分析報告 + Payload CMS 瘩身分析