Community程式設計與開發github.com

rizqinrr/get-tasks

將已核准的 PRD 轉換為一組可執行的任務檔案。當 PRD 存在於 docs/prd/ 且需要可執行任務以進行實作時使用。當使用者說出「get tasks」、「breakdown PRD」、「pecah jadi task」或「bikin task list」時使用。為每個任務產出一個包含驗收標準、五種驗證方式、阻擋邊界、回滾程序的詳細檔案、一份索引這些任務的計劃文件,以及一個平行化分類。

get-tasks 是什麼?

`get-tasks` 是一個專業技術技能,其核心功能是將核准的 PRD(產品需求文件)轉換為一組可執行的任務檔案。它解決了一個常見問題:PRD 本身不是一個計劃,它只說明系統「做什麼」和「為什麼做」,但沒有說明工作順序、哪些部分可以平行建構、風險點在哪裡,或如何驗證某個切面已完成。此技能透過建立依賴圖、進行垂直切割、為每個任務生成獨立的檔案(包含驗收標準、多種驗證方式、阻擋列表和回滾程序)來填補這個缺口。 此技能特別適合 Claude Code、Cursor 或 Codex 等 AI 代理,因為它產出的任務檔案是完全自包含的,任何代理只需讀取一個任務檔案就能知道要編輯哪些檔案、執行哪些測試、以及滿足哪些完成條件,無需重新閱讀整個 PRD。其流程分為九個階段,從定位 PRD、提取需求、建立依賴圖、垂直切割任務、撰寫任務檔案、排序與大小調整、撰寫計劃文件、使用者核准,到最終寫入與驗證。它能處理單一模組或跨模組的計劃,並支援平行化分類,使團隊能同時處理多個獨立任務。此技能主要適用於已存在的 PRD,若無 PRD,則會引導使用者先執行 `get-prd`。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/rizqinrr/viserys-agent/tree/HEAD/skills/get-tasks

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

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

說明文件

取得任務

概述

get-tasks 將已核准的 PRD 轉換為一組可執行的任務。每個任務都會寫入自己的檔案,大小適合一個專注的工作階段,按依賴關係排序,並附帶驗收標準、驗證步驟、阻擋列表和回滾程序。

這個技能之所以獨立存在,是因為:PRD 不是一個計劃。PRD 說明系統做什麼以及為什麼做。它完全沒有提及工作順序、哪些部分可以平行建構、風險點在哪裡,或者如何證明某個切面已完成。將 PRD 直接轉換成程式碼,不是產生一個英雄式的單次變更,就是一個任意順序,然後在中途失敗。

get-tasks 提供了缺失的層面。它讀取 PRD,繪製真實的依賴結構,將工作切割成垂直切面,並將每個切面寫成一個獨立的工件,讓代理(或人類)無需重新閱讀整個 PRD 即可接手。

此技能借鑒了三個來源:

  1. 依賴優先分解與垂直切割 — 建立依賴圖,進行垂直而非水平切割,調整每個任務的大小,並設置檢查點。這確保了正確的順序。
  2. 驗證驅動的執行 — 每個任務都宣告如何透過多種驗證類型來驗證,而不僅僅是「測試通過」,並包含當步驟失敗時的重規劃程序。
  3. 阻擋邊界與追蹤子彈 — 每個任務都明確說明它被什麼阻擋,因此任何其阻擋者已完成的任务都可以立即開始。

輸出是一個任務檔案目錄:tasks/<name>/task-01.md、task-02.md,依此類推,按依賴順序編號,加上 tasks/<name>/plan.md 作為索引。阻擋任務會獲得較低的編號。

本技能的範圍

get-tasks 刻意設計得全面。它吸收了幾個較窄技能各自部分完成的內容,以便使用者只需一個技能就能從核准的 PRD 過渡到可追蹤、可執行的計劃。此處的所有內容都與這個單一任務相關:

