TTechSpecs

Subagent-Driven Development Skill

Subagent-Driven Development 是 Superpowers 中的協作開發型 skill,專注於使用多個專門的子代理(subagents)來分工協作,系統化地完成複雜的開發任務。

何時使用

在以下情況中使用 Subagent-Driven Development skill:

必須使用的情境

  • 需要處理大型、複雜的開發任務
  • 任務可以分解為多個獨立的子任務
  • 需要專門的代理處理特定領域
  • 想要加速開發流程並行處理
  • 需要多個視角和專長的投入

不適合的情境

  • 簡單、線性的任務
  • 任務無法分解為獨立部分
  • 有強烈的相依性需要順序執行
  • 時間不允許啟動多個代理的開銷

Subagent-Driven Development 的優勢

1. 並行處理

單一代理方式:
Agent A → 任務 1 → 任務 2 → 任務 3
(總時間:T1 + T2 + T3)

多代理並行方式:
Agent A → 任務 1 ↘
Agent B → 任務 2 →→ 整合
Agent C → 任務 3 ↗
(總時間:max(T1, T2, T3) + 整合時間)

2. 專門化處理

領域專長代理:
- Frontend Agent → 處理 UI 組件
- Backend Agent → 處理 API 設計
- Database Agent → 處理資料庫 schema
- Testing Agent → 處理測試策略
- Security Agent → 處理安全性檢查

3. 多元視角

不同代理的視角:
- Planning Agent → 關注架構和設計
- Implementation Agent → 關注實作細節
- Review Agent → 關注品質和標準
- Optimization Agent → 關注效能和改進

Subagent 類型

1. 專門領域代理

**Frontend Agent**
職責:UI 組件、狀態管理、使用者體驗
觸發:「建立 Frontend Agent 處理 React 組件」

**Backend Agent**
職責:API 設計、業務邏輯、資料處理
觸發:「建立 Backend Agent 處理 Express 路由」

**Database Agent**
職責:Schema 設計、查詢優化、遷移腳本
觸發:「建立 Database Agent 設計資料庫結構」

2. 功能專門代理

**Authentication Agent**
職責:處理所有認證相關的實作
知識:OAuth、JWT、session 管理

**Payment Agent**
職責:處理支付整合和交易
知識:Stripe、PayPal、交易安全

**Search Agent**
職責:處理搜尋功能實作
知識:Elasticsearch、全文搜尋、排序

3. 階段專門代理

**Planning Agent**
職責:需求分析、架構設計、任務分解
產出:技術設計文件、實作計畫

**Implementation Agent**
職責:編寫程式碼、實作功能
產出:功能程式碼、單元測試

**Review Agent**
職責:程式碼審查、品質檢查
產出:審查報告、改進建議

實作流程

第 1 步:任務分解

將大型任務分解為可並行處理的子任務:

大型任務:建立電商平台

分解為:
1. Frontend Agent → 建立產品列表頁面
2. Backend Agent → 實作購物車 API
3. Database Agent → 設計訂單資料表
4. Payment Agent → 整合支付系統
5. Testing Agent → 撰寫測試案例

第 2 步:分配子任務

為每個子任務指派適當的代理:

# 啟動 Frontend Agent
「建立 Frontend Agent 負責建立產品列表頁面,使用 React Tailwind」

# 啟動 Backend Agent
「建立 Backend Agent 負責實作購物車 API,使用 Express TypeScript」

# 啟動 Database Agent
「建立 Database Agent 負責設計訂單資料表,使用 PostgreSQL」

# 啟動 Payment Agent
「建立 Payment Agent 負責整合 Stripe 支付系統」

# 啟動 Testing Agent
「建立 Testing Agent 負責撰寫端對端測試,使用 Playwright」

第 3 步:並行執行

各代理獨立工作,並行執行任務:

