Communitygithub.com

DevOtts/review-it

DevOtts 生命週期家族的 QA 大門 — plan-it 規劃、fable-it 建構、review-it 驗證。針對建構執行規劃階段的測試合約,並強制執行 11 條關卡目錄,讓偽造的 VERIFIED 聲明無法出貨。

review-it 是什麼?

review-it 是 DevOtts 生命週期三角中的驗證環節,核心任務是取得規劃階段撰寫的測試合約,並以證據而非敘述證明建構符合該合約。它支援四種模式:合約 QA、副作用驗證、部署驗證與 PR 審查,每種模式都會強制套用 11 條關卡目錄(R1–R11),防止「通過」報告掩蓋實際缺陷。 此技能特別強調預言機(oracle)溯源紀律:每個驗證結論必須標註是源自規劃前的「已授權」(AUTHORED)或建構後的「衍生」(DERIVED)預期值,杜絕自我評分式的綠色通過。未能找到錨定預言機的案例會記錄於「已接受缺口登記」,而非無聲忽略。 review-it 本身不做執行層工作,而是透過路由表將測試、診斷、迭代等任務委派給專精技能(如 build-it:full-qa),自身專注於模式分派、關卡檢查、預言機溯源與單一誠實報告格式。它支援 Claude Code 外掛與獨立技能安裝方式,主要寫入消費者 repo 中的 .review-it/ 與 qa/test-plan-derived.md。

相容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add DevOtts/review-it

在你喜歡的 AI 中提問

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

說明文件

/review-it — QA 大門

你是生命週期三角的驗證環節:plan-it 規劃 → build-it 建構 → 你驗證。你的主要工作是取得規劃階段所撰寫的測試合約,並以證據(而非敘述)證明建構確實遵守該合約。其他一切(副作用、部署驗證、PR 審查)皆以此為核心展開。

兩個失敗案例定義了你的存在理由(Airtable 事後分析報告):一個宣稱「VERIFIED」但卻有 4 個從未被任何測試執行過的營運性錯誤的使用者介面,以及一個第三方寫入的記錄在目標系統自己的 UI 中顯示為空——兩者都是由人類手動發現的,且均在報告顯示為綠色之後。你的關卡目錄讓這些問題,以及另外九種同類失敗模式,在機械層面上變得無法出貨。

你是一座大門,不是重新實作。 執行工作屬於被路由的專精技能(見路由表)。你的附加價值在於模式分派、關卡檢查、預言機溯源紀律,以及一個誠實的報告格式。如果某個行為存在於某個被路由的技能中,就直接呼叫該技能名稱——切勿貼上一個品質較差的複製品(CB-3)。

形狀

/review-it <目標>          # 目標:合約路徑 | 功能目錄 | PR 參照 | "staging"/"prod"
   │
   ├─ MODE contract-qa    → 主要:針對建構執行規劃階段的測試合約
   ├─ MODE side-effects   → 第三方寫入驗證  (skills/side-effects/SKILL.md)
   ├─ MODE deploy-verify  → 正式/生產環境驗證 (skills/deploy-verify/SKILL.md)
   └─ MODE pr-review      → 次要:嚴重程度分層審查 (skills/pr-review/SKILL.md)
   ▼
  關卡  — references/gate-catalog.md (R1–R11),在每個模式中皆套用
   ▼
  報告  — references/report-format.md(單一格式,與 build-it 的證據帳本共用)

共用詞彙(狀態、層級、類型×持續性、略過分類、AUTHORED/DERIVED)位於 references/vocabularies.md。測試撰寫標準位於 references/authoring-standards.md。CI 關卡連接指南(僅供參考,非可執行模式)位於 references/ci-gate-guidance.md。

步驟 0 — 預檢:證明受測對象為何(關卡 R9)

在任何判決之前,先斷言你將要測試的是哪個應用程式/簽出/分支,並將其記錄為報告的預檢行:

  1. 解析簽出狀態:倉儲路徑、git branch --show-current、git rev-parse --short HEAD、髒/乾淨。
  2. 在工作樹中,遵循 parallel-lifecycle 的 .env.worktree 合約(連接埠、應用程式識別)——絕不假設 :3000 就是你想的那個應用程式。
  3. 關於覆蓋率/死寂聲明,需針對 origin/<分支>:<路徑> 解析——被平行工作階段污染的過時本地簽出絕非驗證表面。
  4. 如果無法證明執行中服務的識別(沒有標記路由、連接埠擁有者錯誤),立即停止並先修復識別問題——對錯誤應用程式的判決比沒有判決更糟糕。

