check

check

熱門

審查程式碼 diff、PR、Issue 佇列、發布準備狀態、Commit、Push、發布流程與專案審計。當使用者以任何語言要求程式碼審查(Code Review)、Issue 或 PR 分流(Triage)、發布關卡檢查(Release Gates)、發布後續跟進或專案審計時使用。不適用於除錯根本原因(Root Causes)或一般文章審閱。

6382星標
0分支
更新於 2026/7/10
SKILL.md
唯讀
名稱
check
描述

審查程式碼 diff、PR、Issue 佇列、發布準備狀態、Commit、Push、發布流程與專案審計。當使用者以任何語言要求程式碼審查(Code Review)、Issue 或 PR 分流(Triage)、發布關卡檢查(Release Gates)、發布後續跟進或專案審計時使用。不適用於除錯根本原因(Root Causes)或一般文章審閱。

Check:發布前的全面審查

請在第一行的開頭行內加上 🥷,不要將其獨立成一個段落。

更新檢查(非阻塞性)。 每次對話執行一次:執行 bash <skill-base-dir>/scripts/check-update.sh(請將 <skill-base-dir> 替換為此 Skill 的基底目錄);若有印出任何文字請轉述,否則靜默繼續(當指令稿已執行過、遺失或發生錯誤時亦同)。該指令稿每天最多檢查一次,僅讀取公開的版本檔案,且不會傳送任何資料。

附註:/review 是 Anthropic 內建用於 PR 審查的外掛指令。Waza 請改用 /check(或別名 code-review)。請勿在此 Skill 內部再次觸發 /review

讀取 diff、找出問題、安全地修復可修復的部分,其餘部分提問確認。完成(Done)代表本次工作階段已執行驗證且通過。

成果合約(Outcome Contract)

  • 成果(Outcome):基於目前的 diff、專案上下文及即時證據所產出的審查結論、發布決策或維護者處置動作。
  • 完成條件(Done when):提出的發現、修復、已發布狀態或阻礙因素,均附上能證明其真偽的指令、產出檔案(Artifacts)或遠端狀態。
  • 證據來源(Evidence):工作區(Worktree)狀態、diff、公開的專案文件、Manifest 檔案、CI、套件內容、發布或 Registry 狀態,以及目前的指令輸出結果。
  • 輸出格式(Output):先精簡列出審查發現,適用時再提供驗證與已發布狀態摘要。

工作區安全預檢(Worktree Safety Preflight)

在進行任何審查、分流(Triage)、Ship、發布(Release)或 PR 操作之前,請先使用以下指令讀取目前的工作區:

git status --short --branch -uall

請將已修改(Modified)、已暫存(Staged)及未追蹤(Untracked)的檔案視為使用者的工作成果。你可以讀取並將它們納入審查範圍,但在目前對話輪次中未獲得使用者明確批准前,絕不得移動、隱藏、覆寫、清除或捨棄這些檔案。

切勿將以下指令作為預設的審查或 PR 預備步驟:git switchgit checkoutgit reset --hardgit cleangit stash -ugit stash --include-untrackedgit stash -agit stash --allgh pr checkout。若確實需要切換分支或進行清理,請暫停並向使用者請求執行該確切操作。

切勿以「保護」使用者工作為由,將未追蹤檔案、生成的檔案、截圖或本機暫存檔搬移至 /tmp 或其他暫存目錄。將他人的未完成工作(WIP)移出工作區,其干擾性質與執行 stash 完全相同。若生成、打包或驗證過程需要乾淨的目錄樹,請從已知的 Commit 建立獨立的 worktree,並僅將屬於你自己的產出檔案或補丁(Patch)複製回目前的工作區。

在工作區不乾淨或多 Agent 協作的環境中執行 Commit 或 Push 跟進時,請在暫存(Staging)前記錄 git rev-parse HEAD。在 Commit 正要執行前以及 Push 正要執行前,再次讀取 git status --short --branch -uallgit rev-parse HEAD。若 HEAD 發生變動、出現未知的 Commit,或工作區在預期變動檔案之外發生了改變,請立即停止並回報不匹配情況,而不是進行 Rebase、重新 Commit 或 Push。

檢查 PR 時,請優先使用不會切換目前工作區的指令:gh pr viewgh pr diffgit fetch origin pull/<n>/head:refs/tmp/pr-<n> 以及 git merge-tree

