docs: add research assets, screenshots and guides

Include supplementary documentation, research notes on Lexical/UX, and setup guides.
This commit is contained in:
2026-02-11 11:51:35 +08:00
parent ad8e2e313e
commit f6b806617e
46 changed files with 11571 additions and 0 deletions

View File

@@ -0,0 +1,860 @@
# 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 Blockers1.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 Enhancement1 小時)
**目標:** 完善內容管理功能
**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 & Access1.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 Completion1 天)
**目標:** 完成 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 1Critical 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 ControlPayload 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 瘩身分析