Communitygithub.com

任務拆分

將 RFC、設計文件或完成的生產力思考會議轉化為團隊可獨立執行的 1 故事點任務,包含驗收標準、需修改的檔案與相依性。

任務拆分 是什麼?

此技能旨在協助工程團隊將大型設計文件(如 RFC、架構決策記錄 ADR)或生產力思考會議的筆記,拆解成大小約為 1 故事點的開發任務。其核心理念是確保每個任務能被單一工程師在一天內完成、可獨立審查與合併,且不引入未知風險。支援的平台包括任何使用任務追蹤系統(如 Linear、Jira、GitHub Issues)的團隊,並能自動產生與這些系統同步的任務清單。技能運作時會先讀取指定文件,若缺少關鍵資訊則會主動提問;接著依據「可步行骨架」等策略進行切割,確保風險提前暴露。輸出格式包含標準化的 `.tasks.md` 檔案、里程碑分組、相依性圖表(Mermaid),並提供單一任務或整個專案的後續執行指令(如 `/implement-task`)。對於探索性任務,它會要求設定時間盒與明確的問題陳述,並在決策後自動更新既有待辦事項,無需從頭開始。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/g-ki/agent-skills/tree/HEAD/skills/task-breakdown

在你喜歡的 AI 中提問

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

說明文件

任務拆分 是做什麼的?

將設計轉化為團隊中任何工程師都能獨立接取、完成並合併的 1 故事點待辦事項清單。

輸入

$ARGUMENTS

  • 如果提供了路徑,則讀取該文件。
  • 否則,使用此對話或磁碟上最新的 RFC 或來自生產力思考會議的 *.notes.md 檔案。這些通常是本地的、未追蹤的檔案(請在 git 忽略的資料夾中尋找,例如 .rfcs/,然後是 docs/rfcs/、docs/adr/、rfcs/)。如果找不到,請詢問要拆分哪個文件或設計。
  • 如果來源文件存在會阻礙拆分的缺口(例如未選擇的設計、沒有推出方法),請列出這些缺口並在編造答案前先詢問。較小的缺口可以改為創建探索型任務。

「1 故事點」的定義

當一個任務全部符合以下條件時,它才是 1 點。如果有一項不符合,就將其拆分:

  1. 一人、大約一天或更少,包含測試與審查修正。
  2. 一個可審查的 PR,具有單一目的。審查者無需閱讀其他未合併的 PR 就能理解。
  3. 可獨立合併。 合併後主線保持綠色且可發布,這通常意味著新行為位於功能開關之後或尚未串接。
  4. 可測試。 它包含 1–5 個非作者也能檢查的驗收標準。
  5. 無隱藏未知項。 如果實作者必須先研究才能知道該做什麼,那它是一個探索型任務,而非故事。

如果團隊有自己的點數定義,請遵循他們的定義,並在輸出頂部註明。

如何拆分

在拆分之前先閱讀程式碼:確認每個任務所觸及的檔案、模組、架構與測試確實存在,並在任務中明確指出它們的名稱。引用真實路徑的任務會更常被接取;模糊的任務則會滯留在待辦事項中。

從可步行骨架開始:最薄的端到端切片,能證明設計在生產環境中可行(通常放在功能開關後),然後再將其加厚。這樣做能將風險提前暴露,而不是等到最後一個任務才發現整合問題。

當一個任務太大時,以下拆分方法通常有效:

  • 準備,然後變更。 先抽出純粹的重構(「讓變更變得容易,然後進行容易的變更」),並在重構前用測試鎖定當前行為。
  • 擴展 / 遷移 / 收縮 用於架構與 API 變更:添加新欄位或端點、回填或雙重寫入、切換讀取,然後移除舊路徑。每個階段都是一個獨立的任務。
  • 按功能開關後的層級:資料模型 → 服務邏輯 → API → UI,每個都可獨立合併,因為開關是關閉的。
  • 先讀取路徑再寫入路徑,以及先快樂路徑再處理邊界案例與錯誤處理。
  • 按變體:在第一個任務建立模式後,每個提供者、檔案類型或用戶端各一個任務。
  • 用於未知項的探索型任務:設定時間盒(≤ 1 天),產出是決策加上後續的任務,而非生產程式碼。為每個探索型任務設定一個有答案的 問題: 與時間盒。依賴於該決策的任務僅在安全的範圍內進行拆分,並附上備註說明待探索型任務決定後將再細化。將探索型任務放在前面:它們會阻塞其後的所有工作。