模式選擇器(Mode Picker)

請選擇符合使用者意圖的模式,並完整閱讀該章節。模式會疊加在後續的共享審查機制(Scope、Hard Stops、Autofix、Specialist Review、Verification、Sign-off)之上。

使用者意圖 模式
"implement this plan"(執行此計畫)、交接 /think 輸出 計畫執行模式(Plan Execution Mode)
Diff 或 PR 已就緒、"review"、"看看程式碼"、"合併前" 預設審查(從 取得 Diff 開始)
"look at issues"、"review PRs"、"triage"、"批次處理" 分流模式(Triage Mode)
"is this worth a release"、"值不值得發布版本" 發布價值分析(Release Worthiness Analysis)
"commit"、"push"、"publish"、"release"、"close issue"、"發布表情" Ship / 發布後續跟進(Ship / Release Follow-through)
"audit"、"專案健康檢查"、"專案評分"、"給專案打分"、"深入分析專案程式碼"、"scorecard"、"linus review" 專案審計模式(Project Audit Mode)
文件、PDF、文章審閱 委派給 /write(參閱 文件審閱

在進入任何模式前,請先執行 專案上下文擷取,以及(若記憶在作用範圍內)持久上下文預檢

專案上下文擷取(Project Context Extraction)

這是 Waza 的公開獨立程式碼審查能力。它不應依賴私有機器路徑或未公開的專案指示。

在進行審查前,請先從儲存庫上下文中擷取專案約束條件:

  1. 讀取 diff 並識別變更的語言、框架、Manifest、生成的產出物、發布檔案與 CI 工作流程。
  2. 僅在需要時檢查公開的專案檔案:README、AGENTS/CLAUDE 指示(若存在)、套件 Manifest、Lockfile、建置設定、測試設定、工作流程檔案及發布說明(Release Notes)。
  3. 將發現濃縮為審查上下文:驗證指令、受保護或生成的檔案、發布產物、領域風險及公開回覆規則。
  4. 當專案上下文與此 Skill 規則重疊時,採用較嚴格的規則。
  5. 若專案文件或 CI 指定了驗證指令,優先使用該指令而非自動偵測。

關於上下文的結構格式,請參閱 references/project-context.md

對於發布或維護者工作,還需填寫來自 references/project-context.md 的 Release Gate 2.0 矩陣。它涵蓋審查基準、未乾淨/已暫存/未追蹤狀態、最新 Tag、Origin 同步狀態、版本欄位、生成的產物、套件/封存檔案內容、發布資產、Registry/Appcast/CI 以及公開 Issue/PR 狀態。缺乏矩陣證據將直接阻礙宣稱「已準備好發布(ready to release)」。

持久上下文預檢(Durable Context Preflight)

有關何時讀取持久上下文、讀取順序預算以及記憶類型對映,請參閱 references/durable-context.md

對於 /check:目前的 diff、CI 與遠端狀態優先於記憶。持久記憶可以解釋使用者的意圖與偏好的後續跟進方式,但公開的專案規則仍須來自 README 檔案、Manifest、CI 工作流程、發布文件以及目前對話串中的明確指示。切勿將私有記憶引用為公開專案的必要需求。

計畫執行模式(Plan Execution Mode)

當使用者的訊息開頭為 "Implement the following plan"、"按計畫實施"、"按照計畫"、"整"、"可以幹"、"直接改" 並附帶計畫主體,或是連結至 /think 的輸出時觸發。

在此模式下,請勿執行程式碼審查。改為執行以下步驟:

  1. 說明正在執行哪一份計畫(第一行標題或摘要行)。
  2. 檢查是否有明顯的儲存庫漂移(Repo Drift):執行 git status --short --branch -uall 並瀏覽任何與計畫衝突的變更檔案。若漂移導致執行計畫不安全,請指明具體衝突並停止。
  3. 逐一將計畫項目視為待辦事項(To-do)執行,完成一項即標記一項。
  4. 所有項目完成後,執行專案的驗證指令。
  5. 若專案上下文或目前對話串指示「審查後發布(review-then-ship)」,則自動切換至 Ship 模式。

預設續行(審查後發布 review-then-ship)

當專案的 AGENTS.md 或目前對話串明確要求「審查後 Commit」、「若測試通過則 Ship」或同等意思時,在審查無誤後直接從審查流程切換至 Ship 流程。無需再次詢問。在採取行動前請說明「正在推進至 Ship 流程(proceeding to ship)」。

取得 Diff(Get the Diff)

取得目前分支與基底分支(Base Branch)之間的完整 diff。若已在基底分支上,請詢問要審查哪些 Commit。

分流模式(Triage Mode)

當使用者提及:issue、PR、"review all"、triage、"batch" 或 "批次處理" 時觸發。跳過 diff 流程並改為執行此模式。

行動優先原則(Action-first rule): 處置方向明確的項目(已修復、重複回報、已發布)應立即處理,無須撰寫分析段落。分析截圖或圖片時,請在一則訊息中說明你所看到的內容與建議的操作。僅在處置方向確實模糊不清時才詢問使用者。

打包需求分類(Bundled request classification): 當單一 Issue、PR 或支援對話串包含多個要求時,在採取行動前先將其拆分:核心 Bug、既有功能/途徑、外觀喜好及超出範圍的需求。僅修復或關閉經過驗證的核心 Bug;對既有功能提供目前的實現路徑說明;延後或拒絕外觀喜好與超出範圍的需求,切勿將整份報告直接當作待辦清單處理。

狀態回答順序(Status answer order): 對於 "都解決了嗎"、"is this fixed"、"is this ready" 或類似的狀態檢查,請按以下順序回答:程式碼或 Commit 狀態、分支或 CI 狀態、發布產物或 Registry 狀態,最後才是公開 Issue 或 PR 狀態。請勿將「已在 main 修復」、「在預覽版中可用」、「下個穩定版本發布」與「已經發布」混為一談。

流程(Flow): 首先從公開上下文中識別專案的 Issue/PR 代管平台。對於 GitHub 專案,使用 gh issue list -R <repo> --state open --limit 20gh pr list -R <repo> --state open 拉取開啟中的項目。對於非 GitHub 專案,使用專案文件或使用者要求指名的平台 CLI/API;若不存在,請停止並回報缺乏整合,切勿假裝 GitHub 指令適用。對每個項目,參照專案的發布邊界檢查目前狀態:最新公開發布版、main 分支、preview/nightly/beta 管道、registry/appcast,以及目標 Issue/PR 狀態。若修復已在目前的公開發布版或有紀錄的預覽管道中,附上確切升級路徑並關閉 Issue。若已在 main 上修復但尚未發布,請回覆 "已修復,等下一個版本 release",且僅在專案慣例或目前使用者要求允許「main 修復即關閉」時才予以關閉;否則請保持開啟並附上標註下個版本發布的說明。若尚無修復,請進行分析並採取行動。若可行請立即修復(使用 fix: closes #N Commit);對於有效但尚未發布的項目,確認接收並保持開啟;對於無效項目,給出 1-2 句話的原因說明並關閉。

在即時佇列(Live queue)給出最終結論前,請再次重新整理 Issue/PR 清單,並重新閱讀在執行過程中發生過變動的項目。若證據不完整,請保留該項目而不要憑猜測關閉。

PR 處理(PR handling): 若 PR 的方向被接受但補丁需要修改,優先將維護者的修復推送到貢獻者的 PR 分支並合併該 PR。在 Push 前請先檢查 maintainerCanModify,並在正要 Push 前確認 Push Remote、目標分支及目前的 HEAD,避免覆寫貢獻者的工作成果或將維護者的修復推送到錯誤的儲存庫。若不允許編輯分支,請要求貢獻者開啟維護者編輯權限或推送所需的修訂版本;僅在時效性或發布安全性有極高要求時,才退回使用獨立的維護者 Commit,並在 PR 中說明原因。僅在方向被拒絕、不安全、不再需要或明確超出專案範圍時,才進行不合併直接關閉(Close without merging)。切勿靜默地將已接受的 PR 吸收合併至 main 後直接將其關閉。

公開回覆格式(Public reply shape): 請載入 references/public-reply.md 以取得完整範本(包含標記提及、單次致謝、事實段落、下個版本發布步驟、編輯規則、關閉條件)。Ship 模式使用相同的範本;該檔案為唯一的單一事實來源。

簽核行(附加於標準 Sign-off 後):

triage:           N reviewed, N closed, N deferred

發布價值分析(Release Worthiness Analysis)

當使用者詢問 "深入分析 X 是不是值得發新版本"、"is this worth a new release"、"值不值得發版" 或類似問題時觸發。