ワンクリックで
kanban-verify-completed-task
針對由其他 AI 完結的任務,進行至少三次以上的重複檢查。嚴格驗證所有內容是否符合原始需求、測試檔與文件是否已完整更新,並確保所有測試檔已通過執行測試。適用於任務交接或交付前的品質把關。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
針對由其他 AI 完結的任務,進行至少三次以上的重複檢查。嚴格驗證所有內容是否符合原始需求、測試檔與文件是否已完整更新,並確保所有測試檔已通過執行測試。適用於任務交接或交付前的品質把關。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
接收使用者指定要歸檔的文件或資料夾,優先依 templates/8-Archived 規範完成搬移與 summary 建立。適用於使用者要求指定來源後直接歸檔,完成 summary 就停下等待下一步指令的情境。
不經 Spec,直接建立 Plan 文件到 2-Plans。預設不自動跨階段,並支援可用數字回答的固定問答流程。
先建立 Plan 文件並等待使用者確認;確認後自動從 Plan 推進到 Progressing、Testing、Done、Archived。適用於需要先看 plan 再連續執行後續階段的情境。
不經 Plan 拆解,直接建立 Spec 文件到 1-Specs。預設不自動跨階段,並支援可用數字回答的固定問答流程。
依 templates 規範建立 Spec,確認後拆解成 Plans。完成拆解後立即停止等待後續指令。支援可用數字回答的固定問答流程。
直接建立 Testing 任務文件到 4-Testing。預設只做測試文件與測試執行,並支援可用數字回答的固定問答流程。
SOC 職業分類に基づく
| name | kanban-verify-completed-task |
| description | 針對由其他 AI 完結的任務,進行至少三次以上的重複檢查。嚴格驗證所有內容是否符合原始需求、測試檔與文件是否已完整更新,並確保所有測試檔已通過執行測試。適用於任務交接或交付前的品質把關。 |
| version | 2.2.0 |
| last_updated | "2026-05-28T00:00:00.000Z" |
| effective_date | "2026-05-28T00:00:00.000Z" |
本 Skill 的工作有「主」與「從」之分,永遠不可顛倒:
🥇 主要工作(90% 比重,是真正交付的內容)
- 實際撰寫專案程式碼:依 spec 與 plan 的需求,在專案實際的
src/、lib/、app/等目錄下新增/修改/刪除程式碼- 實際撰寫測試程式碼:在專案實際的
tests/、__tests__/、spec/等目錄下新增/修改測試檔- 實際執行測試指令:跑
npm test、pytest、yarn jest等專案實際測試指令,確認 all green- 實際更新專案文件:README、
docs/、API 文件等隨功能變動同步更新🥈 次要工作(10% 比重,只是輔助記錄)
- kanban 任務文件的內容更新:填欄位、勾 checkbox、寫測試結果摘要
- kanban 資料夾與檔案搬移:跨階段
mv、建子資料夾、清理殘留❌ 絕對禁止的錯誤理解
- ❌ 把「處理任務」理解成「只搬 markdown 檔案 + 改 markdown 內容 + 寫 summary」
- ❌ 認為「資料夾結構正確 + 狀態欄位正確 + summary 寫好 = 任務完成」
- ❌ 在沒有實際撰寫專案程式碼、測試程式碼、執行測試的情況下,就把 kanban 文件推到
7-Done/或8-Archived/- ❌ 把「執行
mv與更新 markdown」當作「主要交付物」✅ 正確理解
- ✅ kanban 文件的階段轉換僅僅是「實作進度的記錄」,不是「工作本身」
- ✅ 每一個 kanban 任務文件背後,都必須對應到實際的專案程式碼變動
- ✅ 沒有實際的
git diff(程式碼變動)、沒有實際的測試輸出,就禁止把任務推進到7-Done/或8-Archived/- ✅ 寧可把 kanban 任務留在
3-Progressing/或4-Testing/等待補實作,也不可在沒實作的狀況下把它推進到 done/archived🚨 違規警報
若使用者在歸檔後檢查發現「kanban 文件已歸檔但專案程式碼根本沒動」,視為最嚴重的違規,等同欺騙使用者。本 Skill 為防止此類違規,在每個階段都加入「實作證據檢查」(見下方各階段強制規則與「🔴 歸檔前強制輸出檢查清單」Step C-2)。
本文件中提到的 templates/、scripts/、promps/、skills/,皆以目前語系內容根目錄為相對基準(例如 zh-TW/),不綁定 repo 根目錄固定路徑。
本 skill 的主要目的是作為「品質防線 (Quality Gate)」。當一個任務已由其他 AI(或開發者)標示完成時,透過本 skill 進行至少三次深度、交叉比對的重複檢查,確保:
本 skill 的真正驗證目標不是「測試有沒有通過」,而是「實際程式碼是否完整、正確、可維護地滿足需求文件」。
測試執行結果是必要證據,但只能作為其中一項證據。即使所有測試全綠,仍必須重新從需求文件出發,逐條追蹤到實際程式碼、測試案例與文件更新,確認沒有任何需求遺漏或需要補強之處。
每次 verify 都必須建立並維護「需求追蹤矩陣」,至少包含下列欄位,並寫入相關任務文件或 archived summary:
| 需求來源 | 需求描述 | 對應程式碼檔案 | 對應測試檔案 | 實際驗證方式 | 驗證結果 | 缺失 / 建議 / 補強事項 | 修復或修改紀錄 |
|---|---|---|---|---|---|---|---|
| Spec / Plan / README / 使用者描述 | 逐條列出,不得合併帶過 | 實際專案路徑 | 實際測試路徑 | 程式碼閱讀 / 測試 / 手動驗證 / 文件比對 | ✅ / ❌ / ⚠️ | 具體描述 | 實際修改內容與檔案 |
只要發現任何缺失、風險、建議或需要補強的地方,就必須記錄到任務文件中;完成修復後也必須補上「實際修復或修改內容」。紀錄不得只寫摘要,必須具體到檔案、函式、行為與驗證方式。
AI 執行本 skill 時,不得只做「是否通過」的二元判斷。每一輪 verify 都必須主動審查內容是否還有可以補充更完整、描述更清楚、測試更完善、實作更健壯或文件更一致的地方。
審查範圍至少包含:
每一項建議都必須分類並告知使用者:
| 類別 | 說明 | 是否阻擋 verify 通過 |
|---|---|---|
| 必須修復 | 不符合需求、會造成錯誤、測試不足以證明需求、文件與行為不一致 | 是 |
| 強烈建議補強 | 不一定造成錯誤,但會影響可維護性、可讀性、使用者理解或未來擴充 | 依情境判斷,需告知使用者 |
| 可選改善 | 屬於品質提升或後續優化,不阻擋本次 verify,但必須記錄 | 否 |
若有任何建議或可補充更完整之處,必須在對話中明確列出,並寫入任務文件的「Verify 查核紀錄」。若使用者同意處理,完成後必須補上「實際修復或修改內容」與「修復後再驗證結果」。
每份被 verify 的任務文件必須包含或補上以下區塊:
## Verify 查核紀錄
### 需求追蹤矩陣
| 需求來源 | 需求描述 | 對應程式碼檔案 | 對應測試檔案 | 實際驗證方式 | 驗證結果 | 缺失 / 建議 / 補強事項 | 修復或修改紀錄 |
|----------|----------|----------------|--------------|--------------|----------|------------------------|----------------|
### 查證出的缺失
- [ ] ...
### 補強建議
- ...
### 內容修改建議審查
| 類別 | 建議內容 | 影響範圍 | 建議處理方式 | 是否已告知使用者 | 後續狀態 |
|------|----------|----------|--------------|------------------|----------|
### 實際修復或修改內容
- ...
### 修復後再驗證結果
- 測試指令:
- 測試結果:
- 需求再比對結果:
若任務已進入 8-Archived/,上述內容也必須同步反映到 [spec-xxxxx]-summary.md 的對應章節或補充章節中。
$kanban-verify-completed-taskmy-project/8-Archived/2026-04-01-[spec-xxxxx]-feature/3 使用預設值,或輸入其他數字(最少 3 次)。強制執行至少三次的獨立檢查迴圈,每次檢查必須著重不同面向(例如:第一次逐條核對需求與程式碼、第二次核對文件、註解與測試覆蓋範圍、第三次執行測試並回頭確認測試是否真的覆蓋需求)。 只要在任一次檢查中發現需求遺漏、程式碼行為不符、測試不足、文件不同步、風險建議或測試失敗,必須立即將問題條列出來,寫入任務文件的 Verify 查核紀錄,並詢問使用者是否開始解決這些問題。如果使用者同意,則開始處理,處理完成後,自動開始跑下一輪檢查,一直反覆到所有輪數都完成,且沒有任何問題。 所有 verify 輪數完成且確認無缺失後,無論來源目前位於
1-Specs、2-Plans、3-Progressing、4-Testing、5-Re-testing、7-Done或8-Archived,都必須再執行一次 Archived 收尾流程;不得只停在總結報告,也不得把是否歸檔當成可省略選項。
進入任何階段前,必須先 Read 對應的 RULES 與 template 檔案,再依其規定的「資料夾命名」、「子資料夾結構」、「檔案命名」產出文件與目錄。禁止憑記憶或推測產出格式。
每個階段對應的「進入前必讀」清單:
階段 進入前必讀(依序) 1-Specs templates/COMMON_CONVENTIONS.md、templates/1-Specs/SPECS_RULES.md、templates/1-Specs/.specs-idea-to-docs-template.md2-Plans templates/2-Plans/PLANS_RULES.md、templates/2-Plans/PHASE_PRIORITY_GUIDELINES.md、templates/2-Plans/.plan-overview-template.md、templates/2-Plans/.plan-template.md3-Progressing templates/3-Progressing/PROGRESSING_RULES.md、templates/3-Progressing/.progressing-task-template.md4-Testing templates/4-Testing/TESTINGS_RULES.md、templates/4-Testing/.testing-task-template.md7-Done templates/7-Done/DONE_RULES.md、templates/7-Done/.done-task-template.md8-Archived templates/8-Archived/ARCHIVED_RULES.md、templates/8-Archived/.archived-summary-template.md強制執行順序(每階段都要做):
- 先 Read 該階段所有 RULES / template 檔(不得跳過或只讀標題)
- 依 RULES 的「資料夾結構範例」與「檔案命名規範」實際建立目錄樹
- 依 template 的欄位逐一填入內容(欄位不足填 placeholder,不得省略章節)
- 執行
mv搬移檔案(嚴禁cp)- 完成後立即驗證結構是否與 RULES 範例一致,不一致必須修正後才進下一階段
若 SKILL.md 與 RULES 文件出現衝突,以 RULES 文件為準(RULES 是該階段的最終真相來源)。
每次跨階段必須同時完成兩件事,缺一不可: (1) 將檔案實際
mv到目標階段資料夾 (2) 將檔案內的「狀態」欄位同步更新為目標階段對應值檔案位置與狀態欄位必須永遠一致。任何時刻檢查都必須吻合,不一致一律視為違規。
| 所在資料夾 | 檔案內「狀態」欄位必須是 |
|---|---|
2-Plans/ | 待辦 (To Do) |
3-Progressing/ | 處理中 (Progressing) |
4-Testing/ | 測試中 (Testing) |
5-Re-testing/ | 重新測試 (Re-testing) |
6-On-hold/ | 暫停 (On-hold) |
7-Done/ | 已完成 (Done) |
8-Archived/.../done-plans/ | 已完成 (Done) ← 歸檔不改變狀態值,但必須已是 Done |
每次跨階段都要依序完成以下 3 步:
先更新檔案內容
[✓]、補齊本階段結果描述再執行 mv 搬移
cp0-PLAN_OVERVIEW 也要一併搬移並更新統計最後驗證一致性
進入 8-Archived 之前,必須對所有準備歸檔的 plan 文件逐一檢查:
7-Done/ 資料夾下(不在的話必須先把該檔案完整跑完該階段流程,禁止跳階段直接歸檔)驗證指令(強制執行,且結果必須全部通過):
# 檢查所有準備歸檔的文件,狀態欄位是否都是「已完成 (Done)」
for f in <project>/7-Done/YYYY-MM-DD-[spec-xxxxx]-feature-name/*.md; do
status=$(grep -m1 "^\*\*狀態" "$f")
if ! echo "$status" | grep -q "已完成 (Done)"; then
echo "❌ 違規檔案:$f"
echo " 目前狀態:$status"
fi
done
任一檔案違規時,立即停止歸檔流程、修正狀態欄位、重跑驗證指令直到全部通過,才可繼續歸檔。
背景: 過往 AI 經常聲稱「已參考 ARCHIVED_RULES.md」但實際結構錯誤(例如檔案平鋪、summary 命名錯誤、來源未清理)。為徹底杜絕此問題,本 Skill 規定:進入
8-Archived前,必須在對話中逐項完整輸出以下 6 步檢查內容,每一步都要有具體可驗證的輸出,禁止省略、合併或只說「已完成」。此清單是強制性的對話輸出義務,不是內部執行步驟。使用者必須能在對話中親眼看到每一步的輸出。
在對話中輸出以下三行(替換實際路徑與行號):
[歸檔前置作業]
✅ 已 Read templates/8-Archived/ARCHIVED_RULES.md(共 N 行)
✅ 已 Read templates/8-Archived/.archived-summary-template.md(共 N 行)
✅ 將依 ARCHIVED_RULES.md 第「📁 標準歸檔結構」章節範例建立目錄
執行並輸出以下指令的實際結果:
ls -la <project>/1-Specs/YYYY-MM-DD-[spec-xxxxx]-feature-name/
ls -la <project>/7-Done/YYYY-MM-DD-[spec-xxxxx]-feature-name/
執行並輸出「歸檔前的強制狀態檢查」驗證指令的實際結果。若有違規檔案必須先修正再回到 Step A 重來,禁止跳過此步驟。
此步驟用於防止「kanban 文件已歸檔但專案程式碼根本沒動」的違規。必須在對話中逐項輸出實際證據,缺一視為違規。
執行並輸出(取代 <project-root> 為實際專案根目錄、<since-time> 為任務開始時間):
# 列出本次任務新增/修改的程式碼檔案(非 kanban 檔)
git -C <project-root> status --short | grep -v "kanban/"
git -C <project-root> diff --name-only HEAD~N HEAD | grep -v "kanban/"
或若無 git,列出所有實際變動的程式碼檔案路徑(一行一個)。
自我檢查(必須在輸出後立即回答):
src/、lib/、app/、或專案實際程式碼目錄下的檔案?*.md 在 kanban 目錄下),代表根本沒做實作工作,必須立即停止歸檔,回到 3-Progressing/ 補做實作。執行並輸出:
git -C <project-root> status --short | grep -E "test|spec|__tests__" | grep -v "kanban/"
git -C <project-root> diff --name-only HEAD~N HEAD | grep -E "test|spec|__tests__" | grep -v "kanban/"
自我檢查:
4-Testing/ 補做測試。必須在對話中貼出本次任務最後一次執行測試的完整終端輸出,包含:
npm test、pytest -v)自我檢查:
4-Testing/ 或 5-Re-testing/ 補完。對於每一份準備歸檔的 plan 任務文件:
任一項對不上,代表 kanban 文件描述與實際實作脫節,禁止歸檔,必須先補對應內容。
在對話中輸出本次歸檔將建立的完整目標結構,並逐檔說明搬移對應關係。範例輸出格式:
[歸檔目標結構宣告]
8-Archived/2026-05-16-[spec-Qt9p1]-quota-reset-on-tier-change/
├── 1-Specs/
│ ├── [spec-Qt9p1]-IDEA_DESCRIPTION.md ← 來自 1-Specs/.../[spec-Qt9p1]-IDEA_DESCRIPTION.md
│ └── [spec-Qt9p1]-CLEANUP_AND_INTEGRATION.md ← 來自 1-Specs/.../[spec-Qt9p1]-CLEANUP_AND_INTEGRATION.md
├── done-plans/
│ ├── 0-PLAN_OVERVIEW.md ← 來自 7-Done/.../0-PLAN_OVERVIEW.md
│ ├── 2026-05-16-[spec-Qt9p1]-1-2-high-[plan-Lm3r7]-...md ← 來自 7-Done/...
│ └── 2026-05-16-[spec-Qt9p1]-2-2-high-[plan-Pw8k2]-...md ← 來自 7-Done/...
└── [spec-Qt9p1]-summary.md ← 新建(依 .archived-summary-template.md)
Step D 自我審查(必須在輸出後立即檢查):
[spec-xxxxx]-summary.md?(不是 ARCHIVED_SUMMARY.md 等變體)1-Specs/ 與 done-plans/ 兩個子資料夾?[spec-xxxxx] 而非 [plan-xxxxx]?任一答案為「否」,必須立即修正宣告後重來。
依 Step D 宣告依序執行 mkdir -p 與 mv 指令。每個指令都必須在對話中可見,不得用一個 && 串起來掩蓋細節。
執行並輸出以下兩組指令的實際結果:
# 驗證 1:歸檔結構完整
ls -R <project>/8-Archived/YYYY-MM-DD-[spec-xxxxx]-feature-name/
# 驗證 2:來源無殘留
find <project>/{1-Specs,2-Plans,3-Progressing,4-Testing,5-Re-testing,6-On-hold,7-Done} \
-type f -name "*[spec-xxxxx]*" 2>/dev/null
驗證 1 結果必須符合 Step D 宣告。 驗證 2 結果必須為空。 任一不符必須立即修正,並重跑驗證指令直到通過。
此步驟是「自我審計」,目的是抓出 Step A~F 過程中可能漏看或自欺的問題。 即使 Step F 通過,仍必須執行 Step G 完整的雙重對照。發現任何不一致必須立即修正並重跑此步,直到全部通過才可宣告歸檔完成。
templates/8-Archived/ARCHIVED_RULES.md(即使 Step A 已讀過,此處必須再讀一次)templates/8-Archived/.archived-summary-template.mdls -R <project>/8-Archived/YYYY-MM-DD-[spec-xxxxx]-feature-name/ 的實際結果| 規範項目 | 規範來源 | 實際結果 | 是否符合 |
|---|---|---|---|
歸檔根資料夾命名為 YYYY-MM-DD-[spec-xxxxx]-feature-name/ | ARCHIVED_RULES.md「✅ 命名與結構」 | (填入實際資料夾名) | ✅ / ❌ |
含 1-Specs/ 子資料夾 | ARCHIVED_RULES.md「📁 標準歸檔結構」 | (是 / 否) | ✅ / ❌ |
含 done-plans/ 子資料夾(不是 done-tasks/) | 同上 | (是 / 否,實際名稱) | ✅ / ❌ |
1-Specs/ 內檔名為 [spec-xxxxx]-XXX.md | SPECS_RULES.md | (列出實際檔名) | ✅ / ❌ |
done-plans/ 內檔名格式為 YYYY-MM-DD-[spec-xxxxx]-N-優先級-[plan-yyyyy]-類別-描述.md | COMMON_CONVENTIONS.md | (列出實際檔名) | ✅ / ❌ |
summary 檔名為 [spec-xxxxx]-summary.md(不是 ARCHIVED_SUMMARY.md 等變體) | ARCHIVED_RULES.md「Summary 檔名」 | (填入實際 summary 檔名) | ✅ / ❌ |
| summary 內容章節完整(依 .archived-summary-template.md 全部章節都在) | .archived-summary-template.md | (列出 summary 章節清單) | ✅ / ❌ |
| 沒有任何檔案平鋪在歸檔根資料夾(除了 summary) | ARCHIVED_RULES.md「禁止事項」 | (列出根目錄檔案) | ✅ / ❌ |
| 來源 7 個階段資料夾無殘留 | ARCHIVED_RULES.md「步驟 7 / 步驟 8」 | (貼 find 指令結果) | ✅ / ❌ |
任一項為 ❌,必須立即修正後重跑 Step G。
對 8-Archived/YYYY-MM-DD-[spec-xxxxx]-feature-name/ 下的每一個 .md 檔案執行以下檢查(不可省略任何一個檔案,不可只抽樣):
對每一份 plan 任務文件 Read 後,輸出檢查表:
| 檔案 | 「狀態」欄位 | 開發進度全 [✓] | 測試進度全 [✓] | 「相關程式碼檔案」非空且非 kanban 路徑 | 「測試程式碼檔案」非空 | 「測試結果」區塊含完整指令與輸出 | 完成標記是 [✓] 而非 [x] |
|---|---|---|---|---|---|---|---|
xxx-plan-Az4a2-...md | 必須是「已完成 (Done)」 | ✅ / ❌ | ✅ / ❌ | ✅ / ❌ | ✅ / ❌ | ✅ / ❌ | ✅ / ❌ |
xxx-plan-By3n1-...md | ... | ... | ... | ... | ... | ... | ... |
任一欄為 ❌,必須立即補正該檔案後重跑 Step G。
Read overview 後檢查:
任一項否,補正後重跑 Step G。
Read 後檢查:
任一項否,補正後重跑 Step G。
Read summary 後檢查:
任一項否,補正後重跑 Step G。
完成 G-1 + G-2 全部檢查並全綠後,必須輸出以下總結(照填):
[歸檔最終驗證報告]
📐 結構對照(G-1):
- ARCHIVED_RULES.md 規範項:N 項全部符合 ✅
- 無平鋪、無殘留、無命名錯誤 ✅
📄 內容狀態檢查(G-2):
- plan 任務文件數:X 份
- 全部「狀態」= 已完成 (Done) ✅
- 全部「相關程式碼檔案」非空且指向實際專案路徑 ✅
- 全部「測試結果」含實際測試輸出 ✅
- 0-PLAN_OVERVIEW:統計數據與實際一致 ✅
- 1-Specs 文件:內容已回寫實際完成狀況 ✅
- summary:所有章節完整、數據一致、無 placeholder ✅
🎯 歸檔狀態:完成且通過所有驗證
任一項為 ❌ 或不確定時,禁止輸出此總結,必須先修正後重跑 Step G。
🚨 重要原則:
.test.ts, .spec.ts 等) 內容:確認其涵蓋了正向路徑 (Happy path)、預期的錯誤情境 (Edge cases)、權限或安全性情境、資料為空或格式錯誤情境,以及需求中特別指定的例外流程。1-Specs/:執行 kanban-exist-specs-push-to-archived2-Plans/ 或 3-Progressing/:執行 kanban-exist-plans-push-to-archived4-Testing/ 或 5-Re-testing/:執行 kanban-exist-testing-push-to-archived7-Done/:執行 kanban-archive-only8-Archived/:仍必須再次比對 templates/8-Archived/ARCHIVED_RULES.md、summary 模板、來源清理結果與 archived 目錄結構;若任一項不符,立即補齊到完全符合 archived 規範為止8-Archived,不可只處理其中一部分。8-Archived/summary 已存在且內容符合模板yarn test 或相似指令) 的情況下,假定或虛構測試結果通過。1-Specs、2-Plans、3-Progressing、4-Testing、5-Re-testing 或 7-Done 時,宣稱任務已完成 archived 狀態。0-PLAN_OVERVIEW.md、spec 文件平鋪到 8-Archived/YYYY-MM-DD-[spec-xxxxx]-feature-name/ 根目錄;必須分別放入 1-Specs/ 與 done-plans/ 子資料夾。ARCHIVED_SUMMARY.md、SUMMARY.md 或其他變體;必須使用 [spec-xxxxx]-summary.md 或 [no-spec]-summary.md。1-Specs/、2-Plans/、3-Progressing/、4-Testing/、5-Re-testing/、6-On-hold/、7-Done/ 中該批次 spec 的殘留資料夾或檔案。[plan-xxxxx] 作為歸檔根資料夾識別(必須使用 [spec-xxxxx] 或 [no-spec])。done-tasks/ 舊名稱(必須使用 done-plans/)。4-Testing/ 卻寫「處理中 (Progressing)」、檔案在 8-Archived/ 卻寫「測試中 (Testing)」)。8-Archived/。歸檔前必須先跑「歸檔前的強制狀態檢查」驗證指令,確認全數通過。3-Progressing/ 跳到 7-Done/,或從 4-Testing/ 跳到 8-Archived/),每個階段都必須依序經過。7-Done/ 或 8-Archived/,而沒有實際撰寫專案程式碼、測試程式碼與執行測試。kanban 文件管理是次要工作,實際的程式碼與測試實作才是主要交付物。mv + 改 markdown 內容」誤解為「完成任務」。任務的真正完成標準是:專案程式碼實作完畢 + 測試程式碼撰寫完畢 + 測試實際執行通過 + 專案文件更新完畢,kanban 文件只是這些工作的記錄載體。