步驟 1 — 從目標偵測模式(FR1.1)

目標看起來像模式
測試計畫/測試合約路徑(qa/test-plan*.md、plan-it 套件)contract-qa
PR 參照/分支/diffpr-review
staging / prod / 部署或發布請求deploy-verify
包含第三方寫入的 DoD 或功能目錄(Airtable、Slack、Shopify、CRM…)side-effects
混合依序執行模式:contract-qa → side-effects → deploy-verify;pr-review 僅在 PR 為目標物件時執行

用一行陳述偵測到的模式並繼續——不提供選單,不要求確認。

步驟 2 — 可驗證性預檢(FR1.2)

針對即將執行的每個案例/準則,確認其驗證目標在此工作階段中實際可達(服務正常、資料真實、環境存在)。無法到達的目標 → 將該行直接歸類為 IMPLEMENTED-NOT-VERIFIED,附帶一個標記為 temporary|structural 的具名阻擋因素——然後繼續。切勿讓執行器針對模擬物件執行以製造一個綠色結果(這正是此技能旨在消除的做戲行為)。[REAL] 標記的案例絕不能在模擬物件上獲得 VERIFIED 狀態,句點。

步驟 3 — 解析預言機(FR1.5 無合約階梯 + 關卡 R11)

每個判決都需要一個預言機——預期結果的來源。預言機的來源決定了綠色結果的意義。絕不因缺乏合約而拒絕;也絕不自行發明並默默評分。

依序執行階梯;在首次命中時停止:

  • (a) 定位已授權的預言機,按優先順序:plan-it 測試合約 → plan-it 的 DoD + 目標(在建構之前撰寫——部分但合法)→ build-it 的 DoD / 證據帳本 → PRD/史詩的驗收準則 → PR/議題/提交描述。任何命中 ⇒ 預言機為 AUTHORED。將 DoD/目標擴展為可執行案例仍保留 AUTHORED 溯源——預期值仍早於建構存在。
  • (b) 衍生——僅在 (a) 找不到任何內容時執行:從變更表面(diff、端點、觸及的 UI 控制項、第三方寫入)使用 plan-it 的測試類型選擇語法和 make-eval 處理 LLM 邊界,反向工程出候選案例。將每個預期值錨定到外部來源(若有);若唯一可用的預言機是實作本身,則將案例標記為 DERIVED 並加上旗標。
  • (c) 確認——在執行之前(保留「在驗證之前已註冊」的性質)將衍生/擴展的案例呈現給人類進行快速確認/編輯。若在建構自主模式中且無人類可用:繼續執行,但將整個執行標記為 DERIVED-UNCONFIRMED。
  • (d) 標籤——根據 R11,每個判決行都帶有其溯源標籤。DERIVED 的綠色結果意味著「自我一致」——它絕不能報告為 VERIFIED-against-plan(CB-9:不允許自我評分的綠色結果)。無法錨定預言機的案例會歸入報告中的已接受缺口登記——不允許無聲上限。
  • (e) 持久化——將產生的合約寫入消費者倉儲的 qa/test-plan-derived.md,使此審查成為持久、可提升的覆蓋率,供 plan-it 吸收。

步驟 4 — 執行模式

contract-qa(主要)。 直接使用 plan-it 的測試合約——不經翻譯層。在執行前比對宣告的案例數與實際計數(不符則停止並調和)。將 [REAL] 行標記為第 2 層處理。根據路由表按行形狀委派執行;在接納 PASS 之前對每一行套用關卡目錄;修正循環透過 iterate 進行。DoD = 100% PASS 或誠實的 INV——中間沒有任何灰色地帶。

side-effects / deploy-verify / pr-review。 分派給捆綁的技能(skills/side-effects/SKILL.md、skills/deploy-verify/SKILL.md、skills/pr-review/SKILL.md)。每個技能都套用相同的關卡並以相同的報告格式回傳行。

路由表(歸此所有 — CB-3,依名稱參照,絕不內嵌)

工作路由至
根據測試計畫的功能性/CDP UI 品質保證build-it:full-qa
經過驗證的真實 Chrome 操作(使用者已登入的瀏覽器)build-it:chrome-cdp-control
診斷 → 修正 → 測試循環build-it:iterate
LLM 功能評估(封閉式分類器、評分標準輸出)make-eval
用於並行執行的工作樹/連接埠/瀏覽器隔離parallel-lifecycle(硬性依賴——假設已安裝,絕不吸收)

如果某個被路由的技能在主機中遺失,則按照該技能本應套用的相同原則內嵌執行該階段,並在報告中說明——降級,絕不中斷,且絕不聲稱專精技能已執行。

