CARL GITHUB
AI 概念圖:藍調時刻的海岸發射台上,厚重的鋼製夾具扣住尚未點火的火箭底部,白色低溫霧氣從夾具上飄過,比喻檢查沒到齊就不放行。
發射許可:證據到齊,才放行。 AI 生成概念圖。

SCOPE & EVIDENCE

Warrant

agent 說做完了, 憑什麼信?

agent 回報「完成」,卻說不出驗了什麼?這個 skill 讓工作從人核准的 Story 開始,用 repo 自己的驗證指令證明完成,驗不到的就照實回報 partial,交給你審查。

One concrete example

四條有證據,
一條被擋住。

素材取自 Warrant 行為 eval 的案例 09:人已 commit 一份 Story,specs/stories/farewell.md,要新增 bin/farewell,共有五條驗收條件。第 5 條是 “The docs link https://example.com/ answers an HTTP GET with status 200.”,但執行的 sandbox 擋住網路,所以這一條觀察不到。在 agent 裡說「使用 warrant」,就會用到這個 skill。

使用示例 · 不是本次執行紀錄

warrant / 對話示例

使用 warrant,實作 specs/stories/farewell.md。

結論:partial。四條有證據,一條被環境擋住,不拿替代檢查充數。

1Evidence
條件 1–4 都有通過的觀察,make verify 在最終工作樹上通過。
2Skipped or blocked
第 5 條因 sandbox 擋網路而無法觀察,沒有用離線檢查頂替。
3Residual risks
文件連結目前是否可用仍未知。
4Warrant-Result
Warrant-Result: partial; reasons=environment-blocked; followups=none(實際回報中,這一行放在 Evidence 段內)

示意格式;Story 與專案是虛構的,素材取自 Warrant 的行為 eval 案例 09,不是本次執行結果。

01 / When to use

什麼時候用?

適合交給 agent 的工作已經有明確範圍,而你要的是能審查的證據,不只是一句「做完了」。它管的是「完成」的定義,不負責挑要做哪件工作。

  • 實作 依核准的 Story 實作

    repo 已有驗證指令與 CI,你要的是有證據的完成回報。

  • 起草 先起草 Story

    讓 agent 把模糊的要求改寫成可檢查的條件,交給你核准。

  • 不適用 決定做什麼、看懂 diff

    決定下一步做什麼請用 pm,看懂 agent 交出的 diff 請用 AnswerMe。

02 / How it works

從採用,
到完成回報。

光裝 skill 還不夠:repo 要先宣告唯一的驗證指令,範圍由人核准的 Story 決定,agent 只在範圍內做事,最後交出一份回報。

  1. 採用

    貼入區塊到 AGENTS.md,填入唯一的驗證指令,並在 CI 跑這條指令。

  2. 起草 Story

    Story 只有目標、範圍外、驗收條件三段;起草完就停,不實作,也不 commit。

  3. 人核准

    由人 commit 進主分支,或在當次對話明確核准。

  4. 在範圍內實作

    需要做範圍外的事就停下回報。

  5. 完成回報

    回報的結論是 complete 或 partial。

partial 的原因,怎麼分?
原因碼何時用
work-incomplete有交付要求沒做完,或有必要的檢查沒跑、又找不到其他原因。
story-conflict驗收條件互相矛盾,或與範圍外衝突,無法同時遵守;停下來,由人決定。
missing-verification-commandAGENTS.md 沒有宣告驗證指令,或還是佔位字;不自己挑指令,直接停下。
verification-failed執行過的檢查結果是失敗,包括宣告的驗證指令失敗,或後續驗證失敗;若證據顯示有實作要求沒滿足,另外加上 work-incomplete。
environment-blocked環境讓必要的觀察做不到,例如平台、執行檔或網路不可用;指令跑不起來,不等於實作有問題。
user-skipped人明確指示不要跑某項必要的檢查;這個指示不算通過的觀察。
later-phase目前的(未標為後續驗證的)要求,要到之後的階段才觀察得到;不可悄悄改列為後續驗證。

complete 只代表工作樹交付已證明,不代表 commit、CI、合併或部署成功。完整規則見 SKILL.md。

03 / Questions

常見問題

Warrant 會擋 merge 嗎?

不會。強制執行靠你自己的 CI 與審查(ADR-0001)。

complete 代表可以上線嗎?

不代表。它只證明工作樹交付;commit、CI、合併、部署要各自觀察。

Story 為什麼沒有 status 欄位?

由人 commit 進主分支就代表核准,完成與否看證據(ADR-0002)。

只能用在 Claude Code 嗎?

不是。區塊可以貼進任何 agent 的設定,Codex 也有 plugin。

用對的跡象

  • 每條驗收條件都對應一次實際觀察。
  • 回報中恰好有一行 Warrant-Result。
  • 受阻、略過與失敗分開寫,不會事後改分類。
  • 遇到範圍外的工作會停下回報,不會順手做掉。

04 / My work

我在這個作品上的工作

2026-09-29 開始。我做的是三條規則與 skill 本文、AGENTS.md 區塊與 Story 模板、三份 ADR、26 個行為 eval 情境,以及 mutant 對照:把規則反過來寫的版本,對照組的三個情境會掉到門檻以下,用來證明評分器分得出對錯。授權為 MIT。

05 / Boundaries

使用前需要知道

  • 強制執行交給採用端的 CI 與人工審查(ADR-0001)。
  • 它不決定做哪件工作。
  • complete 不代表 commit、CI、合併或部署成功。
  • 結果統計與完成率不是品質改善的因果證據。
  • 行為 eval 會產生模型費用,不在 CI 執行。
  • 本頁示例的素材是虛構的。

06 / Start here

帶回自己的專案

先閱讀完整流程,確認它和專案既有的規則與工具如何銜接,再按自己的情境安裝。

npx skills add https://github.com/CarlLee1983/Warrant/tree/main/plugin/skills/warrant --skill warrant

Claude Code 與 Codex 也可以用 plugin marketplace 安裝:Claude Code 執行 /plugin marketplace add CarlLee1983/Warrant 再 /plugin install warrant@warrant;Codex 執行 codex plugin marketplace add CarlLee1983/Warrant 再 codex plugin add warrant@warrant。無論哪種方式,裝好後都要依流程第 1 步採用。

返回作品總覽

從你正在處理的問題,選下一個入口。