opencode-workflow/design-idea/VIBE_KANBAN_PLAN.md

1231 lines
37 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | 初版規劃文件 |