grill-spec:把規格審查做成四個 pass

我把規格先行的七步開發流程裡「場景審查 + test skeleton」那兩個 pass 做成了 Claude Code skill,放在 ~/.claude/skills/grill-spec/SKILL.mdreferences/bdd-checklist.md)。輸入一份 spec,輸出一份可以直接送回給 spec owner 的問題清單

四個 pass

Pass做什麼完成判準
1 文件層不讀內容,只看章節在不在:非目標、Glossary、狀態轉移表錯誤碼表、相依清單、併發/時區/單位每個缺的章節記成一個洞
2 建 AC 表被審的單位是驗收準則,不是段落。照業務規則分歧切,不照使用情境切spec 裡每一句都被某條 AC 覆蓋
3 抓沉默每一條 ACBDD checklist 專門找規格沒寫到的維度 15 題每條 AC 有 1 成功 + ≥2 失敗場景
4 抓假具體寫 test skeleton:測試名 + 輸入/預期/錯誤路徑三行註記,不寫實作每個預期輸出是具體值,或是一個被記錄下來的洞

Pass 3 與 Pass 4 抓的是不同東西,互相抓不到 → 規格的兩種洞:沉默與假具體

這個 skill 最重要的一條紀律

只把洞攤開,不要把洞補掉。 一個被自己順手推理掉的洞,會在實作第三天原地重現——而這正是這支 skill 存在的理由。有想法的時候,那個想法以「建議答案」的形式寫進問題清單,不能變成一次沉默的修補。

輸出:三堆分類的問題清單

依 AC id 分組(讓 owner 就地回答)、阻塞的那堆放最前面,分類方式見 拿別人的 spec 時要把問題分成三堆

明確排除的三件事

不是洞、直接說清楚就好:owner 改變心意(商業決策)、非功能需求(效能/成本/擴展性,skeleton 只能證明它不可測)、跨團隊共用 schema 或套件的耦合(那是架構治理)。

skeleton 不丟:洞被回答後,把斷言填實就是正式測試。