Community生產力與協作github.com

gvkhosla/compound-engineering-pi

分類與分派 CLI 待辦事項系統中的發現結果

compound-engineering-pi 是什麼?

這個 AI 代理技能用於分類與分派(triage)來自程式碼審查、安全稽核或效能分析的發現結果,並將它們轉換成結構化的 CLI 待辦事項系統。它會逐一呈現每個發現(issue)並引導使用者決定:將其加入待辦清單、跳過該項目,或進行自訂修改。當選擇「是」時,技能會自動建立或更新對應的待辦事項檔案,包含 YAML 前置元資料、問題描述、建議解決方案、驗收條件與工作紀錄;並將檔案名稱中的狀態從 `pending` 改為 `ready`。若選擇跳過,則會刪除對應的待辦檔案。此技能特別適合與 Claude Code、Cursor 等支援檔案操作與結構化輸出的 AI 代理平台搭配使用,幫助團隊系統化地追蹤與管理技術債務。其設計強調在分類過程中「不要撰寫任何程式碼」,確保分類階段專注於決策而非實作。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gvkhosla/compound-engineering-pi/tree/HEAD/skills/triage

Installed? Explore more 生產力與協作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

  • 先將 /model 設定為 Haiku
  • 然後從 .context/compound-engineering/todos/ 和舊版 todos/ 目錄讀取所有待辦事項

逐一呈現所有發現、決策或問題以供分類。目標是逐一檢視每個項目,並決定是否要將其加入 CLI 待辦事項系統。

重要:分類期間請勿撰寫任何程式碼!

此指令適用於:

  • 分類程式碼審查發現
  • 處理安全稽核結果
  • 審查效能分析
  • 處理任何其他需要追蹤的分類結果

工作流程

步驟 1:呈現每個發現

對於每個發現,請以下列格式呈現:

---
問題 #X:[簡短標題]

嚴重性:🔴 P1(嚴重) / 🟡 P2(重要) / 🔵 P3(額外功能)

類別:[安全性/效能/架構/錯誤/功能/其他]

說明:
[問題或改善項目的詳細說明]

位置:[檔案路徑:行號]

問題情境:
[逐步說明哪裡出了問題或可能發生什麼]

建議解決方案:
[如何修復]

預估工時:小(< 2 小時) / 中(2-8 小時) / 大(> 8 小時)

---
您要將此項目加入待辦清單嗎?
1. 是 - 建立待辦檔案
2. 下一個 - 跳過此項目
3. 自訂 - 修改後再建立

步驟 2:處理使用者決策

