Community程式設計與開發github.com

wesleymatosdev/行為證明驗證

在宣告工程工作完成前,先證明其行為符合預期。

行為證明驗證 是什麼?

此技能「行為證明驗證」用於審查現有實作、委派工作或交付就緒狀態。它強調綠色指令、靜態審查或代理人摘要本身並非證明,除非它們實際執行了所宣稱的行為。使用者應在代理人宣稱任務完成、測試通過但行為強度未知、或錯誤修復、UI變更、整合、營運變更需要驗證時使用。此技能提供一個五步驟程序:命名宣稱的行為、選擇最近的實際接合點、證明探測有其效力、執行並檢視證明、以及處理衝突證據。它支援 Claude Code、Cursor 和 Codex 等 AI 代理平台,作為一個 Markdown 文件(SKILL.md)來引導 AI 代理進行嚴謹的行為驗證。此技能幫助開發者避免常見陷阱,例如使用 Node 驗證瀏覽器主控台行為(`console.log` 無 `%c` 支援會掩蓋錯誤),或使用「未拋出錯誤即渲染」、純類型測試夾具、或 `.todo()` 測試等無效證明。最終,它確保完成報告包含已證明的行為、使用的確切命令或動作、觀察到的結果,以及任何未經驗證的邊界。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wesleymatosdev/skills/tree/main/standards/proof-bearing-verification

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

在你喜歡的 AI 中提問

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

說明文件

行為證明驗證 是做什麼的?

在審查現有實作、委派工作或交付就緒狀態時使用。綠色指令、靜態審查或代理人摘要本身並非證明,除非它實際執行了所宣稱的行為。

使用時機

  • 代理人宣稱任務已完成。
  • 測試通過,但其行為強度未知。
  • 錯誤修復、UI 變更、整合或營運變更需要驗證。
  • 靜態審查與先前在執行時期驗證的行為相衝突。

請勿將其用於新程式碼的「測試驅動開發」;而是在實作之後或同時,用它來驗證證據。

程序

  1. 命名所宣稱的行為。

    • 陳述所斷言的用戶可見或外部可觀察的結果。
    • 完成條件:該宣稱可以在不參考實作細節的情況下進行測試。
  2. 選擇最近的實際接合點。

    • 優先選擇掛載的元件互動、整合請求、CLI 調用、API 呼叫或端到端流程,而非僅匯入或快照測試。
    • 使用逼真的有效負載和生產環境形狀的測試夾具。
    • 完成條件:探測器能觸及到所宣稱行為的程式碼路徑。
  3. 證明探測有其效力。

    • 對於變更或移除的行為,請先在沒有該實作或(在安全的情況下)刻意使用空操作的情況下觀察到失敗。
    • 在繞過被變更單元時仍保持綠燈的測試是空洞的,不得用作證據。
    • 完成條件:探測器能區分正常運作的行為與相關的錯誤行為。
  4. 執行並檢視證明。

    • 執行聚焦的檢查,然後執行專案適用的更廣泛檢查。
    • 閱讀測試或測試框架程式碼,而非信任其作者提供的摘要。
    • 完成條件:輸出和實作都確實支持該宣稱。
  5. 處理衝突證據。

    • 將用戶驗證的執行時期行為視為證據,在以其取代靜態審查建議之前需要對此證據提出解釋。
    • 追溯造成明顯矛盾的框架、快取、基礎設施或執行時期語義。
    • 完成條件:任何變更都遵循最有力的可用證據,而非審查者的信心。

陷阱

  • 請勿使用 Node 驗證瀏覽器主控台行為。 Node 的 console.log 不支援 %c——它會將樣式字串當作一般引數處理並靜默丟棄,因此 Node/Python 的測試框架會輸出乾淨的網格,從而掩蓋了損壞的 DevTools 渲染。若要驗證主控台輸出,請透過 CDP 驅動真實瀏覽器(headless Chrome --remote-debugging-port + 一個捕捉 Runtime.consoleAPICalled 的 WebSocket 腳本),或從實際主控台取得用戶可見的證據。在與目標不同的主控台引擎上運行的測試框架並非證明。
  • 含有非常大量 %c 區段的 console.log 會溢出 DevTools。 主控台格式化程式一次消耗一個引數說明符;當單一呼叫包含太多樣式化區段時(例如約 193 個),尾部的樣式字串就不會被當作樣式消耗——它們會以未格式化的文字形式直接印出(典型的 color:#...;font-family... 垃圾傾印)。根據 Chrome 文件解決方法:每行/每列一個 console.log,每個都包含有限數量的 %c 執行。這就是為什麼將逐字元 ASCII 藝術作為一個巨大的 console.log('%c%s%c%s...') 會洩漏樣式。
  • 「未拋出錯誤即渲染」、純類型測試夾具、取代被測單元的模擬物件,以及 .todo() 測試均無法證明行為。
  • 切勿僅為滿足淺層測試框架而改變生產行為。
  • 當外部依賴、UI 互動或部署路徑未經實際演練時,切勿宣稱完成;請回報未經驗證的邊界。

驗證

完成報告必須包含:已證明的行為、使用的確切命令或動作、觀察到的結果,以及任何仍未被驗證的邊界。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能