judgelisted
Install: claude install-skill HsuanYuLee/polaris
# judge — 閘二:執行 oracle
前置必讀:`.claude/skills/references/spine-review-guidance.md`。
輸出有兩部分,權力不一樣:**機械判定會擋**(由 exit code 承載,不需要讀者同意);
**判斷報告不擋**(帶引用的意見,由人裁)。把兩者混在一起,閘就會開始擋一些沒人能精確
定義的東西,然後大家學會繞過它。
## 機械判定:三件事
```bash
# 1. 斷言沒被動過。這一步同時查兩件事:封條與內文自洽,且內文與 git 歷史一致。
# 對不上就停——這時審查根本還沒開始,因為成功的定義變了。
bash scripts/frozen-assertion-fence.sh verify {source}/index.md
# 2. 手上這條量測命令是登錄過的。換過而沒帶紅過證據的命令不被承認。
bash scripts/record-measurement-change.sh verify \
--ledger {source}/.spine/measurement-ledger.json \
--assertion-id A-P1 --command '<cmd>'
# 3. 跑量測。同時看 exit code 與正向證據——exit 0 而沒有正向證據不是通過。
bash scripts/run-hardened-oracle.sh --command '<cmd>' \
--require-tool rg --expect-evidence '<真的量到東西的痕跡>' \
--evidence-out {source}/.spine/evidence/<assertion-id>.json
```
任一項不成立就是非 PASS,沒有討論空間。
`run-hardened-oracle.sh` 會先探工具能力再釘住、要求命令產出證明自己量到東西的輸出、
並原樣保留 stderr 與 exit code。這是因為工具會說謊:PATH 上較早的 shim、靜默跳過的測試、
被吞成 generic timeout 的錯誤,三者都能讓一個空的執行看起來像綠的。
## 成本地板
順手量一次這個 source 逼出了多少檔案。清單用枚舉的,不是用手寫的——手寫的清單由寫的人決定
漏掉什麼,然後檢查就在那個漏掉的地方變綠:
```bash
bash scripts/enumerate-spine-inventory.sh --source {source}
bash scripts/check-spine-cost-floor.sh --inventory {source}/.spine/inventory.json
```
它從 git diff 與 `.spine/` 現況兩處讀,兩處都不能被說服。`.spine/*.json` 這類機器寫的狀態
**算在裡面**——把它排掉數字立刻就合格了,正因為如此那個決定不由量測工具做。地板指的是
「人被迫寫的檔案」還是「流程被迫產生的檔案」,是斷言層的問題,要人在閘一回答。
## 正負兩表都要驗
只有反例的驗證,一個永遠回 FAIL 的審查端也會全綠。正例要能證明**真達標的交付確實被判
PASS**,反例要能證明**被注入問題的交付確實被擋**。兩向都跑。
## 驗證強度分三層
不可以一律降到最弱那層。「一律靜態檢視」看起來省事,實際上是把可以被證偽的東西降級成不能
被證偽的東西。