時間軸:
T0: 啟動所有代理
T1: Frontend Agent 建立組件結構
T1: Backend Agent 設計 API 端點
T1: Database Agent 設計 schema
T2: Frontend Agent 實作產品卡片
T2: Backend Agent 實作 CRUD 操作
T2: Database Agent 建立 migration
...

第 4 步:整合結果

收集各代理的產出並整合:

# 整合 Frontend Agent 的產出
src/components/ProductList.tsx
src/components/ProductCard.tsx

# 整合 Backend Agent 的產出
src/api/cart.ts
src/routes/cart.ts

# 整合 Database Agent 的產出
migrations/001_create_orders.sql
src/models/Order.ts

# 整合 Payment Agent 的產出
src/services/payment.ts
src/api/payments/stripe.ts

第 5 步:驗證整合

確保各代理的工作能正確整合:

# 執行整合測試
npm run test:integration

# 驗證端對端功能
npm run test:e2e

# 檢查建置
npm run build

# 本地測試
npm run dev

實際範例

範例 1:建立使用者認證系統

情境:需要實作完整的認證系統,包含前端和後端

Subagent 驅動開發

## 任務分解

**Frontend Agent 任務**
- 建立登入表單組件
- 建立註冊表單組件
- 實作表單驗證
- 整合認證狀態管理

**Backend Agent 任務**
- 設計認證 API 端點
- 實作 JWT token 產生
- 實作密碼雜湊
- 實作 session 管理

**Database Agent 任務**
- 設計 User 資料表
- 建立 migration 腳本
- 設計索引策略
- 規劃資料關聯

**Security Agent 任務**
- 檢查密碼安全性
- 驗證輸入 sanitization
- 檢查 SQL 注入防護
- 驗證 CORS 設定

**Testing Agent 任務**
- 撰寫 API 測試
- 撰寫整合測試
- 撰寫端對端測試
- 測試錯誤情況

執行過程

# 第 1 步:啟動所有代理

## Frontend Agent
「建立 Frontend Agent 負責認證表單,使用 React Hook Form」

**Agent 工作內容**
- 建立 LoginForm.tsx 組件
- 建立 RegisterForm.tsx 組件
- 實作表單驗證邏輯
- 整合 AuthContext

產出:
- src/auth/LoginForm.tsx
- src/auth/RegisterForm.tsx
- src/contexts/AuthContext.tsx

## Backend Agent
「建立 Backend Agent 負責認證 API,使用 Express」

**Agent 工作內容**
- 實作 POST /api/auth/login
- 實作 POST /api/auth/register
- 實作 POST /api/auth/logout
- 整合 JWT middleware

產出:
- src/api/auth/login.ts
- src/api/auth/register.ts
- src/middleware/auth.ts

## Database Agent
「建立 Database Agent 負責使用者資料表設計」

**Agent 工作內容**
- 設計 users 資料表 schema
- 建立 migration 腳本
- 設計 email 唯一索引
- 規劃資料關聯

產出:
- migrations/001_create_users.sql
- src/models/User.ts

## Security Agent
「建立 Security Agent 檢查認證系統安全性」

**Agent 工作內容**
- 檢查密碼複雜度要求
- 驗證 bcrypt 使用正確
- 檢查 token 安全性
- 驗證輸入驗證完整

產出:
- SECURITY_REVIEW.md
- 安全性改進建議

## Testing Agent
「建立 Testing Agent 撰寫認證測試」

**Agent 工作內容**
- 測試登入流程
- 測試註冊流程
- 測試錯誤情況
- 測試 session 管理

產出:
- src/auth/auth.test.ts
- src/api/auth/login.test.ts

# 第 2 步:整合結果

# 收集所有代理的產出
# 確保介面一致
# 解決任何衝突

# 第 3 步:驗證整合

npm test           # 執行所有測試
npm run build      # 確認建置成功
npm run dev        # 本地測試功能

範例 2:重構大型組件

情境:需要重構一個大型、複雜的組件