關注點處理位置
讀取 PRD 並提取承諾階段 1
依賴結構與排序階段 2
垂直切割與追蹤子彈階段 3
大規模重構(擴展、遷移、收縮)階段 3
每個任務的規格階段 4
大小調整與分割規則階段 5
檢查點與閘門階段 5
平行化分類平行化分類法
人類可讀的計劃摘要、風險、決策階段 6
追蹤器 vs. 檔案目標任務清單目標
寫入前使用者核准階段 7
寫入、同步與驗證工件階段 8
處理失敗與重新規劃任務失敗時重新規劃

它故意設計得很長。長度就是重點:任何一個遺漏了這些項目的分解,都會產生看似完成但實際上並未完成的任務。如果你傾向於略讀到模板,請改為閱讀階段 2、3 和 5——這些才是分解實際上會失敗的地方。

本技能不做的事:它不編寫程式碼,不執行任務,也不取代 PRD。它將一份文件轉換為一組文件。

何時使用

在以下情況使用此技能:

  • 存在 PRD、規格或需求文件,且工作需要轉換為可執行的任務
  • 使用者說「get tasks」、「breakdown PRD」、「pecah jadi task」、「bikin task list」或「turn this into tasks」
  • 任務感覺太大而無法開始,需要分解
  • 你需要估計範圍、排序工作,或找出可以平行進行的部分
  • 你即將開始實作會觸及多個檔案的事項,且尚無任務清單

何時不使用:

  • 尚無 PRD — 先執行 get-prd,然後再回來
  • 變更從任何角度來看都是一個單一任務(一個檔案,一個明顯的編輯)— 直接做就好了
  • 完整的任務分解已存在於 tasks/ 中,且你已準備好開始實作 — 直接按順序執行任務

流程

get-tasks 分為九個階段運行。每個階段都有退出條件。在條件未滿足之前,不要進入下一個階段。

0. 定位 PRD       -> 哪個文件是來源?
1. 讀取並提取     -> PRD 承諾我們要做什麼?
2. 依賴圖         -> 什麼依賴什麼?
3. 垂直切面       -> 追蹤子彈,而非水平層
4. 撰寫每個任務   -> 每個任務一個檔案,完全指定
5. 排序、大小調整、檢查點 -> 順序、大小和驗證閘門
6. 撰寫計劃文件   -> 索引任務的人類可讀摘要
7. 詢問使用者     -> 粒度、阻擋邊界、合併或分割
8. 寫入並驗證     -> 磁碟上的檔案,待辦事項已同步,驗證器綠色

任務分解的通用原則

  1. 自然語言節奏: 以使用者使用的語言(印尼語或英語)呈現分解和對話式摘要,同時保持檔案名稱、git 術語和程式碼記號為標準形式(task-01.md、branch、commit、TDD)。
  2. 可自主執行: 在 tasks/<feature>/task-*.md 中生成的每個任務檔案都必須完全自包含。任何一個編碼代理都應該能夠只閱讀該單一任務檔案,就知道要編輯哪些檔案、執行哪些測試,以及必須滿足哪些完成條件,而無需猜測。
  3. 優先垂直切割而非水平層: 切勿建立純粹是「設定後端」或「設定前端」的任務,如果它們無法端到端驗證的話。垂直切割(例如「儲存和查詢 SKU 端點與 UI 觸發器」),以便每個任務都能提供可測試的價值。

規劃是唯讀的。 階段 0 到 7 只產生文件和問題,不產生程式碼。在這些階段期間,請勿建立、編輯或刪除任何原始碼檔案。在使用者核准之前,僅允許在 tasks/ 下寫入任務檔案。如果你在分解工作時發現自己在修復錯誤或新增函數,請停下來:這屬於核准後的實作階段,並且屬於你尚未撰寫的任務。


階段 0:定位 PRD