當使用者說「是」時:

  1. 更新現有待辦檔案(若存在)或 建立新檔案名稱:

    若待辦事項已存在(來自程式碼審查):

    • 將檔案從 {id}-pending-{priority}-{desc}.md 重新命名為 {id}-ready-{priority}-{desc}.md
    • 更新 YAML 前置元資料:status: pending → status: ready
    • 保留 issue_id、priority 和 description 不變

    若建立新的待辦事項:

    {next_id}-ready-{priority}-{brief-description}.md
    

    優先級對應:

    • 🔴 P1(嚴重)→ p1
    • 🟡 P2(重要)→ p2
    • 🔵 P3(額外功能)→ p3

    範例:042-ready-p1-transaction-boundaries.md

  2. 更新 YAML 前置元資料:

    ---
    status: ready # 重要:從 "pending" 改為 "ready"
    priority: p1 # 或 p2、p3,視嚴重性而定
    issue_id: "042"
    tags: [category, relevant-tags]
    dependencies: []
    ---
    
  3. 填入或更新檔案內容:

    # [問題標題]
    
    ## 問題陳述
    [來自發現的說明]
    
    ## 發現結果
    - [關鍵發現]
    - 位置:[檔案路徑:行號]
    - [情境細節]
    
    ## 建議解決方案
    
    ### 選項 1:[主要解決方案]
    - **優點**:[益處]
    - **缺點**:[若有缺點]
    - **工時**:[小/中/大]
    - **風險**:[低/中/高]
    
    ## 建議行動
    [在分類階段填入 - 具體行動計畫]
    
    ## 技術細節
    - **受影響檔案**:[列出檔案]
    - **相關元件**:[受影響的元件]
    - **資料庫變更**:[是/否 - 若是請描述]
    
    ## 資源
    - 原始發現:[此問題的來源]
    - 相關問題:[若有的話]
    
    ## 驗收標準
    - [ ] [具體的成功標準]
    - [ ] 測試通過
    - [ ] 程式碼審查通過
    
    ## 工作紀錄
    
    ### {日期} - 核准工作
    **執行者:** Claude 分類系統
    **動作:**
    - 問題已於分類階段核准
    - 狀態從 pending 變更為 ready
    - 準備好被接手並開始工作
    
    **學習心得:**
    - [背景資訊與見解]
    
    ## 備註
    來源:{日期} 的分類工作階段
    
  4. 確認核准:「✅ 已核准:{new_filename}(問題 #{issue_id})- 狀態:ready → 可以開始工作」

當使用者說「下一個」時:

  • 刪除待辦檔案 - 從目前位置移除,因為它不相關
  • 跳至下一個項目
  • 記錄跳過的項目以便總結

當使用者說「自訂」時:

  • 詢問要修改什麼(優先級、說明、細節)
  • 更新資訊
  • 呈現修改後的版本
  • 再次詢問:是/下一個/自訂

步驟 3:持續處理直到全部完成

  • 逐一處理所有項目
  • 使用檔案型待辦事項(todos/ + /skill:file-todos)追蹤以確保可見性
  • 不要在項目之間等待核准 - 持續進行

步驟 4:最終總結

所有項目處理完畢後:

## 分類完成

**總項目數:** [X] **已核准的待辦事項(ready):** [Y] **已跳過:** [Z]

### 已核准的待辦事項(可開始工作):

- `042-ready-p1-transaction-boundaries.md` - 交易邊界問題
- `043-ready-p2-cache-optimization.md` - 快取效能改善 ...

### 已跳過的項目(已刪除):

- 項目 #5:[原因] - 已移除
- 項目 #12:[原因] - 已移除

### 變更摘要:

分類期間,以下狀態更新已發生:

- **Pending → Ready:** 檔案名稱與前置元資料已更新,反映已核准狀態
- **已刪除:** 跳過發現的待辦檔案已移除
- 每個已核准的檔案目前在 YAML 前置元資料中都有 `status: ready`

### 後續步驟:

1. 檢視已核准且可開始工作的待辦事項:
   ```bash
   ls .context/compound-engineering/todos/*-ready-*.md todos/*-ready-*.md 2>/dev/null
  1. 開始處理已核准的項目:

    /resolve-todo-parallel  # 有效率地處理多個已核准項目
    
  2. 或挑選個別項目來處理

  3. 處理過程中,更新待辦事項狀態:

    • Ready → In Progress(在您的本地情境中,隨工作進行更新)
    • In Progress → Complete(重新命名檔案:ready → complete,更新前置元資料)

## 範例回應格式


問題 #5:多步驟操作缺少交易邊界

嚴重性:🔴 P1(嚴重)

類別:資料完整性 / 安全性

說明:GoogleOauthCallbacks concern 中的 google_oauth2_connected 回呼執行多次資料庫操作,但沒有交易保護。如果任何步驟中途失敗,資料庫將處於不一致的狀態。

位置:app/controllers/concerns/google_oauth_callbacks.rb:13-50

問題情境:

  1. User.update 成功(電子郵件已變更)
  2. Account.save! 失敗(驗證錯誤)
  3. 結果:使用者電子郵件已變更,但沒有關聯的 Account
  4. 下次登入嘗試完全失敗

未受交易保護的操作:

  • 使用者確認(第 13 行)
  • 等候清單移除(第 14 行)
  • 使用者個人資料更新(第 21-23 行)
  • 帳戶建立(第 28-37 行)
  • 頭像附件(第 39-45 行)
  • Journey 建立(第 47 行)

建議解決方案:將所有操作包裝在 ApplicationRecord.transaction do ... end 區塊中

預估工時:小(30 分鐘)


您要將此項目加入待辦清單嗎?

  1. 是 - 建立待辦檔案
  2. 下一個 - 跳過此項目
  3. 自訂 - 修改後再建立

## 重要的實作細節

### 分類期間的狀態轉換

**選擇「是」時:**
1. 重新命名檔案:`{id}-pending-{priority}-{desc}.md` → `{id}-ready-{priority}-{desc}.md`
2. 更新 YAML 前置元資料:`status: pending` → `status: ready`
3. 在 Work Log 中新增分類核准記錄
4. 確認:「✅ 已核准:`{filename}`(問題 #{issue_id})- 狀態:**ready**」

**選擇「下一個」時:**
1. 從目前位置刪除待辦檔案
2. 跳至下一個項目
3. 系統中不會保留該檔案

### 進度追蹤

每次以標題呈現待辦事項時,請包含:
- **進度:** X/Y 已完成(例如「3/10 已完成」)
- **預估剩餘時間:** 根據目前的進展速度估算
- **節奏:** 監控每個發現的處理時間,並據此調整估算

範例:

進度:3/10 已完成 | 預估剩餘時間:約 2 分鐘


### 分類期間請勿撰寫程式碼

- ✅ 呈現發現結果
- ✅ 做出是/下一個/自訂的決定
- ✅ 更新待辦檔案(重新命名、前置元資料、工作紀錄)
- ❌ 不要實作修復或撰寫程式碼
- ❌ 不要加入詳細的實作細節
- ❌ 那是 /resolve-todo-parallel 階段的工作

完成後提供以下選項

```markdown
您接下來想做什麼?

1. 執行 /resolve-todo-parallel 來解決待辦事項
2. 提交待辦事項
3. 什麼都不做,休息一下

相關技能