opencode-workflow/design-idea/SKILL_DEPENDENCIES.md

500 lines
16 KiB
Markdown
Raw Normal View History

2026-04-08 23:53:15 +00:00
# 技能依賴圖
本文件描述 Vibe-Kanban 工作流程中各技能之間的依賴關係。
---
## 依賴圖總覽
```
┌─────────────────────────────────────────────────────────────────────────┐
│ 技能依賴關係圖 │
└─────────────────────────────────────────────────────────────────────────┘
┌──────────────┐
│ 使用者 │
│ 輸入想法 │
└──────┬───────┘
┌────────────────────────────────┐
│ │
│ vibe-kanban (主控) │
│ │
└────────────────┬───────────────┘
┌───────────────────────────┼───────────────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────────────┐ ┌─────────────────┐
│ brainstorming │ │ plan-ceo-review │ │ pm-prd │
│ │ │ (現有技能) │ │ (新建技能) │
│ (現有技能) │ │ │ │ │
└────────┬────────┘ └────────────┬────────────┘ └────────┬────────┘
│ │ │
└─────────────┬─────────────┘ │
│ │
▼ │
┌─────────────────┐ │
│ ceo-review │◀──────────────────────────────┘
│ output │
└────────┬────────┘│
┌────────────────────────────┐
│ │
│be-api-design (新建技能) │
│ │
└─────────────┬──────────────┘│
┌────────────────────────────┐
│ │
│ dba-schema (新建技能) │
│ │
└─────────────┬──────────────┘
┌────────────────────────────┐
│ │
│ ux-prototype (新建技能) │
│ │
└─────────────┬──────────────┘
┌────────────────────────────┐
│ │
│ design-review (現有技能) │
│ │
└─────────────┬──────────────┘
│ 失敗退回 PRD
┌─────────────────────────────────────────┐
│ │
│ dispatching-parallel-agents (現有技能) │
│ │
└────────────────┬────────────────────────┘│
┌──────────────┐
│ │
│ 前端實作 │
│ │
└──────┬───────┘
│ ┌──────────────┐
│ │ │
└───────▶│ 後端實作 │
│ │
└──────┬───────┘
┌────────────────────────────────┐
│ │
│ qa (現有技能) │
│ │
└─────────────┬──────────────────┘
│ 失敗退回 Task Breakdown
┌────────────────────────────────┐
│ │
│ review (現有技能) │
│ │
└─────────────┬──────────────────┘
│ 失敗退回 Task Breakdown
┌────────────────────────────────┐
│ │
│ land-and-deploy (現有技能) │
│ │
└────────────────┬───────────────┘
┌──────────┐
│ │
│ 完成 │
│ │
└──────────┘
```
---
## 技能分類
### 現有技能 (可直接使用)
| 技能名稱 | 位置 | 用途 |
|---------|------|------|
| `brainstorming` | skills/ | PM 需求探索 |
| `plan-ceo-review` | gstack/| CEO 商業價值審核 |
| `design-review` | gstack/| 設計審核 |
| `dispatching-parallel-agents` | skills/ | 任務平行拆分 |
| `qa` | gstack/ | QA 測試驗收 |
| `review` | gstack/ | PR 代碼審核 |
| `land-and-deploy` | gstack/ | 部署流程 |
### 新建技能 (需要實作)
| 技能名稱 | 位置 | 用途 |
|---------|------|------|
| `vibe-kanban`| skills/ | 主控協調器 |
| `pm-prd` | skills/ | PRD 撰寫 |
| `be-api-design` | skills/ | API 設計 |
| `dba-schema` | skills/ | 資料庫規劃 |
| `ux-prototype` | skills/ | UX 原型 |
---
## 詳細依賴關係
### Stage 1: Brainstorming
```yaml
技能: brainstorming
類型: 現有
輸入:
- 使用者輸入的想法
- 專案上下文 (CLAUDE.md, README.md 等)
輸出:
- docs/brainstorm/{date}-{feature}.md
依賴: 無
觸發: vibe-kanban (主控)
```
### Stage 2: CEO Review
```yaml
技能: plan-ceo-review
類型: 現有
輸入:
- docs/brainstorm/{date}-{feature}.md
輸出:
- docs/ceo-review/{date}-{feature}.md
- 審核報告
依賴:
- brainstorming (必須完成)
觸發: vibe-kanban (主控)
退回: 可退回 brainstorming
```
### Stage 3: PRD
```yaml
技能: pm-prd
類型: 新建
輸入:
- docs/brainstorm/{date}-{feature}.md
- docs/ceo-review/{date}-{feature}.md
輸出:
- docs/prd/{date}-{feature}.md
依賴:
- brainstorming (必須完成)
- plan-ceo-review (必須通過)
觸發: vibe-kanban (主控)
退回: 可退回 ceo-review
```
### Stage 4: API Design
```yaml
技能: be-api-design
類型: 新建
輸入:
- docs/prd/{date}-{feature}.md
輸出:
- docs/api/{date}-{feature}.yaml
依賴:
- pm-prd (必須完成)
觸發: vibe-kanban (主控)
退回: 可退回 pm-prd
```
### Stage 5: DB Schema
```yaml
技能: dba-schema
類型: 新建
輸入:
- docs/api/{date}-{feature}.yaml
- docs/prd/{date}-{feature}.md
輸出:
- docs/db/{date}-{feature}.sql
- docs/db/migrations/{version}-{description}.sql
依賴:
- be-api-design (必須完成)
觸發: vibe-kanban (主控)
退回: 可退回 be-api-design
```
### Stage 6: UX Prototype
```yaml
技能: ux-prototype
類型: 新建
輸入:
- docs/prd/{date}-{feature}.md
- docs/api/{date}-{feature}.yaml
- docs/db/{date}-{feature}.sql
輸出:
- docs/design/{date}-{feature}/user-flow.md
- docs/design/{date}-{feature}/wireframes/
- docs/design/{date}-{feature}/prototype-link.md
依賴:
- dba-schema (必須完成)
觸發: vibe-kanban (主控)
退回: 可退回 dba-schema
```
### Stage 7: Design Review
```yaml
技能: design-review
類型: 現有
輸入:
- docs/design/{date}-{feature}/
輸出:
- docs/design/{date}-{feature}/review-report.md
依賴:
- ux-prototype (必須完成)
觸發: vibe-kanban (主控)
退回: 可退回 pm-prd (設計與需求不符)
```
### Stage 8: Task Breakdown
```yaml
技能: dispatching-parallel-agents-doc
類型: 現有
輸入:
- docs/prd/{date}-{feature}.md
- docs/api/{date}-{feature}.yaml
- docs/design/{date}-{feature}/
輸出:
- .gstack/kanban/{project}/tasks.md
- 任務分配
依賴:
- design-review (必須通過)
觸發: vibe-kanban (主控)
退回: 無
```
### Stage 9: Implementation
```yaml
技能: 無 (手動或使用 writing-plans)
類型: 手動
輸入:
- .gstack/kanban/{project}/tasks.md
輸出:
- 程式碼
- 單元測試
依賴:
- dispatching-parallel-agents-doc (必須完成)
觸發: 開發者手動
退回: 無
```
### Stage 10: QA
```yaml
技能: qa
類型: 現有
輸入:
- 程式碼
- docs/prd/{date}-{feature}.md (驗收標準)
輸出:
- .gstack/qa-reports/qa-report-{date}.md
依賴:
-實作 (必須完成)
觸發: vibe-kanban (主控)
退回: 可退回 dispatching-parallel-agents-doc (步驟四)
```
### Stage 11: PR Review
```yaml
技能: review
類型: 現有
輸入:
- PR (程式碼變更)
輸出:
-PR 審核報告
依賴:
- qa (必須通過)
觸發: vibe-kanban (主控)
退回: 可退回 dispatching-parallel-agents-doc (步驟四)
```
### Stage 12: Deploy
```yaml
技能: land-and-deploy
類型: 現有
輸入:
- 已核准的 PR
輸出:
- .gstack/deploy-reports/deploy-report-{date}.md
依賴:
- review (必須通過)
觸發: vibe-kanban (主控)
退回: 無 (部署失敗可重新部署)
```
---
## 退回路徑總覽
```yaml
退回路徑:
- from: CEO_REVIEW
to: BRAINSTORM
reason: "商業價值不足或需求不清"
- from: PRD
to: CEO_REVIEW
reason: "PRD 與 CEO 審核不符"
- from: API_DESIGN
to: PRD
reason: "API 設計與需求不符"
- from: DB_SCHEMA
to: API_DESIGN
reason: "資料結構與 API 衝突"
- from: UX_PROTOTYPE
to: DB_SCHEMA
reason: "原型與資料結構不符"
- from: DESIGN_REVIEW
to: PRD
reason: "設計與需求不符"
- from: QA
to: TASK_BREAKDOWN
reason: "測試不通過"
- from: PR_REVIEW
to: TASK_BREAKDOWN
reason: "代碼審核不通過"
- from: DEPLOY
to: IMPLEMENTATION
reason: "部署失敗"
```
---
## 檔案流向圖
```
使用者輸入
docs/brainstorm/{date}-{feature}.md
docs/ceo-review/{date}-{feature}.md
docs/prd/{date}-{feature}.md
├──▶ docs/api/{date}-{feature}.yaml
│ │
│ └──▶ docs/db/{date}-{feature}.sql
│ │
│ └──▶ docs/design/{date}-{feature}/
│ │
│ └──▶ docs/design/{date}-{feature}/review-report.md
└──▶ .gstack/kanban/{project}/tasks.md
└──▶ 程式碼
├──▶ .gstack/qa-reports/qa-report-{date}.md
├──▶ PR (代碼變更)
└──▶ .gstack/deploy-reports/deploy-report-{date}.md
```
---
## 版本控制建議
### 應納入版本控制的檔案
```
.gstack/kanban/{project}/state.yaml # 工作流狀態
docs/brainstorm/ # 需求探索文件
docs/prd/ # PRD 文件
docs/api/ # API 規格
docs/db/ # 資料庫設計
docs/design/ # 設計文件
.gstack/qa-reports/ # QA 報告
.gstack/deploy-reports/ # 部署報告
```
### 不應納入版本控制的檔案
```
.gstack/tmp/ # 暫存檔案
node_modules/ # 依賴
*.log # 日誌檔案
```
---
## 授權和稽核
### 每個階段的授權需求
| 階段 | 需要授權 | 授權者 |
|------|---------|--------|
| BRAINSTORM | 否 | - |
| CEO_REVIEW | 是 | CEO/決策者 |
| PRD | 是 | PM |
| API_DESIGN | 是 | 後端負責人 |
| DB_SCHEMA | 是 | DBA |
| UX_PROTOTYPE | 是 | UX 設計師 |
| DESIGN_REVIEW | 是 | 設計審核者 |
| TASK_BREAKDOWN | 否 | - |
| IMPLEMENTATION | 否 | - |
| QA | 否 | - |
| PR_REVIEW | 是 | 代碼審核者 |
| DEPLOY | 否 | - |
---
## 效能考量
### 平行執行機會
```yaml
可平行執行:
- API_DESIGN + DB_SCHEMA (可同時進行)
- 前端實作 + 後端實作 (可同時進行)
不可平行執行:
- BRAINSTORM → CEO_REVIEW (必須順序)
- PRD → API_DESIGN (必須順序)
- QA → PR_REVIEW → DEPLOY (必須順序)
```
### 快取策略
```yaml
可快取:
- 專案上下文 (CLAUDE.md, README.md)
- 現有 API 規格
- 現有資料庫 Schema
不可快取:
- 當前階段的輸出
- 狀態檔案
```