grill-spec:把規格審查做成四個 pass
我把規格先行的七步開發流程裡「場景審查 + test skeleton」那兩個 pass 做成了 Claude Code skill,放在
~/.claude/skills/grill-spec/(SKILL.md+references/bdd-checklist.md)。輸入一份 spec,輸出一份可以直接送回給 spec owner 的問題清單。
四個 pass
| Pass | 做什麼 | 完成判準 |
|---|---|---|
| 1 文件層 | 不讀內容,只看章節在不在:非目標、Glossary、狀態轉移表、錯誤碼表、相依清單、併發/時區/單位 | 每個缺的章節記成一個洞 |
| 2 建 AC 表 | 被審的單位是驗收準則,不是段落。照業務規則分歧切,不照使用情境切 | spec 裡每一句都被某條 AC 覆蓋 |
| 3 抓沉默 | 對每一條 AC 跑 BDD checklist 專門找規格沒寫到的維度 15 題 | 每條 AC 有 1 成功 + ≥2 失敗場景 |
| 4 抓假具體 | 寫 test skeleton:測試名 + 輸入/預期/錯誤路徑三行註記,不寫實作 | 每個預期輸出是具體值,或是一個被記錄下來的洞 |
Pass 3 與 Pass 4 抓的是不同東西,互相抓不到 → 規格的兩種洞:沉默與假具體。
這個 skill 最重要的一條紀律
只把洞攤開,不要把洞補掉。 一個被自己順手推理掉的洞,會在實作第三天原地重現——而這正是這支 skill 存在的理由。有想法的時候,那個想法以「建議答案」的形式寫進問題清單,不能變成一次沉默的修補。
輸出:三堆分類的問題清單
依 AC id 分組(讓 owner 就地回答)、阻塞的那堆放最前面,分類方式見 拿別人的 spec 時要把問題分成三堆。
明確排除的三件事
不是洞、直接說清楚就好:owner 改變心意(商業決策)、非功能需求(效能/成本/擴展性,skeleton 只能證明它不可測)、跨團隊共用 schema 或套件的耦合(那是架構治理)。
skeleton 不丟:洞被回答後,把斷言填實就是正式測試。