在執行任何其他操作之前,先找到來源文件。

  1. 依慣例優先。 get-prd 儲存到 docs/prd/<name>.md。先查看那裡。
  2. 然後擴大搜尋。 如果 docs/prd/ 是空的,請尋找使用者命名的 PRD。接受問題主體或貼上的需求文件——此技能不受格式限制,只有階段 1 中的提取會假設 PRD 章節名稱。
  3. 如果有多個候選文件,不要猜測。列出它們並詢問哪個文件管轄此工作。
  4. 如果沒有任何文件存在,請停下來並說明原因。不要發明需求。引導使用者執行 get-prd 以進行完整的訪談到 PRD 的過程。

記錄你正在處理的確切路徑。後續的每個階段都會引用它。

對於一個多模組的專案,如果 PRD 按模組 id 分割(docs/prd/identity.md、docs/prd/billing.md),請確認此分解涵蓋哪個模組。每個模組一個分解,按照能力圖宣告的建構順序進行。

退出條件: 已識別出單一來源文件,並且其路徑已記錄在案。


階段 1:讀取並提取

完整閱讀 PRD。然後,明確提取驅動分解的內容:

PRD 章節你從中提取的內容
目標每個任務最終服務的最終狀態
使用者故事必須可行的可觀察行為,候選驗收標準
技術決策模組、介面、架構變更、合約——這些定義了任務之間的實際邊界
專案結構工件存放位置,這限制了「可能觸及的檔案」
指令每個任務將引用的具體驗證指令
測試策略什麼是好的測試,以及測試應放在哪裡
邊界總是 / 先詢問 / 絕不 — 絕不項目會成為每個任務的硬性限制
超出範圍明確的非目標;這裡沒有任何東西會成為任務
成功標準最終閘門;最後一個檢查點會根據它進行驗證

規則:

  • 現在還不要開始分割。 先提取,再分解。邊閱讀邊分割會產生根據你閱讀文件的順序來塑造的任務。
  • 將模糊的項目轉換為可檢查的陳述。 如果 PRD 說「儀表板應該很快」,任務的驗收標準就應該是一個數字,如果 PRD 沒有給出數字,則應將其作為阻擋事項提出,而不是默默地選擇一個數字。
  • 標記缺口。 如果某個需要的章節缺失或為空,請命名它。缺少測試策略意味著每個任務的驗證區塊將在之後被發明出來;現在就提出來。
  • 絕不發明需求。 如果 PRD 沒有說,它就不是一個任務。

退出條件: 提取表已填入,並且任何缺口都已向使用者提出。


階段 2:繪製依賴圖

在撰寫任何任務之前,先繪製什麼依賴什麼。這是決定順序並防止最昂貴的錯誤類型的階段:在生產者存在之前就建構消費者。

繪製圖表。具體,而非抽象:

資料庫架構
    |
    +-- API 模型和型別
    |       |
    |       +-- API 端點
    |       |       |
    |       |       +-- 前端 API 客戶端
    |       |               |
    |       |               +-- UI 元件
    |       |
    |       +-- 驗證邏輯
    |
    +-- 種子資料和遷移

規則:

  • 邊線指向生產者到消費者。 箭頭表示「目標需要先有來源」。
  • 無循環。 如果兩個東西互相需要,它們就是一個任務,或者必須先將它們之間的介面定義為一個獨立的任務。
  • 介面即邊界。 當兩個任務在一個合約(型別、端點形狀、架構)處相遇時,在較早的任務中定義合約,並在較晚的任務中使用它。切勿讓兩個任務獨立發明它。
  • 找到前緣。 前緣是所有阻擋者都已完成的任务。這是現在可以開始的事項。對於線性鏈,前緣只有一個任務寬;對於大型專案,它可能有好幾個。
  • 命名平行機會和硬序列。 獨立的切面可以平行進行。遷移、共享狀態變更以及任何觸及相同合約的事項都必須按順序進行。

退出條件: 依賴圖已存在,具有清晰的前緣,且無循環。


階段 3:垂直切割

將工作切割成追蹤子彈:穿過該功能所需的每個層級的狹窄但完整的路徑。

