# Vibe-Kanban 工作流程規劃文件 **版本:** 1.0 **日期:** 2025-01-15 **狀態:** 規劃階段 --- ## 概述 本文件定義一個完整的軟體開發工作流程,透過多個 AI 代理協作完成從需求探索到部署的完整生命週期。 --- ## 目錄 1. [工作流程總覽](#1-工作流程總覽) 2. [現有技能映射](#2-現有技能映射) 3. [新建技能定義](#3-新建技能定義) 4. [主控技能設計](#4-主控技能設計) 5. [狀態機設計](#5-狀態機設計) 6. [文件結構規劃](#6-文件結構規劃) 7. [實施優先順序](#7-實施優先順序) 8. [退回機制設計](#8-退回機制設計) 9. [驗收標準模板](#9-驗收標準模板) --- ## 1. 工作流程總覽 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ VIBE-KANBAN 工作流程 │ ├─────────────────────────────────────────────────────────────────────────────┤ │ │ │ 階段1: 需求探索 │ │ ┌────────────┐ ┌────────────┐ │ │ │Brainstorm │ ──▶ │ CEO Review │ │ │ │ (PM) │ │ (商業價值) │ │ │ └────────────┘ └────────────┘ │ │ │ │ │ │ │ ┌────────────┘ │ │ ▼ ▼ │ │ 階段2: 規格設計 │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ PRD │ ──▶ │ API Design │ ──▶ │ DB Schema │ ──▶ │ UX/原型 │ │ │ │ (PM) │ │ (後端) │ │ (DBA) │ │ (UX) │ │ │ └────────────┘ └────────────┘ └────────────┘ └────────────┘ │ │ │ │ │ │ │ │ └───────────────────┴───────────────────┴───────────────────┘ │ │ │ │ │ ▼ │ │ 階段3: 審核 ┌────────────┐ │ │ ┌────────────┐ │ Design │ │ │ │Design Review│ ◀────────────────────│ Review │ │ │ │ (通盤審核) │ │ (退回修改) │ │ │ └────────────┘ └────────────┘ │ │ │ │ │ │ 通過 │ │ ▼ │ │ 階段4: 任務拆分 │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ Task Breakdown │ │ │ │ (平行拆分前後端任務) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ 階段5: 實作 │ │ ┌────────────┐ ┌────────────┐ │ │ │ Frontend │ │ Backend │ │ │ │implementation│ │implementation│ │ │ └────────────┘ └────────────┘ │ │ │ │ │ │ └─────────────────┬───────────────────┘ │ │ ▼ │ │ 階段6: 驗收 │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ QA Testing │ │ │ │ (依照驗收標準測試) │ │ │ │ (不通過 → 退回步驟4) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ 通過 │ │ ▼ │ │ 階段7: 合併審核 │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ PR Review │ │ │ │ (人類驗證) │ │ │ │ (不通過 → 退回步驟4) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ │ 通過 │ │ ▼ │ │ 階段8: 部署 │ │ ┌────────────────────────────────────────────────────────────────────┐ │ │ │ Deploy │ │ │ │ (OPS) │ │ │ └────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌────────────┐ │ │ │ 完成 │ │ │ └────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 2. 現有技能映射 ### 2.1 可直接複用的技能 | 階段 | 技能名稱 | 檔案位置 | 用途 | |------|---------|---------|------| | 1. Brainstorming | `brainstorming` | `skills/brainstorming/` | PM 需求探索 | | 1. CEO Review | `plan-ceo-review` | `gstack/plan-ceo-review/` | 商業價值審核 | | 3. Design Review | `design-review` | `gstack/design-review/` | 視覺/架構審核 | | 3. Design Review | `plan-design-review` | `gstack/plan-design-review/` | 設計計畫審核 | | 4. Task Breakdown | `dispatching-parallel-agents` | `skills/dispatching-parallel-agents/` | 平行任務分配 | | 4. Task Breakdown | `subagent-driven-development` | `skills/subagent-driven-development/` | 子代理驅動開發 | | 5. Implementation | `writing-plans` | `skills/writing-plans/` | 撰寫實作計畫 | | 6. QA | `qa` | `gstack/qa/` | QA 測試驗收 | | 7. PR Review | `review` | `gstack/review/` | PR 代碼審核 | | 7. PR Review | `requesting-code-review` | `skills/requesting-code-review/` | 請求代碼審核 | | 8. Deploy | `land-and-deploy` | `gstack/land-and-deploy/` | 合併與部署 | | 8. Deploy | `setup-deploy` | `gstack/setup-deploy/` | 部署配置 | ### 2.2 現有技能功能摘要 #### `brainstorming` - 輸入: 使用者的初步想法 - 輸出: 設計文件 - 流程: 探索專案 → 提問澄清 → 提案 → 設計文件 #### `plan-ceo-review` - 輸入: 設計文件或計畫 - 輸出: 審核報告 + 擴展建議 - 模式: SCOPE_EXPANSION, SELECTIVE_EXPANSION, HOLD_SCOPE, SCOPE_REDUCTION - 檢查: 架構、錯誤處理、安全性、效能、測試、部署 #### `qa` - 輸入: 驗收標準 + 測試 URL - 輸出: QA 報告 + Bug 修复 - 流程: 探索 → 測試 → 文件化 → 修复 → 驗證 #### `land-and-deploy` - 輸入: PR 編號 - 輸出: 部署報告 - 流程: 預檢查 → 合併 → 部署 → Canary 驗證 --- ## 3. 新建技能定義 ### 3.1 `pm-prd` - 產品需求文件技能 ```yaml --- name: pm-prd description: "產品經理撰寫 PRD 和驗收標準。根據 brainstorming 輸出產出結構化的產品需求文件,包含功能性需求、非功能性需求、驗收標準。觸發時機:CEO 審核通過後。" --- ## 職責 PM 角色的AI 代理,負責: 1. 將 brainstorming 的想法轉化為結構化 PRD 2. 定義功能性需求 3. 定義非功能性需求- 效能、安全性、可用性等 4. 設定驗收標準 5. 優先順序排序 ## 輸入 - Brainstorming 輸出文件 - CEO 審核結果 - 專案上下文 (CLAUDE.md, ARCHITECTURE.md 等現有文件) ## 輸出 - PRD 文件: `docs/prd/{YYYY-MM-DD}-{feature-slug}.md` ## PRD 模板結構 ```markdown # PRD: {功能名稱} ## Metadata - 撰寫日期: {date} - 狀態: Draft | Review | Approved - 作者: PM Agent - 關聯 Brainstorm: {link} ## 背景 ### 問題陳述 ### 目標使用者 ### 商業價值 ## 功能性需求 ### FR-001: {需求標題} - 描述: - 優先級: P0 | P1 | P2 - 使用者故事: 作為{role},我想要{action},以便{benefit} ### FR-002: ... ## 非功能性需求 ###NFR-001: 效能 - 描述: 頁面載入時間< 2秒 - 量測方式: ... ### NFR-002: 安全性 - 描述: 所有 API 需驗證 - 量測方式: ... ##驗收標準 ### AC-001: {驗收項目} - Given: 前置條件 - When: 觸發動作 - Then: 預期結果 - 自動化: 是/否 - 測試腳本: (連結到測試案例) ### AC-002: ... ## 排期建議 - Phase 1: ... - Phase 2: ... ## 依賴 - 外部依賴: ... - 內部依賴: ... ## 風險評估 - 風險: ... - 緩解措施: ... ``` ## 流程 ```mermaid graph TD A[讀取 Brainstorming 文件] --> B[分析需求結構] B --> C[產出功能性需求] B --> D[產出非功能性需求] C --> E[定義驗收標準] D --> E E --> F[優先級排序] F --> G[風險評估] G --> H[撰寫 PRD 文件] H --> I[人類審核] I -->|通過| J[進入下一階段] I -->|修改| C ``` ## 相依技能 - 前置: `brainstorming`, `plan-ceo-review` - 後續: `be-api-design`, `dba-schema`, `ux-prototype` ``` --- ### 3.2 `be-api-design` - API 設計技能 ```yaml --- name: be-api-design description: "後端工程師設計 API 規格。根據 PRD 產出 OpenAPI 3.0 規格文件,包含端點、請求/回應結構、錯誤處理。觸發時機:PRD 審核通過後。" --- ## 職責 後端工程師角色的 AI 代理,負責: 1. 分析 PRD 中的功能性需求 2. 設計 RESTful API 端點 3. 定義請求/回應 schema 4. 設計錯誤處理機制 5. 考量 API 版本控制 6. 產出 OpenAPI 3.0 規格 ## 輸入 - PRD 文件 - 現有 API 風格 (專案中現有的 API 規格) - 資料模型上下文 ## 輸出 - API 規格文件: `docs/api/{YYYY-MM-DD}-{feature-slug}.yaml` ## API 設計模板 ```yaml openapi: 3.0.3 info: title: {API名稱} version: 1.0.0 description: | {API 描述} 相關 PRD: {PRD 連結} paths: /api/v1/{resource}: get: summary: {操作描述} tags: - {標籤} parameters: - name: {參數名} in: query | path | header required: true | false schema: type: string responses: '200': description: 成功回應 content: application/json: schema: $ref: '#/components/schemas/{Schema}' '400': description: 請求錯誤 '401': description: 未授權 '500': description: 伺服器錯誤 components: schemas: {SchemaName}: type: object properties: {property}: type: {type} description: {描述} required: - {required_fields} ``` ## 設計考量清單 ### 安全性 - [ ] 所有端點都有適當的認證機制 - [ ] 輸入驗證 - [ ] 速率限制 - [ ] CORS 配置 ### 效能 - [ ] 分頁支援 - [ ] 快取策略 - [ ] 批次操作支援 ### 可靠性 - [ ] 錯誤回應格式統一 - [ ] 重試機制建議 - [ ] 冪等性設計 ## 流程 ```mermaid graph TD A[讀取 PRD] --> B[識別資源與操作] B --> C[設計端點結構] C --> D[定義 Schema] D --> E[設計錯誤處理] E --> F[安全性審查] F --> G[效能考量] G --> H[產出 OpenAPI 文件] H --> I[人類審核] I -->|通過| J[進入 DB 規劃] I -->|修改| C ``` ## 相依技能 - 前置: `pm-prd` - 後續: `dba-schema` ``` --- ### 3.3 `dba-schema` - 資料庫綱要技能 ```yaml --- name: dba-schema description: "DBA 規劃資料庫綱要。根據 API 規格設計資料庫 schema,包含索引策略、遷移計畫、效能考量。觸發時機:API 設計完成後。" --- ## 職責 DBA 角色的 AI 代理,負責: 1. 分析 API 規格中的資料結構 2. 設計正規化的資料庫 schema 3. 規劃索引策略 4. 設計遷移計畫 5. 效能優化建議 ## 輸入 - API 規格文件 - PRD 文件 (了解業務需求) - 現有資料庫 schema (如有) ## 輸出 - Schema 文件: `docs/db/{YYYY-MM-DD}-{feature-slug}.sql` - 遷移計畫: `docs/db/migrations/{version}-{description}.sql` ## Schema 設計模板 ```sql -- Migration: {feature_name} -- Version: {version} -- Date: {date} -- Author: DBA Agent -- Related API: {API規格連結} -- ====== Tables ====== CREATE TABLE {table_name} ( idBIGSERIAL PRIMARY KEY,-- 效能考量 created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), -- 業務欄位 {column_name} {type} {constraints}, -- ... ); -- ====== Indexes ====== -- 主要查詢索引 CREATE INDEX idx_{table}_{column} ON {table_name} ({column}); -- 複合索引 (考量查詢模式) CREATE INDEX idx_{table}_{columns} ON {table_name} ({column1}, {column2}); -- ======Constraints ====== -- 外鍵關聯 ALTER TABLE {table_name} ADD CONSTRAINT fk_{relation} FOREIGN KEY ({column}) REFERENCES {related_table}({related_column}) ON DELETE CASCADE; -- ====== Triggers ====== -- 自動更新 updated_at CREATE TRIGGER update_{table}_updated_at BEFORE UPDATE ON {table_name} FOR EACH ROW EXECUTE FUNCTION update_updated_at_column(); -- ====== Comments ====== COMMENT ON TABLE {table_name} IS '{描述}'; COMMENT ON COLUMN {table_name}.{column} IS '{描述}'; ``` ## 設計原則 ### 正規化 - 達到第三正規化 (3NF) - 視查詢模式進行反正規化優化 ### 索引策略 - 主鍵: 自動建立 - 外鍵: 視查詢頻率決定 - 常用篩選條件: 建立索引 - 複合索引: 依查詢模式設計 ### 效能考量 - 大表分區策略 - 讀寫分離建議 - 連線池配置 ## 流程 ```mermaid graph TD A[讀取 API 規格] --> B[識別資料實體] B --> C[設計資料表] C --> D[定義關聯] D --> E[規劃索引] E --> F[遷移計畫] F --> G[效能審查] G --> H[產出 Schema 文件] H --> I[人類審核] I -->|通過| J[進入 UX 原型] I -->|修改| C ``` ## 相依技能 - 前置: `be-api-design` - 後續: `ux-prototype` ``` --- ### 3.4 `ux-prototype` - UX 原型技能 ```yaml --- name: ux-prototype description: "UX 設計師產出原型設計。根據 PRD 和 API 規格設計使用者介面原型,整合 pancel.dev 或其他工具。觸發時機:API 和 DB 設計完成後。" --- ## 職責 UX 設計師角色的 AI 代理,負責: 1. 分析 PRD 中的使用者故事 2. 設計使用者流程 3. 產出線框圖 4. 設計互動原型 5. 確保設計與 API 規格對應 ## 輸入 - PRD 文件 - API 規格文件 - DB Schema (了解資料結構) ## 輸出 - 設計文件: `docs/design/{YYYY-MM-DD}-{feature-slug}/` - `user-flow.md` - 使用者流程 - `wireframes/` - 線框圖 - `prototype-link.md` - 原型連結 ## 設計流程 ### 1. 使用者流程圖 ```markdown # User Flow: {功能名稱} ## 流程圖 ```mermaid graph TD A[登入頁面] --> B{已登入?} B -->|是| C[首頁] B -->|否| D[註冊/登入] D --> E[填寫表單] E --> F[提交] F --> G{驗證成功?} G -->|是| C G -->|否| H[錯誤提示] H --> D ``` ## 頁面清單 | 頁面 | URL | 描述 | API 端點 | |------|-----|------|----------| | 登入 | /login | 使用者登入 | POST /api/v1/auth/login | | 首頁 | / | 產品首頁 | GET /api/v1/dashboard | ``` ### 2. 元件對應表 ```markdown # 元件與 API 對應 ## 頁面: {page_name} | 元件 | 資料來源 | API 端點 | 快取策略 | |------|---------|---------|---------| | 使用者列表 |Users API | GET /api/v1/users | SWR| | 搜尋框 | Search API | GET /api/v1/search | Debounce | ``` ### 3. 線框圖描述 使用文字描述關鍵頁面的線框圖: ```markdown # Wireframe: {page_name} ## 佈局 ``` ┌─────────────────────────────────────────┐ │Header│ │ Logo Nav │ User │ ├─────────────────────────────────────────┤ │ │ │ Main Content │ │ ┌─────────────────────────────────┐│ │ │ ││ │ │Content Area ││ │ │ ││ │ └─────────────────────────────────┘│ │ │ ├─────────────────────────────────────────┤ │ Footer │ └─────────────────────────────────────────┘ ``` ## 元件清單 - Header: 導航列 - ContentArea: 主要內容區 - Footer: 頁尾 ``` ##原型工具建議 ### 選項 1: pancel.dev - 優點: 快速產出、AI 協助 - 適用: 快速原型、內部工具 ### 選項 2: Figma - 優點: 專業設計、協作 - 適用: 產品設計、客戶展示 ### 選項 3: 文字描述 + HTML - 優點: 版本控制、直接實作 - 適用: 技術團隊 ## 流程 ```mermaid graph TD A[讀取 PRD 和 API 規格] --> B[識別使用者故事] B --> C[設計使用者流程] C --> D[繪製線框圖] D --> E[元件與 API 對應] E --> F[產出原型] F --> G[人類審核] G -->|通過| H[進入 Design Review] G -->|修改| D ``` ## 相依技能 - 前置: `pm-prd`, `be-api-design`, `dba-schema` - 後續: `design-review` ``` --- ## 4. 主控技能設計 ### 4.1 `vibe-kanban` 技能 ```yaml --- name: vibe-kanban description: "完整的軟體開發工作流程協調器。管理從需求探索到部署的完整生命週期,支援階段間轉換、退回機制、狀態持久化。觸發方式:/vibe-kanban" --- ## 職責 工作流程的主控協調器,負責: 1. 狀態機管理 - 追蹤當前階段 2. 階段間轉換 - 自動觸發對應技能 3. 退回機制 - 處理審核不通過 4. 狀態持久化 - 儲存工作流進度 5. 進度報告 - 提供視覺化狀態 ## 命令 - `/vibe-kanban start` - 開始新工作流 - `/vibe-kanban status` - 查看當前狀態 - `/vibe-kanban next` - 前往下一階段 - `/vibe-kanban back [reason]` - 退回上一階段 - `/vibe-kanban skip` - 跳過當前階段 (需確認) ## 狀態機 見 [第5節](#5-狀態機設計) ## 狀態持久化 ```yaml # .gstack/kanban/{project-slug}/state.yaml version: 1.0 project: {project-name} created_at: {ISO timestamp} updated_at: {ISO timestamp} current_phase: PRD phase_status: IN_PROGRESS # PENDING | IN_PROGRESS | COMPLETED | BLOCKED history: - phase: BRAINSTORM status: COMPLETED started_at: 2025-01-15T10:00:00Z completed_at: 2025-01-15T11:30:00Z duration_minutes: 90 output: docs/brainstorm/2025-01-15-feature-x.md triggered_skill: brainstorming - phase: CEO_REVIEW status: COMPLETED started_at: 2025-01-15T11:30:00Z completed_at: 2025-01-15T14:00:00Z duration_minutes: 150 output: docs/ceo-review/2025-01-15-feature-x.md triggered_skill: plan-ceo-review notes: "通過,建議擴展範圍" artifacts: brainstorm: docs/brainstorm/2025-01-15-feature-x.md prd: null # 待產出 api_spec: null db_schema: null ux_prototype: null blockers: [] next_actions: - "執行 /pm-prd 產出PRD" ``` ## 階段轉換邏輯 ```python # 階段轉換條件 TRANSITIONS = { "BRAINSTORM": { "next": "CEO_REVIEW", "skill": "brainstorming", "required_artifacts": ["brainstorm.md"], "auto_trigger": True }, "CEO_REVIEW": { "next": "PRD", "skill": "plan-ceo-review", "required_artifacts": ["ceo-review.md"], "approval_required": True }, "PRD": { "next": "API_DESIGN", "skill": "pm-prd", "required_artifacts": ["prd.md"], "approval_required": True }, "API_DESIGN": { "next": "DB_SCHEMA", "skill": "be-api-design", "required_artifacts": ["api-spec.yaml"], "approval_required": True }, "DB_SCHEMA": { "next": "UX_PROTOTYPE", "skill": "dba-schema", "required_artifacts": ["schema.sql"], "approval_required": True }, "UX_PROTOTYPE": { "next": "DESIGN_REVIEW", "skill": "ux-prototype", "required_artifacts": ["prototype/"], "approval_required": True }, "DESIGN_REVIEW": { "next": "TASK_BREAKDOWN", "skill": "design-review", "required_artifacts": ["review-report.md"], "approval_required": True, "can_fail_back_to": "PRD"# 可退回到PRD 階段 }, "TASK_BREAKDOWN": { "next": "IMPLEMENTATION", "skill": "dispatching-parallel-agents", "required_artifacts": ["tasks.md"], "approval_required": False }, "IMPLEMENTATION": { "next": "QA", "skill": None,# 手動實作 "required_artifacts": ["code/"], "approval_required": False }, "QA": { "next": "PR_REVIEW", "skill": "qa", "required_artifacts": ["qa-report.md"], "approval_required": False, "can_fail_back_to": "TASK_BREAKDOWN" # QA不通過退回步驟四 }, "PR_REVIEW": { "next": "DEPLOY", "skill": "review", "required_artifacts": ["pr-review.md"], "approval_required": True, "can_fail_back_to": "TASK_BREAKDOWN" # PR審核不通過退回步驟四 }, "DEPLOY": { "next": "COMPLETED", "skill": "land-and-deploy", "required_artifacts": ["deploy-report.md"], "approval_required": False } } ``` ## 流程圖 ```mermaid stateDiagram-v2 [*] --> BRAINSTORM: /vibe-kanban start BRAINSTORM --> CEO_REVIEW: 通過 CEO_REVIEW --> PRD: 通過 CEO_REVIEW --> BRAINSTORM: 退回修改 PRD --> API_DESIGN: 通過 PRD --> CEO_REVIEW: major changes API_DESIGN --> DB_SCHEMA: 通過 API_DESIGN --> PRD: 需求不符 DB_SCHEMA --> UX_PROTOTYPE: 通過 DB_SCHEMA --> API_DESIGN: schema衝突 UX_PROTOTYPE --> DESIGN_REVIEW: 完成 UX_PROTOTYPE --> DB_SCHEMA: 資料結構不符 DESIGN_REVIEW --> TASK_BREAKDOWN: 通過 DESIGN_REVIEW --> PRD: 設計不符需求 TASK_BREAKDOWN --> IMPLEMENTATION: 任務拆分完成 IMPLEMENTATION --> QA: 實作完成 QA --> TASK_BREAKDOWN: 測試不通過 QA --> PR_REVIEW: 測試通過 PR_REVIEW --> DEPLOY: 審核通過 PR_REVIEW --> TASK_BREAKDOWN: 審核不通過 DEPLOY --> COMPLETED: 部署成功 DEPLOY --> IMPLEMENTATION: 部署失敗 COMPLETED --> [*] ``` ## 進度報告 執行 `/vibe-kanban status` 時顯示: ``` ╔══════════════════════════════════════════════════════════════╗ ║ VIBE-KANBAN 狀態 ║ ╠══════════════════════════════════════════════════════════════╣ ║專案: feature-user-auth ║ ║ 當前階段: PRD (撰寫產品需求文件) ║ ║ 狀態: IN_PROGRESS ║ ║ ║ ║已完成階段: ║ ║ ✅ BRAINSTORM (90 分鐘) ║ ║ ✅ CEO_REVIEW (150 分鐘) ║ ║ ║ ║ 待完成階段: ║ ║ ⏳ PRD ← 你在這裡 ║ ║ ⬜ API_DESIGN ║ ║ ⬜ DB_SCHEMA ║ ║ ⬜ UX_PROTOTYPE ║ ║ ⬜ DESIGN_REVIEW ║ ║ ⬜ TASK_BREAKDOWN ║ ║ ⬜ IMPLEMENTATION ║ ║ ⬜ QA ║ ║ ⬜ PR_REVIEW ║ ║ ⬜ DEPLOY ║ ║ ║ ║產出文件: ║ ║ docs/brainstorm/2025-01-15-feature-x.md✅ ║ ║ docs/ceo-review/2025-01-15-feature-x.md ║ ║ docs/prd/ (待產出) ║ ║ ║ ║ 下一步: 執行 /pm-prd 產出PRD ║ ╚══════════════════════════════════════════════════════════════╝ ``` ``` --- ## 5. 狀態機設計 ### 5.1 階段定義 | 階段 | 名稱 | 觸發技能 | 輸入 | 輸出 | 失敗退回 | |------|------|---------|------|------|---------| | 1 | BRAINSTORM | brainstorming | 使用者想法 | brainstorm.md | - | | 2 | CEO_REVIEW | plan-ceo-review | brainstorm.md | review-report.md |階段1 | | 3 | PRD | pm-prd | review-report.md | prd.md | 階段2 | | 4 | API_DESIGN | be-api-design | prd.md | api-spec.yaml | 階段3 | | 5 | DB_SCHEMA | dba-schema | api-spec.yaml | schema.sql | 階段4 | | 6 | UX_PROTOTYPE | ux-prototype | prd.md + api-spec.yaml + schema.sql | prototype/ | 階段5 | | 7 | DESIGN_REVIEW | design-review | prototype/ | review-report.md | 階段3 | | 8 | TASK_BREAKDOWN | dispatching-parallel-agents | tasks.md | task-assignments | 階段7 | | 9 | IMPLEMENTATION | 手動 | task-assignments | code/ | 階段8 | | 10 | QA | qa | code/ + acceptance-criteria | qa-report.md | 階段8 (步驟四) | | 11 | PR_REVIEW | review | code/ | pr-review.md | 階段8 (步驟四) | | 12 | DEPLOY | land-and-deploy | pr-approved | deploy-report.md | 階段9 | ### 5.2 退回邏輯 ```python #退回規則 ROLLBACK_RULES = { "QA_FAILED": { "from_phase": "QA", "to_phase": "TASK_BREAKDOWN", "reason": "測試不通過,需要重新實作" }, "PR_REVIEW_FAILED": { "from_phase": "PR_REVIEW", "to_phase": "TASK_BREAKDOWN", "reason": "代碼審核不通過,需要修改" }, "DESIGN_REVIEW_FAILED": { "from_phase": "DESIGN_REVIEW", "to_phase": "PRD", "reason": "設計審核不通過,需求需要調整" }, "DEPLOY_FAILED": { "from_phase": "DEPLOY", "to_phase": "IMPLEMENTATION", "reason": "部署失敗,需要修復" } } ``` --- ## 6. 文件結構規劃 ``` .gstack/ └── kanban/ └── {project-slug}/ ├── state.yaml# 工作流狀態 ├── history/ │ ├── brainstorm-{date}.md│ ├── ceo-review-{date}.md │ ├── prd-{date}.md │ └── ... └── artifacts/ ├── prd/ ├── api/ ├── db/ └── design/ docs/ ├── brainstorm/ │ └── {date}-{feature}.md ├── prd/ │ └── {date}-{feature}.md ├── api/ │ └── {date}-{feature}.yaml ├── db/ │ ├── {date}-{feature}.sql│ └── migrations/ │ └── {version}-{description}.sql ├── design/ │ └── {date}-{feature}/ │ ├── user-flow.md │ ├── wireframes/ │ └── prototype-link.md ├── qa/ │ └── qa-report-{date}.md └── deploy/ └── deploy-report-{date}.md skills/ ├── vibe-kanban/ │ ├── SKILL.md │ ├── references/ │ │ └── workflow-diagram.md │ └── templates/ │ └── state-template.yaml ├── pm-prd/ │ ├── SKILL.md │ └── templates/ │ └── prd-template.md ├── be-api-design/ │ ├── SKILL.md │ └── templates/ │ └── openapi-template.yaml ├── dba-schema/ │ ├── SKILL.md │ └── templates/ │ └── schema-template.sql └── ux-prototype/ ├── SKILL.md └── templates/ ├── user-flow-template.md └── component-mapping-template.md ``` --- ## 7. 實施優先順序 ### Phase 1: 核心框架 (Week 1) 1. **vibe-kanban 主控技能** - 最高優先級 - 狀態機核心邏輯 - 狀態持久化 - 階段轉換 2. **pm-prd 技能** - 高優先級 - PRD 模板 - 驗收標準定義 ### Phase 2: 設計階段 (Week 2) 3. **be-api-design 技能** - 中優先級 - API 規格產出 - OpenAPI 模板 4. **dba-schema 技能** - 中優先級 - Schema 設計 - 遷移計畫 5. **ux-prototype 技能** - 中優先級 - 使用者流程 - 元件對應 ### Phase 3: 整合測試 (Week 3) 6. **整合測試** - 完整流程演練 - 邊界條件測試 - 退回機制測試 ### Phase 4: 優化 (Week 4) 7. **性能優化** - 並行執行優化 - 快取策略 8. **文件完善** - 使用指南 - 最佳實踐 --- ## 8. 退回機制設計 ### 8.1 退回觸發條件 ```yaml # 退回觸發條件定義 ROLLBACK_TRIGGERS: QA: conditions: - 測試覆蓋率< 80% -關鍵功能測試失敗 - 效能未達標 target_phase: TASK_BREAKDOWN message: "QA 測試未通過,需要返回任務拆分階段重新實作" PR_REVIEW: conditions: - 代碼審核拒絕 - 安全漏洞發現 - 架構問題 target_phase: TASK_BREAKDOWN message: "PR 審核未通過,需要返回任務拆分階段修改" DESIGN_REVIEW: conditions: - 設計與需求不符 - UX 問題嚴重 - 技術不可行 target_phase: PRD message: "設計審核未通過,需要返回 PRD 階段重新定義需求" ``` ### 8.2 退回後處理 ```yaml # 退回後的處理流程 ROLLBACK_PROCESS: steps: - name: "記錄退回原因"action: "write_to_history" data: phase: "{from_phase}" reason: "{reason}" timestamp: "{ISO timestamp}" - name: "通知相關代理" action: "notify_agents" agents: - "PM (if phase <= PRD)" - "Backend (if phase > PRD)" - "UX (if phase >= UX_PROTOTYPE)" - name: "清理階段產出" action: "archive_artifacts" target: "{current_phase}" - name: "恢復到目標階段" action: "restore_state" target_phase: "{target_phase}" - name: "重新開始" action: "trigger_skill" skill: "{target_skill}" ``` --- ## 9. 驗收標準模板 ### 9.1 通用驗收標準 ```markdown #驗收標準模板 ## AC-001: {驗收項目名稱} ### Given (前置條件) - 條件 1 - 條件 2 ### When (觸發動作) - 動作描述 ### Then (預期結果) - 結果 1 - 結果 2 ### 測試資訊 - **優先級**: P0 | P1 | P2 - **類型**: 功能性 | 非功能性 - **自動化**: 是 | 否 - **測試腳本**: `tests/{test-file}` --- ## 驗收標準範例 ### AC-001: 使用者登入功能 #### Given - 使用者已註冊帳號 - 登入頁面已載入 #### When - 使用者輸入正確的 email 和密碼 - 使用者點擊「登入」按鈕 #### Then - 系統驗證帳號密碼 - 使用者被導向首頁 - Session 被建立 #### 測試資訊 - **優先級**: P0 - **類型**: 功能性 - **自動化**: 是 - **測試腳本**: `tests/auth/login.test.ts` ``` ### 9.2 非功能性驗收標準 ```markdown # 非功能性驗收標準 ##NFR-001: 效能 ### 頁面載入時間 -首頁載入 < 2 秒 (P95) - API 回應 < 500ms (P95) ### 測試方法 - 使用 Lighthouse 測量 - 使用 k6 進行負載測試 --- ##NFR-002: 安全性 ### 認證與授權 - 所有 API 端點需驗證 - 實作 RBAC (Role-Based Access Control) ### 測試方法 - OWASP ZAP 掃描 - 滲透測試 --- ##NFR-003: 可用性 ### 正常運行時間 - 99.9% SLA - 計畫性維護除外 ### 測試方法 - 監控系統日誌 - Uptime 監控 ``` --- ## 附錄 ### A. 相關文件連結 - Brainstorming 技能: `/skills/brainstorming/SKILL.md` - CEO Review 技能: `/gstack/plan-ceo-review/SKILL.md` - QA 技能: `/gstack/qa/SKILL.md` - Land and Deploy 技能: `/gstack/land-and-deploy/SKILL.md` ### B. 參考資料 - OpenAPI 規格: https://spec.openapis.org/oas/v3.1.0 - Gherkin 語法: https://cucumber.io/docs/gherkin/ - 12-Factor App: https://12factor.net/ ### C. 版本歷史 | 版本 | 日期 | 變更 | |------|------|------| | 1.0 | 2025-01-15 | 初版規劃文件 |