不要遺漏非功能程式碼的工作:功能開關的設定與移除、指標/警報/儀表板、Runbook 或文件更新、資料回填、分階段推出步驟,以及清理舊路徑。這些通常是「快完成了」的專案停滯不前的原因。

不要為了拆分而拆分:一個只有與另一個任務合併在一起才有意義的任務,應該合併為一個任務,或者應該沿著不同的界線重新切割這對任務。

輸出

  1. 使用 templates/tasks.md 將待辦事項清單寫入來源 RFC 旁邊的 <rfc-name>.tasks.md 檔案。像 RFC 一樣,它是一個本地工作檔案,預設為未追蹤;如果其資料夾尚未被 git 忽略,請將其添加到 .git/info/exclude。將任務編號為 T-01、T-02……以便相依性可以引用它們,將所有狀態設為 open,並填寫用於分支名稱的專案 slug。保持欄位名稱與模板完全相同,因為 /implement-task 和 /deliver-project 會讀取它們。
  2. 將任務分組到與 RFC 階段相符的里程碑中,每個里程碑都以可演示或可發布的結果結束。
  3. 包含相依性圖:哪些任務可以並行執行,以及關鍵路徑。當任務超過約 8 個時,一個小的 Mermaid 圖表會很有用。
  4. 在對話中提供一個簡短摘要:每個里程碑的任務數量、有多少可以立即開始、關鍵路徑、探索型任務,以及任何您不確定是否真的是 1 點數的任務。請用戶標記看起來太大、太小或順序錯誤的任務,並進行修改。
  5. 發布到團隊的追蹤系統。 假設團隊使用一個(Linear、Jira、GitHub Issues……)。一旦用戶對拆分結果感到滿意,提議透過已連接的追蹤工具進行發布;如果沒有連接任何工具,請說明哪種連接器會有幫助,並提供一個包含欄位 ID, 標題, 描述, 驗收標準, 故事點數, 里程碑, 依賴於, 標籤 的 CSV 作為備用方案。僅在用戶確認後才發布,因為它對整個團隊是可見的。對於每個任務,建立一個議題(Issue),其中包含標題、一個獨立的描述(上下文、範圍、檔案、超出範圍、驗收標準)、估計值為 1、里程碑,以及若追蹤系統支援則設定阻塞關係的相依性。然後將每個議題的 ID 與連結寫入本地檔案中任務的 追蹤器: 欄位。
  6. 指向下一步:/implement-task <任務-ID> 用於單個任務,/spike-task <任務-ID> 用於探索型任務,或 /deliver-project <任務檔案> 用於讓一群代理執行整個待辦事項清單。

如果來源 RFC 有執行計畫章節,請更新它以連結任務檔案,而不是重複列出清單。

探索型任務後的細化

當收到一個已決策的探索型任務的決策記錄(狀態為 decided)時,請更新待辦事項清單,而不是從頭開始:

  1. 套用記錄中批准的待辦事項變更:添加任務(繼續使用 T-NN 編號,絕不重複使用 ID)、更改受影響任務的範圍、標準或相依性,並將已移除的任務標記為 canceled 並附上原因,而不是刪除它們。
  2. 重新檢查每個已更改或新的任務是否符合 1 點測試,並更新摘要、相依性圖與關鍵路徑。
  3. 更新記錄中列出的 RFC 章節。
  4. 同步追蹤系統:建立新的議題,更新已變更的議題,並取消已移除的議題,將新的金鑰寫入任務檔案中。如果用戶已一起批准了決策及其待辦事項變更,則此批准涵蓋同步;否則請先確認。
  5. 將探索型任務設為 done 並用幾行字總結變更內容。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能