Subagent 驅動開發

## 任務分解

**Analysis Agent 任務**
- 分析當前組件結構
- 識別重構機會
- 評估複雜度
- 建議重構策略

**Extraction Agent 任務**
- 提取可重用的子組件
- 建立組件介面
- 重構狀態管理
- 改善組件通訊

**Optimization Agent 任務**
- 識別效能瓶頸
- 實作 memoization
- 優化渲染邏輯
- 減少不必要的重渲染

**Testing Agent 任務**
- 確保重構後測試通過
- 補充重構部分的測試
- 驗證行為一致性
- 測試邊界條件

執行結果

// 原始組件(400+ 行)
function UserDashboard({ user }) {
  // ...大量複雜邏輯
}

// 重構後組件(拆分為多個專門組件)
function UserDashboard({ user }) {
  return (
    <DashboardLayout>
      <UserInfoSection user={user} />
      <UserActivityList activities={user.activities} />
      <UserSettingsPanel settings={user.settings} />
    </DashboardLayout>
  );
}

Subagent 協作模式

1. 並行獨立模式

多個代理同時處理獨立任務:
Agent A → 任務 A(獨立)
Agent B → 任務 B(獨立)
Agent C → 任務 C(獨立)
最後整合所有產出

2. 流水線模式

代理按順序處理任務:
Planning Agent → 設計

Implementation Agent → 實作

Review Agent → 審查

Optimization Agent → 優化

3. 迭代改進模式

多個代理輪流改進同一產出:
Agent A → 初版實作

Agent B → 改進和補強

Agent C → 優化和重構

最終產出版本

4. 專門審查模式

各個專門代理從不同角度審查:
Security Agent → 安全性審查
Performance Agent → 效能審查
Accessibility Agent → 可訪用性審查

綜合審查報告

最佳實踐

1. 清楚的任務定義

好的任務定義:
✅ 「建立 Frontend Agent 負責建立登入表單,
    包含 email 和 password 欄位,使用 React Hook Form,
    整合 Yup 驗證,預計 30 分鐘完成」

不清楚的任務定義:
❌ 「處理前端部分」

2. 明確的介面約定

// 在啟動代理前定義清楚的介面
interface ProductListProps {
  products: Product[];
  onAddToCart: (productId: string) => void;
  loading?: boolean;
}

// 所有代理都遵循這個介面

3. 定期的同步檢查

# 定期檢查各代理的進度
Agent A 進度:50%
Agent B 進度:70%
Agent C 進度:30%

# 調整資源分配或預期時間

4. 系統化的整合流程

# 建立標準化的整合流程
1. 收集所有代理產出
2. 檢查介面一致性
3. 解決命名衝突
4. 整合測試
5. 驗證功能正確

常見問題

Q1:代理之間的工作重疊怎麼辦?

A

  1. 在任務分配時明確責任邊界
  2. 定期同步,協調工作進度
  3. 建立清楚的介面約定
  4. 使用協作工具追蹤進度

Q2:代理產出不一致怎麼辦?

A

  1. 在開始前定義統一的編碼標準
  2. 提供清晰的範例和模板
  3. 使用 linting 和 formatting 工具
  4. 建立 Review Agent 進行統一檢查

Q3:如何平衡代理數量和效率?

A

  • 小任務(1-2 小時):1-2 個代理
  • 中任務(半天):2-3 個代理
  • 大任務(1-2 天):3-5 個代理
  • 避免過多代理造成協作開銷

與其他 Skills 組合

推薦組合

Subagent-Driven + Dispatching Parallel Agents

subagent-driven-development → dispatching-parallel-agents

使用子代理驅動開發,並行處理多個任務

Writing Plans + Subagent-Driven Development

writing-plans → subagent-driven-development

先制定詳細計畫,再分配給各代理執行

Subagent-Driven Development 讓複雜任務可以系統化地分解和並行處理,是提升開發效率的強大方法!