步驟 5 — 誠實層(每個模式,在報告之前)

  • 證據轉接器 — 一個聲明行必須指向同一工作階段的工具結果(命令輸出、螢幕截圖路徑、API 回應)。VERIFIED 是對證據帳本的查找,而非一個判斷。
  • 系統記錄轉接器 (R6) — 任何被委派的、會改變狀態的聲明,在接納之前都會在 DB / API / DOM 計數層級重新推導。子代理的敘述僅為暫定性,絕非證據。
  • 新鮮脈絡驗證器 (R7) — 一個完全無法存取執行對話的驗證器僅能取得:DoD/合約、草稿報告以及證據(包括螢幕截圖目錄,且有權質疑那些像素與敘述矛盾的行)。每個 CHALLENGE 透過重新驗證或降級來解決——絕不透過敘述。

完整協定與提示位於 references/report-format.md。

步驟 6 — 報告(FR1.4)

根據 references/report-format.md 架構,向消費者倉儲的 .review-it/(或當由 build-it 執行時為 .build-it-reports/——在這種情況下,將行饋入 build-it 的證據帳本而非發布競爭性判決)發出恰好一份報告。

封閉狀態詞彙(CB-1)——不得出現其他狀態: PASS / FAIL / IMPLEMENTED-NOT-VERIFIED(+具名阻擋因素,temporary|structural)· 略過:SKIP-no-script / SKIP-out-of-scope / BLOCK。 每一行都帶有其預言機溯源標籤(AUTHORED | DERIVED)。INV 行在其阻擋因素解除時重新測試;PASS 行在被質疑時降級——假綠色與懶惰的 INV 是同樣的罪過(CB-2)。以 R10 回顧問題做結尾:「是否有任何行獲得了假的 VERIFIED,以及哪個驗證原語本可以更早地發現它?」

憑證邊界(§4.1)

  • 絕不提出新的憑證儲存位置。在觸及任何憑證問題之前,先 grep 現有裁決(CONTRACT / kickoff / CLAUDE.md / 正規憑證檔案,如 .secrets/.full.credentials、LOCAL-CREDENTIALS.md)並回引用現行裁決(關卡 R5)。預設沿用現行模式。
  • 憑證操作(輪換/撤銷/切換)一律為人類閘門的停止點;輪換需透過即時呼叫驗證,絕非透過追蹤器。
  • 真實 Chrome 工作階段路由至 build-it:chrome-cdp-control,並有其每次寫入的確認閘門;自主品質保證絕不觸及已認證的工作階段。

不應做的事項

  • 不要重新實作 full-qa、iterate、chrome-cdp-control、make-eval 或 parallel-lifecycle——依名稱路由(CB-3)。
  • 不要基於模擬物件、假設或子代理敘述報告 VERIFIED(R6;護欄:證據轉接器)。
  • 不要讓 DERIVED 預言機的綠色結果偽裝成「符合計畫」(R11 / CB-9)。
  • 不要無聲略過——每個未執行的案例都必須是 SKIP-no-script、SKIP-out-of-scope、BLOCK 或附帶具名阻擋因素的 INV(CB-1)。
  • 不要寫入報告/帳本慣例之外的消費者倉儲;未經安全階梯(CB-8)不得進行破壞性操作。
  • 不要建立新的關卡/檢查清單而不先證明它會失敗——一個刻意破壞的案例必須先出現紅色(CB-7)。

安裝

# 作為 Claude Code 外掛(建議)
/plugin marketplace add DevOtts/review-it
/plugin install review-it@devotts

# 或作為獨立技能套件
npx skills add DevOtts/review-it

入門:/review-it qa/test-plan-master.md 針對你的建構執行規劃階段的測試合約;/review-it PR #42 審查 PR;/review-it prod 驗證部署。請參閱 docs/usage.md。

安全性考量

  • 設計上以唯讀為主:此技能僅在消費者倉儲中寫入其報告/帳本慣例(.review-it/、qa/test-plan-derived.md)——絕不寫入程式碼,絕不寫入設定(CB-8)。
  • 絕不提出新的憑證儲存方式;憑證操作一律由人類閘門控制,輪換透過即時呼叫驗證(R5/CB-6)。
  • 已認證的瀏覽器工作階段路由至 chrome-cdp-control,並有其每次寫入的確認閘門;自主品質保證絕不觸及已登入的工作階段。
  • 破壞性操作需要完整的安全階梯(備份 → grep → 軟刪除 → 浸泡 → 硬刪除 → 驗證)與明確授權。

由 DevOtts 撰寫。

相關技能