Skills 工作流程指南
GST 開發團隊使用自開發的 Slash Command Skills 自動化軟體開發生命週期。每個 Skill 由特定角色(PM / Dev / Reviewer)在對應的 terminal 執行。
Skill 總覽
依角色分類
| 角色 | Skill | 說明 |
|---|---|---|
| PM | /generate-task | 為 Linear Issue 產出開發指令 |
| PM | /review-fix | 讀取 Review Report,產出修正指令 |
| PM | /create-pr | 建立 Pull Request |
| PM | /batch-pr | 批次建立多個 Sub-Issue 的 PR |
| PM | /plan-feature | 規劃多 Issue Feature 的執行計畫 |
| PM | /merge-check | 檢查跨 Repo PR 依賴是否可合併 |
| PM | /log-issue | 分析 Error Log 並建立 Linear Issue |
| PM | /status-overview | 跨團隊 Linear Issue 狀態總覽 |
| PM | /workspace-status | 所有 Repo 的 Git 狀態概覽 |
| PM | /onboard-project | 分析 .NET 專案,產出設定檔 |
| Dev | /pick-task | 取得 Linear Issue 並建立分支(支援 Resume 模式) |
| Dev | /done | 產出完成回報並更新 Linear 狀態 |
| Dev | /pick-next | 自動取得 Feature 的下一個 Sub-Issue |
| Dev | /gst-issue | 回報底層 Framework 問題到 GitHub |
| Reviewer | /review-pr | 結構化審查 PR |
| Reviewer | /re-review | PR 修正後重新審查 |
| Reviewer | /approve-merge | Approve + Squash Merge PR |
| Reviewer | /batch-review | 批次審查多個 PR |
標準開發流程
單一 Issue 流程
┌──────────────────────────────────────────────────────────────────┐
│ PM Terminal │
│ │
│ Step 1: /generate-task JOP-167 │
│ 研究程式碼 → 產出開發指令 → 寫入 Linear Comment │
│ │
│ Step 5: /create-pr JOP-167 │
│ 組裝 PR 內容 → 建立 PR │
│ │
│ Step 7: (Review 通過) → Squash Merge → 確認 Linear Done │
└──────────────────────────────────────────────────────────────────┘
│ ▲ ▲
▼ │ │
┌──────────────────────────────────────────────────────────────────┐
│ Dev Terminal │
│ │
│ Step 2: /pick-task JOP-167 │
│ 讀取 Linear → 建立分支 → 顯示開發指令 │
│ │
│ Step 3: (開發、測試、Commit) │
│ │
│ Step 4: /done JOP-167 │
│ 產出完成回報 → 寫入 Linear → Push │
└──────────────────────────────────────────────────────────────────┘
│ ▲
▼ │
┌──────────────────────────────────────────────────────────────────┐
│ Reviewer Terminal │
│ │
│ Step 6: /review-pr {repo}#{PR-number} │
│ 審查 → GitHub PR Review + Linear Comment │
│ APPROVE → 回 PM 合併 │
│ REQUEST_CHANGES → 回 PM 執行 /review-fix │
└──────────────────────────────────────────────────────────────────┘
Review Fix 迴圈
Reviewer: REQUEST_CHANGES
↓
PM: /review-fix JOP-167 → 產出修正指令
↓
Dev: /pick-task JOP-167 → 自動偵測 Resume 模式 → 修正 → Push
↓
Reviewer: /re-review {repo}#{PR} → APPROVE 或再次 REQUEST_CHANGES
多 Issue Feature 流程
適用於有 Parent Issue + 多個 Sub-Issue 的功能開發:
PM: /plan-feature GST-198 → 分析 Sub-Issues → 決定執行順序
↓
Dev: /pick-next GST-198 → 自動找到下一個可執行的 Sub-Issue
↓
Dev: 開發 → /done → /pick-next GST-198(循環)
↓ (全部完成)
PM: /batch-pr GST-198 → 批次建立所有 Sub-Issue 的 PR
↓
Reviewer: /batch-review {repo}#{start}-{end} → 批次審查
↓
PM/Reviewer: 依 Phase 順序 Merge
Skill 互動關係
┌──────────────────┐
│ /status-overview │
│ /workspace-status │
└────────┬─────────┘
│ 評估狀態
▼
┌──────────────────────────┐
│ /plan-feature │ 多 Issue Feature
│ 或 /generate-task │ 單一 Issue
│ 或 /log-issue │ Error 驅動
└──────────┬───────────────┘
│ 開發指令寫入 Linear
▼
┌──────────────────────────┐
│ /pick-task │ 單一 Issue
│ 或 /pick-next │ 多 Issue Feature
└──────────┬───────────────┘
│ 建立分支、開發
▼
┌──────────────────────────┐
│ /done │
└──────────┬───────────────┘
│ 完成回報
▼
┌──────────────────────────┐
│ /create-pr 或 /batch-pr │
└──────────┬───────────────┘
│ PR 建立
▼
┌──────────────────────────┐
│ /review-pr 或 /batch-review │
└──────────┬───────────────┘
│
┌─────────┴──────────┐
▼ ▼
APPROVE REQUEST_CHANGES
│ │
▼ ▼
/approve-merge /review-fix
│
▼
/pick-task (Resume)
│
└──→ /re-review
Linear Comment 標記約定
Skills 透過特定的 Comment 標題互相串接:
| 標題 | 產出者 | 消費者 | 說明 |
|---|---|---|---|
## 開發指令 | /generate-task, /plan-feature, /log-issue | /pick-task, /pick-next | 開發任務指令 |
## 完成回報 | /done (Normal) | /create-pr, /review-fix | 開發完成報告 |
## 修正回報 | /done (Review Fix) | /re-review | Review 修正完成報告 |
## 審查結果 | /review-pr | /review-fix | PR Review 摘要 |
## 審查修正指令 | /review-fix | /pick-task (Resume) | PR Review 修正指令 |
## 執行計畫 | /plan-feature | /pick-next, /batch-pr | Feature 執行順序 |
警告
修改這些標題時必須同步更新所有相關 Skill。
Hooks 自動防護
| Hook | 攔截內容 | 範例 |
|---|---|---|
| Commit 格式 | 非 conventional commit | added stuff → 阻擋 |
| 禁止字樣 | 程式碼/commit 含禁止詞 | 歸屬標記 → 阻擋 |
| 危險操作 | force push、push 共用分支 | git push --force → 阻擋 |
| 跨 Repo 編輯 | 修改自身 repo 外的檔案 | App 改 Core/ 下檔案 → 阻擋 |