440 lines
13 KiB
Markdown
440 lines
13 KiB
Markdown
|
|
# Vibe-Kanban 工作流程 - 技能整合規劃
|
|||
|
|
|
|||
|
|
**版本**: 3.0
|
|||
|
|
**日期**: 2025-01-15
|
|||
|
|
**狀態**: 實施階段
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 執行摘要
|
|||
|
|
|
|||
|
|
本規劃整合多個現有技能,建立完整的軟體開發工作流程。
|
|||
|
|
|
|||
|
|
**總計**: 11 個現有技能 + 5 個新建技能
|
|||
|
|
**Agent**: 8 個核心 Agent + 1 個主控協調器
|
|||
|
|
**階段**: 12 個工作流程階段
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 現有技能整合清單
|
|||
|
|
|
|||
|
|
### 核心技能(直接使用)
|
|||
|
|
|
|||
|
|
| Skill | 來源 | 用途 | 整合階段 |
|
|||
|
|
|-------|------|------|---------|
|
|||
|
|
| `brainstorming` | skills | PM 需求探索 | Stage 1 |
|
|||
|
|
| `plan-ceo-review` | gstack | CEO 商業價值審核 | Stage 2 |
|
|||
|
|
| `write-a-prd` | skills | PRD 撰寫(含訪談) | Stage 3 |
|
|||
|
|
| `grill-me` | skills | **深度驗證閘門** | Stage 3.5 |
|
|||
|
|
| `prd-to-plan` | skills | 實作計畫產出 | Stage 8 |
|
|||
|
|
| `design-an-interface` | skills | API 介面設計 | Stage 4 |
|
|||
|
|
| `tdd` | skills | 測試驅動開發 | Stage 9 |
|
|||
|
|
| `qa` | skills | QA 測試驗收 | Stage 10 |
|
|||
|
|
| `review` | gstack | PR 代碼審核 | Stage 11 |
|
|||
|
|
| `land-and-deploy` | gstack | 部署流程 | Stage 12 |
|
|||
|
|
| `cso` | gstack | 安全審核 | Stage 7/11 |
|
|||
|
|
| `codex` | gstack | 多 AI 代碼審核 | Stage 11 |
|
|||
|
|
|
|||
|
|
### 新增技能(需實作)
|
|||
|
|
|
|||
|
|
| Skill | 用途 | 優先級 |
|
|||
|
|
|-------|------|--------|
|
|||
|
|
| `vibe-kanban` | **主控協調器** | P0 |
|
|||
|
|
| `be-api-design` | OpenAPI 規格產出 | P1 |
|
|||
|
|
| `go-backend-dev` | **Golang 後端實作** | P1 |
|
|||
|
|
| `dba-schema` | 資料庫 Schema 設計 | P1 |
|
|||
|
|
| `ux-prototype` | UX 原型設計 | P2 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Agent 角色定義
|
|||
|
|
|
|||
|
|
| # | Agent | 角色 | 主要技能 |
|
|||
|
|
|---|-------|------|---------|
|
|||
|
|
| 1 | **Orchestrator** | 主控協調器 | `vibe-kanban` |
|
|||
|
|
| 2 | **PM Agent** | 產品經理 | `brainstorming`, `write-a-prd` |
|
|||
|
|
| 3 | **CEO Reviewer** | 商業決策者 | `plan-ceo-review` |
|
|||
|
|
| 4 | **Backend Agent** | Golang 後端工程師 | `be-api-design`, `go-backend-dev`, `design-an-interface`, `tdd` |
|
|||
|
|
| 5 | **DBA Agent** | 資料庫工程師 | `dba-schema` |
|
|||
|
|
| 6 | **UX Agent** | 使用者體驗設計師 | `ux-prototype` |
|
|||
|
|
| 7 | **QA Agent** | 品質保證工程師 | `qa` |
|
|||
|
|
| 8 | **DevOps Agent** | 運維工程師 | `land-and-deploy` |
|
|||
|
|
| 9 | **Design Reviewer** | 設計審核者 | `design-review` |
|
|||
|
|
| 10 | **Security Reviewer** | 安全審核者 | `cso` |
|
|||
|
|
| 11 | **Code Reviewer** | 代碼審核者 | `review`, `codex` |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 完整工作流程(含 Grill-Me 整合)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
|||
|
|
│ VIBE-KANBAN + GRILL-ME 工作流程 │
|
|||
|
|
└─────────────────────────────────────────────────────────────────────────────┘
|
|||
|
|
|
|||
|
|
Stage 1: Brainstorming (PM Agent)
|
|||
|
|
├── Skill: brainstorming
|
|||
|
|
├── 輸入: 使用者想法
|
|||
|
|
├── 輸出: docs/brainstorm/{date}-{feature}.md
|
|||
|
|
└── 下一步: CEO Review
|
|||
|
|
|
|||
|
|
Stage 2: CEO Review (CEO Reviewer)
|
|||
|
|
├── Skill: plan-ceo-review
|
|||
|
|
├── 輸入: Brainstorm 文件
|
|||
|
|
├── 輸出: docs/ceo-review/{date}-{feature}.md
|
|||
|
|
└── 下一步: PRD 撰寫
|
|||
|
|
|
|||
|
|
Stage 3: PRD 撰寫 (PM Agent)
|
|||
|
|
├── Skill: write-a-prd
|
|||
|
|
├── 輸入: CEO Review 結果
|
|||
|
|
├── 輸出: docs/prd/{date}-{feature}.md (初版)
|
|||
|
|
└── 下一步: 深度驗證 (可選)
|
|||
|
|
|
|||
|
|
Stage 3.5: 深度驗證 ⭐ GRILL-ME 整合點
|
|||
|
|
├── Skill: grill-me
|
|||
|
|
├── 觸發條件: 使用者選擇 "進行深度驗證"
|
|||
|
|
├── 輸入: PRD 初版
|
|||
|
|
├── 驗證項目:
|
|||
|
|
│ ├── 每個功能性需求的完整性
|
|||
|
|
│ ├── 使用者故事的邊界情況
|
|||
|
|
│ ├── 非功能性需求的遺漏
|
|||
|
|
│ ├── 驗收標準的可測試性
|
|||
|
|
│ └── 潛在風險和依賴
|
|||
|
|
├── 輸出: 強化後的 PRD
|
|||
|
|
└── 下一步: API Design
|
|||
|
|
|
|||
|
|
Stage 4: API Design (Backend Agent)
|
|||
|
|
├── Skill: be-api-design + design-an-interface
|
|||
|
|
├── 輸入: PRD
|
|||
|
|
├── 輸出: docs/api/{date}-{feature}.yaml
|
|||
|
|
└── 下一步: DB Schema (平行)
|
|||
|
|
|
|||
|
|
Stage 5: DB Schema (DBA Agent)
|
|||
|
|
├── Skill: dba-schema
|
|||
|
|
├── 輸入: API 規格
|
|||
|
|
├── 輸出: docs/db/{date}-{feature}.sql
|
|||
|
|
└── 下一步: UX Prototype (平行)
|
|||
|
|
|
|||
|
|
Stage 6: UX Prototype (UX Agent)
|
|||
|
|
├── Skill: ux-prototype
|
|||
|
|
├── 輸入: PRD + API + DB
|
|||
|
|
├── 輸出: docs/design/{date}-{feature}/
|
|||
|
|
└── 下一步: Design Review
|
|||
|
|
|
|||
|
|
Stage 7: Design Review (Design Reviewer)
|
|||
|
|
├── Skill: design-review
|
|||
|
|
├── 輸入: 所有設計文件
|
|||
|
|
├── 輸出: docs/design/review-report.md
|
|||
|
|
├── 決策點:
|
|||
|
|
│ ├── ✅ 通過 → Task Breakdown
|
|||
|
|
│ └── ❌ 退回 → PRD 修改
|
|||
|
|
└── 下一步: Task Breakdown
|
|||
|
|
|
|||
|
|
Stage 8: Task Breakdown (Orchestrator)
|
|||
|
|
├── Skill: prd-to-plan
|
|||
|
|
├── 輸入: 所有設計文件
|
|||
|
|
├── 輸出: ./plans/{feature}.md
|
|||
|
|
└── 下一步: 實作 (平行)
|
|||
|
|
|
|||
|
|
Stage 9: Implementation (Backend + Frontend Agents)
|
|||
|
|
├── Backend Skill: go-backend-dev + tdd
|
|||
|
|
├── Frontend Skill: (現有技能或手動)
|
|||
|
|
├── 輸入: 實作計畫
|
|||
|
|
├── 輸出: 程式碼
|
|||
|
|
└── 下一步: QA
|
|||
|
|
|
|||
|
|
Stage 10: QA (QA Agent)
|
|||
|
|
├── Skill: qa
|
|||
|
|
├── 輸入: 程式碼 + 驗收標準
|
|||
|
|
├── 輸出: .gstack/qa-reports/qa-report.md
|
|||
|
|
├── 決策點:
|
|||
|
|
│ ├── ✅ 通過 → PR Review
|
|||
|
|
│ └── ❌ 失敗 → 退回 Task Breakdown
|
|||
|
|
└── 下一步: PR Review
|
|||
|
|
|
|||
|
|
Stage 11: PR Review (Code Reviewer)
|
|||
|
|
├── Skill: review + codex
|
|||
|
|
├── 輸入: PR
|
|||
|
|
├── 輸出: PR 審核報告
|
|||
|
|
├── 決策點:
|
|||
|
|
│ ├── ✅ 通過 → Deploy
|
|||
|
|
│ └── ❌ 失敗 → 退回 Task Breakdown
|
|||
|
|
└── 下一步: Deploy
|
|||
|
|
|
|||
|
|
Stage 12: Deploy (DevOps Agent)
|
|||
|
|
├── Skill: land-and-deploy
|
|||
|
|
├── 輸入: 已核准 PR
|
|||
|
|
├── 輸出: .gstack/deploy-reports/deploy-report.md
|
|||
|
|
└── 🎉 完成
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Grill-Me 深度驗證詳細設計
|
|||
|
|
|
|||
|
|
### 觸發機制
|
|||
|
|
|
|||
|
|
在每個關鍵階段後,Orchestrator 會詢問:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
╔══════════════════════════════════════════════════════════════╗
|
|||
|
|
║ 🔥 深度驗證機會 ║
|
|||
|
|
╠══════════════════════════════════════════════════════════════╣
|
|||
|
|
║ ║
|
|||
|
|
║ 當前階段: PRD 撰寫 ║
|
|||
|
|
║ 狀態: ✅ 初版已完成 ║
|
|||
|
|
║ ║
|
|||
|
|
║ 是否需要進行深度驗證 (grill-me)? ║
|
|||
|
|
║ 這將透過密集訪談壓力測試計畫的完整性。 ║
|
|||
|
|
║ ║
|
|||
|
|
║ [A] 是 - 進行深度驗證 (推薦用於關鍵功能) ║
|
|||
|
|
║ [B] 否 - 直接進入下一階段 ║
|
|||
|
|
║ ║
|
|||
|
|
╚══════════════════════════════════════════════════════════════╝
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 驗證檢查清單
|
|||
|
|
|
|||
|
|
#### Stage 3.5 - PRD 深度驗證
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
驗證項目:
|
|||
|
|
功能性需求:
|
|||
|
|
- "每個 FR 是否有明確的驗收標準?"
|
|||
|
|
- "使用者故事是否覆蓋所有使用者角色?"
|
|||
|
|
- "是否有遺漏的邊界情況?"
|
|||
|
|
|
|||
|
|
非功能性需求:
|
|||
|
|
- "效能需求是否具體可量測?"
|
|||
|
|
- "安全性需求是否完整?"
|
|||
|
|
- "可用性和可靠性是否考量?"
|
|||
|
|
|
|||
|
|
技術可行性:
|
|||
|
|
- "現有技術棧是否支援?"
|
|||
|
|
- "是否有外部依賴風險?"
|
|||
|
|
- "擴展性是否考量?"
|
|||
|
|
|
|||
|
|
業務邏輯:
|
|||
|
|
- "所有業務規則是否明確?"
|
|||
|
|
- "錯誤處理流程是否定義?"
|
|||
|
|
- "狀態轉換是否清晰?"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 整合流程圖
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
graph TD
|
|||
|
|
A[Stage 3: PRD 初版] --> B{深度驗證?}
|
|||
|
|
B -->|是| C[Stage 3.5: grill-me]
|
|||
|
|
B -->|否| D[Stage 4: API Design]
|
|||
|
|
|
|||
|
|
C --> C1[問題 1: 需求完整性]
|
|||
|
|
C1 --> C2[問題 2: 邊界情況]
|
|||
|
|
C2 --> C3[問題 3: 風險評估]
|
|||
|
|
C3 --> C4[...更多問題]
|
|||
|
|
C4 --> E[強化 PRD]
|
|||
|
|
|
|||
|
|
E --> D
|
|||
|
|
|
|||
|
|
D --> F[後續階段]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 各階段交付文件
|
|||
|
|
|
|||
|
|
| 階段 | Agent | 主要技能 | 輔助技能 | 交付文件 |
|
|||
|
|
|------|-------|---------|---------|---------|
|
|||
|
|
| 1 | PM | brainstorming | - | `docs/brainstorm/{date}-{feature}.md` |
|
|||
|
|
| 2 | CEO Reviewer | plan-ceo-review | - | `docs/ceo-review/{date}-{feature}.md` |
|
|||
|
|
| 3 | PM | write-a-prd | - | `docs/prd/{date}-{feature}.md` (初版) |
|
|||
|
|
| 3.5 | PM | **grill-me** | - | `docs/prd/{date}-{feature}.md` (強化版) |
|
|||
|
|
| 4 | Backend | be-api-design | design-an-interface | `docs/api/{date}-{feature}.yaml` |
|
|||
|
|
| 5 | DBA | dba-schema | - | `docs/db/{date}-{feature}.sql` |
|
|||
|
|
| 6 | UX | ux-prototype | - | `docs/design/{date}-{feature}/` |
|
|||
|
|
| 7 | Design Reviewer | design-review | cso | `docs/design/review-report.md` |
|
|||
|
|
| 8 | Orchestrator | prd-to-plan | dispatching-parallel-agents | `./plans/{feature}.md` |
|
|||
|
|
| 9 | Backend | go-backend-dev | tdd | `internal/`, `cmd/`, `pkg/` |
|
|||
|
|
| 10 | QA | qa | - | `.gstack/qa-reports/qa-report.md` |
|
|||
|
|
| 11 | Code Reviewer | review | codex | PR 審核報告 |
|
|||
|
|
| 12 | DevOps | land-and-deploy | - | `.gstack/deploy-reports/deploy-report.md` |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 技能依賴關係
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
技能依賴:
|
|||
|
|
brainstorming:
|
|||
|
|
輸入: 使用者想法
|
|||
|
|
輸出: brainstorm.md
|
|||
|
|
|
|||
|
|
plan-ceo-review:
|
|||
|
|
輸入: brainstorm.md
|
|||
|
|
輸出: ceo-review.md
|
|||
|
|
|
|||
|
|
write-a-prd:
|
|||
|
|
輸入: ceo-review.md
|
|||
|
|
輸出: prd.md (初版)
|
|||
|
|
|
|||
|
|
grill-me: # 可選
|
|||
|
|
輸入: prd.md (初版)
|
|||
|
|
輸出: prd.md (強化版)
|
|||
|
|
依賴: write-a-prd
|
|||
|
|
|
|||
|
|
be-api-design:
|
|||
|
|
輸入: prd.md
|
|||
|
|
輸出: api-spec.yaml
|
|||
|
|
輔助: design-an-interface
|
|||
|
|
|
|||
|
|
dba-schema:
|
|||
|
|
輸入: api-spec.yaml
|
|||
|
|
輸出: schema.sql
|
|||
|
|
|
|||
|
|
ux-prototype:
|
|||
|
|
輸入: prd.md, api-spec.yaml, schema.sql
|
|||
|
|
輸出: design/
|
|||
|
|
|
|||
|
|
design-review:
|
|||
|
|
輸入: design/
|
|||
|
|
輸出: review-report.md
|
|||
|
|
|
|||
|
|
prd-to-plan:
|
|||
|
|
輸入: prd.md, api-spec.yaml, design/
|
|||
|
|
輸出: ./plans/{feature}.md
|
|||
|
|
|
|||
|
|
go-backend-dev:
|
|||
|
|
輸入: ./plans/{feature}.md
|
|||
|
|
輸出: 程式碼
|
|||
|
|
輔助: tdd
|
|||
|
|
|
|||
|
|
qa:
|
|||
|
|
輸入: 程式碼, prd.md (驗收標準)
|
|||
|
|
輸出: qa-report.md
|
|||
|
|
|
|||
|
|
review:
|
|||
|
|
輸入: PR
|
|||
|
|
輸出: pr-review.md
|
|||
|
|
輔助: codex
|
|||
|
|
|
|||
|
|
land-and-deploy:
|
|||
|
|
輸入: pr-review.md (已核准)
|
|||
|
|
輸出: deploy-report.md
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Golang 後端特定規則(go-backend-dev)
|
|||
|
|
|
|||
|
|
### 架構風格
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
預設架構: Clean Architecture (適合中型專案)
|
|||
|
|
|
|||
|
|
專案結構:
|
|||
|
|
cmd/api/main.go # 進入點
|
|||
|
|
internal/
|
|||
|
|
domain/ # Entities, Value Objects
|
|||
|
|
usecase/ # Business Logic
|
|||
|
|
interface/
|
|||
|
|
http/ # Handlers
|
|||
|
|
repository/ # Repository interfaces
|
|||
|
|
infrastructure/ # DB, Cache implementations
|
|||
|
|
pkg/
|
|||
|
|
logger/ # Zap
|
|||
|
|
errors/ # 自定義錯誤
|
|||
|
|
validator/ # go-playground/validator
|
|||
|
|
api/openapi.yaml
|
|||
|
|
migrations/
|
|||
|
|
test/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 編碼規範
|
|||
|
|
|
|||
|
|
```yaml
|
|||
|
|
命名:
|
|||
|
|
Package: 小寫單數 (user, not users)
|
|||
|
|
Interface: 方法名 + 'er' (Reader, Writer)
|
|||
|
|
Exported: PascalCase
|
|||
|
|
Internal: camelCase
|
|||
|
|
|
|||
|
|
錯誤處理:
|
|||
|
|
- Always check errors
|
|||
|
|
- Error strings lowercase
|
|||
|
|
- Use fmt.Errorf with %w
|
|||
|
|
|
|||
|
|
API 設計:
|
|||
|
|
RESTful: /api/v1/{resource}
|
|||
|
|
狀態碼: 200, 201, 400, 401, 404, 422, 500
|
|||
|
|
|
|||
|
|
測試:
|
|||
|
|
- Unit tests >= 80% 覆蓋率
|
|||
|
|
- Integration tests for critical paths
|
|||
|
|
- Use testify + mockery
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 實作優先順序
|
|||
|
|
|
|||
|
|
### Phase 1: 核心框架 (Week 1)
|
|||
|
|
|
|||
|
|
| 優先級 | Skill | 複雜度 | 說明 |
|
|||
|
|
|-------|-------|--------|------|
|
|||
|
|
| P0 | vibe-kanban | 高 | 主控協調器,整合所有技能 |
|
|||
|
|
| P0 | grill-me 整合 | 中 | 設計深度驗證流程 |
|
|||
|
|
|
|||
|
|
### Phase 2: 設計階段技能 (Week 2)
|
|||
|
|
|
|||
|
|
| 優先級 | Skill | 複雜度 | 說明 |
|
|||
|
|
|-------|-------|--------|------|
|
|||
|
|
| P1 | be-api-design | 中 | OpenAPI 規格產出 |
|
|||
|
|
| P1 | go-backend-dev | 高 | **Golang 後端實作** |
|
|||
|
|
| P1 | dba-schema | 中 | 資料庫設計 |
|
|||
|
|
|
|||
|
|
### Phase 3: 整合測試 (Week 3)
|
|||
|
|
|
|||
|
|
- 整合所有現有技能
|
|||
|
|
- 端到端流程測試
|
|||
|
|
- 退回機制測試
|
|||
|
|
|
|||
|
|
### Phase 4: 優化 (Week 4)
|
|||
|
|
|
|||
|
|
- 效能優化
|
|||
|
|
- 文件完善
|
|||
|
|
- 使用指南
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 附錄
|
|||
|
|
|
|||
|
|
### A. 技術棧建議
|
|||
|
|
|
|||
|
|
**Golang 後端**:
|
|||
|
|
- 框架: Gin 或 Echo
|
|||
|
|
- ORM: GORM 或 sqlx
|
|||
|
|
- 配置: Viper
|
|||
|
|
- 日誌: Zap
|
|||
|
|
- 驗證: go-playground/validator
|
|||
|
|
- 測試: testify + mockery
|
|||
|
|
- 文件: swag (Swagger)
|
|||
|
|
|
|||
|
|
**資料庫**:
|
|||
|
|
- 主要: PostgreSQL
|
|||
|
|
- 快取: Redis
|
|||
|
|
- 遷移: golang-migrate/migrate
|
|||
|
|
|
|||
|
|
**部署**:
|
|||
|
|
- 容器: Docker
|
|||
|
|
- CI/CD: GitHub Actions
|
|||
|
|
|
|||
|
|
### B. 參考資源
|
|||
|
|
|
|||
|
|
1. [Uber Go Style Guide](https://github.com/uber-go/guide)
|
|||
|
|
2. [golang-standards/project-layout](https://github.com/golang-standards/project-layout)
|
|||
|
|
3. [Go Clean Architecture](https://github.com/bxcodec/go-clean-arch)
|
|||
|
|
4. [A Philosophy of Software Design](https://web.stanford.edu/~ouster/cgi-bin/book.php) (for grill-me 概念)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**下一步**: 開始實作 `vibe-kanban` 主控技能?
|