← ClaudeAtlas

judgelisted

施工告一段落、要判這次到底算不算達成時的站。跑硬化 oracle 給出會擋人的機械判定,另出不擋人的判斷報告,兩者分開。流程的第二個閘,也是最後一個。
HsuanYuLee/polaris · ★ 5 · AI & Automation · score 80
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**,反例要能證明**被注入問題的交付確實被擋**。兩向都跑。 ## 驗證強度分三層 不可以一律降到最弱那層。「一律靜態檢視」看起來省事,實際上是把可以被證偽的東西降級成不能 被證偽的東西。