水平切割是預設的錯誤。 它看起來整齊,但直到最後一個任務才產生可運行的東西:

錯誤(水平):
任務 1:建立整個資料庫架構
任務 2:建立所有 API 端點
任務 3:建立所有 UI 元件
任務 4:連接所有東西

在任務 3 結束時,沒有任何東西能運作。沒有人可以展示任何東西。任務 1 中的錯誤假設在任務 4 中才被發現。

垂直切割在每一步都會產生可運作的軟體:

正確(垂直):
任務 1:使用者可以建立帳戶   (註冊的架構 + API + UI)
任務 2:使用者可以登入              (驗證的架構 + API + UI)
任務 3:使用者可以建立任務       (任務的架構 + API + UI)
任務 4:使用者可以查看任務清單  (查詢 + API + 清單檢視的 UI)

一個好的切面的規則:

  • 它穿過該行為所需的每個層級 — 資料、邏輯、介面、測試。
  • 它可以獨立展示或驗證。 如果你無法描述如何確認它有效,那它就不是一個切面。
  • 它適合一個專注的工作階段 — 大約一個全新的上下文視窗。
  • 它提供行為,而不是結構。 「新增使用者資料表」不是一個切面;「使用者可以註冊」才是。

大規模重構是例外。 大規模重構是一種機械性的變更(重新命名欄位、重新鍵入共享符號),其影響範圍遍及整個程式碼庫,因此沒有任何垂直切面可以順利通過。不要強迫它變成追蹤子彈。將其排序為擴展、遷移、收縮:

  1. 擴展 — 在舊的旁邊添加新的形式,這樣什麼都不會中斷。
  2. 遷移 — 按影響範圍批次(按套件、按目錄)移動呼叫端,每個批次都是一個獨立的任務,被擴展任務阻擋,並且由於舊形式仍然存在,因此批次之間能保持建構綠色。
  3. 收縮 — 當不再有呼叫者時刪除舊形式,這是被每個遷移批次阻擋的任務。

即使批次本身無法單獨保持綠色,也請保持相同的順序,但讓它們共享一個整合分支,該分支所有批次都阻擋一個最終的整合與驗證任務,其中保證綠色。

退出條件: 每一項工作都恰好屬於一個任務,並且每個任務都是一個垂直切面或一個宣告的大規模重構步驟。


階段 4:撰寫每個任務

將每個任務寫入自己的檔案。始終是一個任務一個檔案——絕對不要使用包含所有任務的單一組合文件。

輸出路徑: tasks/<name>/task-NN.md,其中 <name> 與 PRD 的名稱相符(因此位於 docs/prd/billing.md 的 PRD 會產生 tasks/billing/task-01.md)。從 01 開始編號,按依賴順序——阻擋任務獲得較低的編號。

任務檔案模板:

# 任務 NN:<簡短描述性標題>

**來源:** docs/prd/<name>.md — <此任務實作的 PRD 章節>

**要建構的內容:** 此任務使能運作的端到端行為,從使用者的角度來看。不是按層次劃分的實作清單。如果你無法將其描述為使用者或呼叫者可以觀察到的行為,請重新調整任務。

## 驗收標準

- [ ] <特定、可測試的條件>
- [ ] <特定、可測試的條件>

每個標準都必須可以由未撰寫該任務的人檢查。「正常運作」不是一個標準。「使用者可以使用電子郵件和密碼註冊,並被重新導向到儀表板」才是。

## 驗證

- [ ] 測試通過:<儲存庫的聚焦測試指令或要先撰寫的新測試>
- [ ] 建構成功:<儲存庫的建構指令>
- [ ] 輸出相符:<預期的模式或必須存在的工件>
- [ ] 無回歸:<完整測試套件或相關子集>
- [ ] 品質與安全性:<輸入驗證、認證邊界、遵循……

……(由於原文截斷,此處結尾不完整,但翻譯會忠於原文格式)

Individual skills in this repo

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

相關技能