SPEX-SDD 使用指南:各種情境的操作手冊
適用版本:spex-sdd
最後更新:2026 年 8 月
這份指南怎麼讀
| 你的狀況 | 直接跳到 |
|---|---|
| 第一次接觸這個方法 | 〈核心設計〉 |
| 手上有既有專案想導入 | 〈情境 1〉 |
| 要開新專案 | 〈情境 2〉 |
| 想知道某個 FAIL 代碼是什麼意思 | 〈validator 錯誤代碼表〉 |
| 只想抄 prompt | 〈Prompt 範本集〉 |
核心設計
SPEX-SDD 為系統產生一套可實作、可驗證、可被機器把關的技術文件:規格骨幹、七份正式文件、Harness 工程關卡、AI 可執行任務、追溯性輸出與 UI mockup。
核心命題是一句話:
規範若沒有偵測器,就等於沒有寫。
圍繞這句話,方法設計了五個核心機制:
| 機制 | 解決的問題 |
|---|---|
Harness 層(_HARNESS.md + harness.yaml) |
光靠人審查文件與程式碼,沒有任何結構品質把關;測試會過但複雜度爬升、依賴反向沒人知道 |
可執行 validator(scripts/validate_spec.py) |
「概念上檢查」的驗證規則靠 AI 自我宣稱,等於沒有驗證 |
| Slice 增量模式 | 一次產全套,大量規格未經驗證就寫死 |
| Misfit Log | 規範演進若只靠人工事後補救,問題會不斷重演 |
| Pattern Forces(Why / When NOT) | 只有命令沒有理由的規範,AI 在新情境無法推理 |
適合什麼情況:
| 情況 | 建議 |
|---|---|
| 專案要長期維護、AI 會持續改它 | 完整走過 Harness + Misfit Log 迴圈 |
| 你不會逐行讀 AI 寫的程式碼 | 務必啟用 Harness(這正是設計前提) |
| 想知道專案現在的品質基線 | 只跑第 1 步(實作盤點 + 品質基線量測)就有 |
| 一次性交付文件(投標、稽核、驗收),之後不再迭代 | full 模式即可 |
| 只是要一份規格給人看,不進開發流程 | 可用較輕量的方式,只做到七份文件即可,不必展開 Harness |
安裝與位置
已安裝在:
~/.claude/skills/spex-sdd/
├── SKILL.md
├── references/
│ ├── document-specs.md # 七份文件與各產物的格式規格
│ ├── harness-catalog.md # 六項指標 × 各語言工具、門檻、斷言產生法
│ └── validation-rules.md # 人工語意驗證規則
└── scripts/
└── validate_spec.py # 可執行結構驗證器(stdlib only)
~/.claude/skills/ 是全域位置,任何專案都能用。要讓團隊共用就複製到 repo 的 .claude/skills/ 或 .github/skills/。
不需要安裝 PyYAML——validator 有內建的 YAML 子集解析器作為 fallback。
觸發方式
斜線強制觸發(推薦,確定會載入):
/spex-sdd <需求>
自然語言觸發(description 命中即載入):
用 SPEX-SDD 幫 LedgerPro 產技術文件,slice 模式,先做對帳流程
確認有載入:問它「你現在載入了哪些 skill?SPEX-SDD 的六項工程指標是什麼?」答得出突變測試與依賴結構就是有讀到。
使用前要準備什麼
給得越完整越少來回:
| 項目 | 為什麼重要 |
|---|---|
| 所有 repo 路徑 | 前後端分 repo 時只掃 cwd 會漏掉一半;implementation_targets 會指錯 repo |
| 技術棧與測試框架 | 決定 harness.yaml 選哪套工具、acceptance_command 長什麼樣 |
| 既有 design system / UI framework | 沒有的話 mockup 會變成無風格線框 |
| 部署方式(systemd/容器/Pages) | SAD 部署視角與 CI 接線 |
| 有沒有 PR 流程 | 決定 gate 的 blocking 設定與 STO 的 CI 觸發條件 |
| 租戶與權限模型 | 影響架構檢查與 detector 設計 |
| 輸出目錄 | 建議 docs/spec/,跟程式碼同 repo 進版控 |
不確定的可以不給,它會問或標為假設。
模式怎麼選
系統已有實作? ─── 是 ──→ slice(強烈建議)
│
否
↓
模組數 > 8 ? ─── 是 ──→ slice
│
否
↓
需要一次交付完整套件(投標/稽核)? ─── 是 ──→ full
│
否
↓
模組 ≤ 3 ? ─── 是 ──→ full(slice 管理成本大於效益)
│
否
↓
slice
各種情境
情境 1:既有專案第一次導入(最常見)
不要一開口就叫它產全套,分三步走。
第 1 步:只做盤點 + Harness
/spex-sdd
專案:
- 後端 /Users/leo/work/LedgerPro(Go + PostgreSQL)
- 前端 /Users/leo/work/LedgerPro-web(Vue 3 + Vite)
部署:systemd,直推 master 沒有 PR
本次只做兩件事:
1. 實作盤點(含品質基線量測)
2. 設計 Harness:_HARNESS.md + harness.yaml
七份文件先不要產。輸出到 docs/spec/
產出:
實作現況對照表(模組 × 實作狀態 × 實際檔案位置 × 差異)
實際路由清單、實際資料表清單、測試現況
品質基線:覆蓋率多少、最大循環複雜度、最大檔案行數、有無循環依賴
_HARNESS.md+harness.yaml:六項指標的工具、指令、依現況訂的門檻
這一步通常最有價值。它會量出你專案真實的樣子——多數團隊的第一次基線量測會發現覆蓋率比想像低 20-30%、有幾個破千行的檔案、或某兩個模組互相引用。
時間:中型專案 20-40 分鐘。
第 2 步:挑一個 slice 展開
接著做 SLICE-01:對帳流程
展開它的 FR / US / SC / TASK,其餘模組維持 outline 狀態
產出:backbone(本 slice 完整、其餘 outline)、七份文件的對應章節、agent_tasks.md、agent_execution_plan.json、validator 輸出。
怎麼挑第一個 slice:選「風險最高且目前沒有測試覆蓋」的,不要選最簡單的。第一個 slice 的目的是驗證這套流程走不走得通,簡單的 slice 驗證不出問題。
第 3 步:實作 → 跑 gate → 回寫
依 agent_tasks.md 執行 TASK-RECON-001,先寫測試再實作
完成後跑它的 gate_ids,結果回寫到 _HARNESS.md 與 misfit-log.md
跑完一輪後檢視:gate 有沒有紅?紅的是程式碼問題還是門檻訂太高?有沒有人工發現但 gate 沒抓到的問題(那是 undetected,優先補 detector)。
情境 2:全新專案從零開始
/spex-sdd
新系統:思沛授權管理系統 v2(LMS2)
業務背景:管理產品授權發放、線上啟用、裝置綁定與稽核,供內部與經銷商使用
技術棧:.NET 9 + PostgreSQL + Redis + Vue 3
模組:授權發放、啟用驗證、裝置綁定、稽核查詢、管理後台
多租戶(經銷商即租戶),有管理後台
部署:Docker + systemd
full 模式,輸出到 ./docs/spec
綠地的特殊處:
沒有實作可盤點,gate 基線一律
not_measured所有 gate 先設 report-only,等有程式碼再轉 blocking
第一批 TASK 會包含「建立測試骨架 + 架構測試」,這是刻意的——沒有 test runner 就沒有任何後續指標
implementation_status全為not_started,implementation_targets全列入new_files
綠地反而更該把 Harness 做好——從第一天就有架構斷言,BC 邊界永遠不會漂掉。
情境 3:只想量現況,還不想產文件
/spex-sdd
只做實作盤點與品質基線量測,輸出一份現況報告
不要產 backbone、不要產文件、不要產 harness
適合:
接手陌生專案想快速掌握
決定要不要導入前先估工作量
給主管看的技術債報告
產出:實作現況對照表 + 六項指標的實測數值。不動任何檔案。
情境 4:推進下一個 slice
/spex-sdd SLICE-03:退貨與折讓流程,接續 docs/spec/ 既有 backbone
它會:讀既有 backbone → 不動既有 ID → 只增補本 slice 的 registry 列與文件章節 → 更新 slice registry → 跑 validator。
檢查點:確認它沒有動到既有 slice 的內容。validator 的 id.duplicate 和版本歷程可以佐證。
情境 5:零測試專案
最常見的棕地狀況。別想一次六項全開。
harness-catalog.md 有建置順序,照這個排 slice:
| 順序 | Gate | 為什麼是這個順序 |
|---|---|---|
| 1 | 測試骨架 + GATE-UT | 沒有 test runner 就沒有任何後續指標 |
| 2 | GATE-ARCH(依賴結構) | 沒有測試也能跑,最便宜最快見效,防止架構在補測試期間繼續腐爛 |
| 3 | GATE-COV(覆蓋率) | 先 report-only 兩週取得基線再設門檻 |
| 4 | GATE-LINT / 自訂 detector | 把既有 forbidden_actions 逐條綁上 |
| 5 | GATE-CX(複雜度/大小) | 先 report-only,超標處排重構 TASK |
| 6 | GATE-MUT(突變測試) | 最貴,且要等測試量夠了才有意義;只對 Domain 層、nightly 跑 |
Prompt:
本專案目前零測試。請依 harness-catalog 的零起點順序,
把六個 gate 的建置各排成一個 TASK-HARNESS-xxx,
並在 agent_execution_plan.json 標好依賴順序
情境 6:多 repo(前後端分離)
這是多 repo 系統最容易出錯的地方,本方法有專門的檢查。
/spex-sdd
本系統橫跨三個 repo:
- /Users/leo/work/XurfGoAPI-Gateway(Go,gateway + 微服務)
- /Users/leo/work/XurfPOS_PLUS(Vue 3,POS 前端)
- /Users/leo/work/xurf-infra(部署腳本與 systemd unit)
三個都要盤點。implementation_targets 必須指對 repo。
harness.yaml 的 gate 要分 repo 定義(Go 與 TS 用不同工具)
驗證方式:
# 分別對每個 repo 檢查路徑
python3 .../validate_spec.py docs/spec --repo /Users/leo/work/XurfGoAPI-Gateway
python3 .../validate_spec.py docs/spec --repo /Users/leo/work/XurfPOS_PLUS
看 path.missing 有沒有出現在不該出現的 repo。
情境 7:只想補某個模組的 UI/UX 規格
/spex-sdd
只針對「訂單管理」模組補 UI/UX 規格:
- FSD 的 Screen Contract(含 State Matrix、Interaction Contract、RWD)
- USD 的 UI 驗收場景
- STO 的 UI/UX 測試矩陣
- UI mockup(HTML→PNG 高擬真,用專案既有 Tailwind token)
- TASK-UI-xxx,含 detector 綁定
其他章節不動
UI/UX 判準(產品級設計水準、避免 AI 生成感的逐項檢查、mockup 與狀態示意圖必須並存)集中放在 references/document-specs.md 管理。
UI 的 detector 現實:多數 UI 規範綁得上 lint rule(window.confirm、技術 enum 直出),但「多個 primary action 競爭」這類綁不上——會被放進 advisory_notes 並登記 misfit-log,這是設計上的誠實,不是漏掉。
情境 8:交付用(投標、稽核、驗收)
/spex-sdd
full 模式,產出完整七份文件套件
用途:客戶驗收交付,需要文件完整性
Harness 部分仍要產,但 gate 全設 report-only(客戶端 CI 我們碰不到)
full 模式下所有模組都會完整展開,不會有 outline 狀態。
注意:full 模式產出的規格量大,其中相當比例沒有經過任何實作驗證。交付前建議在文件標註「本文件為設計規格,實作狀態見實作現況對照表」。
情境 9:AI 違反了規範,被人工發現
這是 misfit log 的核心流程,也是這個方法唯一的學習輸入。
剛才 code review 發現 AI 在 handler 裡直接組 SQL 字串帶 tenantId,
GATE-ARCH-03 沒有抓到(它只檢查參數傳遞,不檢查字串拼接)。
請記入 misfit-log.md
會記兩筆:
| 類型 | 內容 |
|---|---|
rule-violation |
AI 違反了「不可硬編 tenantId」 |
undetected |
沒有 gate 能抓到字串拼接的租戶條件 |
第二筆是重點——它代表 harness 有洞。應自動建議一個 TASK-HARNESS-xxx 去補 analyzer 規則。
判斷準則:問自己「這個問題是被 gate 抓到的,還是我人工發現的?」人工發現的一律記 undetected,不管當下有沒有時間補。
情境 10:gate 一直紅,或門檻訂錯了
GATE-COV-01 連續三次紅燈,Domain 覆蓋率卡在 82%,門檻是 90%。
請依 misfit-log 的處理規則判斷這是程式碼問題還是門檻問題
處理規則:
同一 gate 連紅 3 次 → 檢討門檻是否不合理,或任務拆得太大
門檻要重訂時,必須同時更新
baseline/threshold/target/ 期程四欄,並記入版本歷程
不要偷偷把門檻調低就算了,調整要留痕跡,否則半年後沒人知道為什麼標準變鬆了。
反模式:把 gate 從 blocking 改成 report-only 來「解決」紅燈。一個被關掉的 gate 比沒有 gate 更糟——它會製造「我們有在把關」的錯覺。
情境 11:接下游測試產生器
backbone 產完後:
/spex-gen-test-docs-v5 # Unit / Integration / Component / E2E
/spex-gen-e2e-docs-v5 # 前端 App 的 E2E 專家層
它們會自動偵測並消費本方法的 canonical 產物,沿用 SC/SCREEN/FR/US/TASK ID,不另行發明。
額外提供給它們的:harness.yaml 的覆蓋率與突變測試門檻,就是這兩個 skill 的目標值。可以明講:
/spex-gen-test-docs-v5
目標門檻依 docs/spec/harness.yaml:Domain 層 line coverage ≥ 90%、mutation score ≥ 70%
情境 12:接進 CI
harness.yaml 的 ci 區段定義了分類,但實際的 CI 設定要你自己接。建議:
# .github/workflows/spec-check.yml(示意)
- name: 規格結構驗證
run: python3 .claude/skills/spex-sdd/scripts/validate_spec.py docs/spec --repo .
- name: Harness blocking gates
run: |
dotnet test tests/Domain.Tests # GATE-UT-01
dotnet test /p:CollectCoverage=true /p:Threshold=90 # GATE-COV-01
dotnet test --filter Category=Architecture # GATE-ARCH-01
把 validator 接進 CI 是最划算的一步——文件跟程式碼一起被把關,才不會又慢慢腐爛回去。exit code 1 代表有 FAIL。
也可以請它幫你產:
依 harness.yaml 產生對應的 GitHub Actions / GitLab CI 設定檔
blocking gate 進 PR check,nightly gate 進排程 workflow
情境 13:多人協作、文件進版控
建議把 docs/spec/ 進 git,和程式碼同 repo。
衝突處理:
backbone 是唯一 ID registry,多人同時新增 slice 會在 registry 表格處衝突
建議約定:一次一個人推一個 slice,或每人負責固定模組
misfit-log.md是 append-only,衝突機率低
Code review 時看什麼:
backbone diff(有沒有動到既有 ID?)
validator 輸出(PR 描述裡貼)
_HARNESS.md的門檻有沒有被偷偷調低
產出物導覽
| 檔案 | 誰看 | 看什麼 |
|---|---|---|
_SPEC_BACKBONE.md |
全員 | 所有 ID 的唯一來源;改任何東西前先看這份 |
_HARNESS.md |
技術負責人 | 六項指標現況、門檻、盲區清單 |
harness.yaml |
CI / validator | 機器讀的 gate 定義 |
misfit-log.md |
技術負責人 | 哪些問題重複發生、harness 有哪些洞 |
agent_tasks.md |
工程師 / AI agent | 下一步做什麼、先寫哪個測試 |
agent_execution_plan.json |
AI agent | 任務依賴圖與驗收指令 |
traceability.json |
CI / 下游 skill | 需求到測試的追溯鏈 |
| 01 SRS | PM / 需求方 | BR、FR、NFR 與 gate 綁定 |
| 02 DDM | 架構師 | BC、Aggregate、Invariant、Context Map |
| 03 FSD | 工程師 | API、資料表、Screen Contract |
| 04 USD | QA / 驗收 | 雙層 Gherkin;DSL 層是人類的責任落點 |
| 05 SAD | 架構師 / 維運 | 部署、災復、可觀測性、架構約束與斷言 |
| 06 STO | QA | 測試策略、Scenario-Test-Task 矩陣、harness 門檻 |
| 07 DEV | 工程師 | 環境、專案結構、開發順序、本機怎麼跑 gate |
產出後的三分鐘檢查
打開
_HARNESS.md,看六項指標是不是都有 gate 或不適用理由打開
agent_tasks.md第一個 TASK,看它的禁止事項有沒有 Detector 欄跑一次 validator,確認 FAIL = 0
validator 使用
基本用法
# 結構驗證
python3 ~/.claude/skills/spex-sdd/scripts/validate_spec.py docs/spec
# 加上 repo 檢查 implementation_targets 路徑是否存在
python3 .../validate_spec.py docs/spec --repo /path/to/repo
# JSON 輸出給 CI 解析
python3 .../validate_spec.py docs/spec --json
離開碼:0 = 無 FAIL;1 = 有 FAIL;2 = 找不到必要產物。
輸出解讀
[WARN] harness.to_be_built: 待建置的 gate:GATE-MUT-01(需有對應 TASK)
[FAIL] task.no_gate: TASK TASK-MSG-001 未列出 gate_ids(必填)
--- FAIL 1 / WARN 1 / PASS 5 ---
FAIL 必須修掉才算完成
WARN 必須逐條說明處置(可以是「已知,本期不處理,理由是…」)
PASS 是通過的檢查群組數,不是檢查項數
錯誤代碼表
追溯性
| 代碼 | 意義 | 怎麼修 |
|---|---|---|
id.duplicate |
重複 ID | 改其中一個;不要重用已廢棄的 ID |
id.missing |
項目缺 id 欄位 | 補上 |
br.no_fr / br.no_scenario |
Must BR 沒有 FR 或 SC | 補;或把 priority 降為 should |
fr.no_br / fr.no_module |
FR 缺上游或模組 | 補 |
fr.uncovered |
FR 沒有 SC 也沒有 TASK | 補,或標 coverage: deferred + 理由 |
sc.no_us / sc.orphan_us |
Scenario 沒對應或指向不存在的 US | 補 / 修 ID |
sc.missing_layer |
缺 DSL 或 ISA 層 Gherkin | 補;雙層是硬性要求 |
sc.no_test_level / sc.no_test_file |
缺測試層級或檔案 | 補;不自動化要寫 no_automation_reason |
sc.no_task |
Scenario 沒有對應 TASK | 通常代表規格還太抽象,拆任務 |
任務
| 代碼 | 意義 | 怎麼修 |
|---|---|---|
task.no_test_first |
沒列先寫測試 | 補;這是 TDD 的入口 |
task.no_targets |
沒列實作目標 | 補 |
task.no_acceptance / task.vague_acceptance |
沒有或太籠統的驗收指令 | 寫成可直接複製執行的指令,不可寫「執行測試」 |
task.bad_status |
implementation_status 值錯 | 只能是 done / partial / not_started |
task.no_existing_files |
標 done/partial 但沒附既有檔案 | 補實際路徑 |
task.no_gate |
缺 gate_ids | 必填;列出完成時要通過哪些 gate |
task.plain_forbidden |
禁止事項還是純文字 | 改成 {rule, detector, why} |
task.unbound_rule |
規範沒有 detector | 移到 advisory_notes + 開 misfit 待建偵測器 |
task.orphan_detector |
detector 不存在於 harness | 修 ID 或補該 gate |
Harness
| 代碼 | 意義 | 怎麼修 |
|---|---|---|
harness.metric_missing |
六項指標缺某一項 | 補 gate,或在 not_applicable 寫明理由 |
harness.gate_no_command / gate_no_threshold |
gate 缺可執行指令或門檻 | 補 |
harness.no_uncovered_risks |
沒有顯式聲明盲區 | 加 uncovered_risks:(可為空陣列) |
harness.binding_none / binding_orphan |
rule_bindings 的 detector 有問題 | 修 |
harness.md_missing |
找不到 _HARNESS.md |
產出它 |
harness.to_be_built(WARN) |
gate 標為待建置 | 確認有對應的建置 TASK |
計畫與追溯檔
| 代碼 | 意義 |
|---|---|
plan.cycle |
任務依賴形成循環(會印出完整路徑) |
plan.missing_task / plan.extra_task |
backbone 與 execution plan 不同步 |
plan.orphan_dep |
依賴不存在的任務 |
trace.orphan_id |
traceability 出現 backbone 沒有的 ID |
trace.missing_sc(WARN) |
Scenario 沒出現在 traceability |
path.missing |
路徑不存在於 repo(新檔案要列入 new_files) |
nfr.no_gate |
可測量 NFR 沒綁 gate 也沒說明理由 |
Prompt 範本集
盤點與基線(第一次導入必跑)
/spex-sdd
專案 repo:<路徑清單>
技術棧:<...>
本次只做實作盤點與品質基線量測 + Harness 設計,不產七份文件
輸出到 docs/spec/
展開一個 slice
/spex-sdd
SLICE-0X:<模組或流程名稱>
接續 docs/spec/ 既有 backbone,只展開本 slice,其餘維持 outline
完成後跑 validator 並附輸出
全套(綠地或交付)
/spex-sdd
新系統:<名稱>
業務背景:<兩三句>
技術棧:<...>
模組:<清單>
權限/租戶:<...>
部署:<...>
full 模式,輸出到 ./docs/spec
記錄 misfit
<描述發現的問題>
這是被哪個 gate 抓到的?如果是人工發現,記為 undetected 並提出 detector 方案
只補 Harness
/spex-sdd
docs/spec/ 已有完整文件。只產 _HARNESS.md 與 harness.yaml:
先量基線,門檻訂在現況+合理增量,六項指標缺的寫不適用理由
產 CI 設定
依 docs/spec/harness.yaml 產生 GitHub Actions workflow:
blocking gate 進 PR check、nightly gate 進排程、validator 每次都跑
要求驗證報告
對 docs/spec/ 跑完整驗證:
1. 實跑 scripts/validate_spec.py 並貼出原始輸出
2. 依 validation-rules.md 做語意驗證(UI 水準、實作對齊、規範 forces)
3. 列出所有 FAIL 的修正方案與所有 WARN 的處置說明
常見錯誤
錯誤一:一開口就要全套
棕地專案叫它 full 模式產七份文件,會得到大量沒經過驗證的規格,且改起來要動七個檔案。先盤點、再 slice。
錯誤二:門檻訂理想值
「覆蓋率就該 90%」——現況 45% 的專案設 90%,第一天全紅,一週內 gate 被關掉。應該訂在現況 + 合理增量,把 90% 放在 target 欄配期程。
錯誤三:把紅燈 gate 改成 report-only 了事
這是最危險的反模式。改門檻可以,但要留痕跡、記版本歷程、寫理由。偷偷關掉等於自欺。
錯誤四:不記 undetected
「這次人工抓到了,修掉就好」——下次同樣的問題還是只能靠人工抓。每一筆人工發現都代表 harness 有洞,不記就永遠補不起來。
錯誤五:規範沒寫 Why
不可使用 EF Core——AI 在遇到規範沒提到的 ORM 時無法判斷該不該用。寫上 Why(「團隊統一用 Dapper,混用會造成 transaction 邊界混亂」)它才能推理。
錯誤六:跳過 validator
「AI 說它檢查過了」不算。這個方法的整個設計前提就是不信任自我宣稱,輸出要貼出來。
錯誤七:只掃 cwd
前後端分 repo 卻只給一個路徑,會得到一半的盤點結果和指錯 repo 的 implementation_targets。
錯誤八:突變測試一開始就全開
它很慢。第一次只對 Domain 層開、nightly 跑。整個 repo 全開會讓 CI 變成幾小時。
完成定義
一個 slice 或一次生成算完成,必須:
scripts/validate_spec.py實跑,FAIL = 0,輸出已貼出_HARNESS.md與harness.yaml存在,六項指標各有 gate 或不適用理由每條
forbidden_actions都是物件格式且 detector 存在每個可測量 NFR 綁 gate 或說明為何不能
每個 TASK 有
gate_ids、test_first、可執行的acceptance_commandimplementation_status正確(不會叫 AI 重寫已完成的功能)uncovered_risks已顯式聲明,且_HARNESS.md說明人工補償措施slice 模式:本 slice 完整、其餘
outline且未被寫成細節、slice registry 已更新有 UI 者:Screen Contract + mockup + 狀態示意圖三者齊備
misfit-log 已記錄本次的 gate 結果與發現
建議的實務節奏
| 週期 | 做什麼 |
|---|---|
| 導入時(一次) | 盤點 + 基線 + Harness 設計 + 第一個 slice |
| 每個功能 | 展開 slice → 實作 → 跑 gate → 回寫 status |
| 每次 PR | validator + blocking gates |
| 每晚 | 突變測試等昂貴 gate |
| 每兩週 | 檢視 misfit-log:有沒有 undetected 未處理?有沒有 gate 連紅? |
| 每季 | 依 misfit-log 的累積提案修訂規範;重新量基線、調整門檻 |
一句話
這個方法不是要你寫更多文件,是要你把已經寫下的規範變成機器會執行的檢查。
沒有 detector 的規範,寫得再好也只是願望。
相關文件
設計歷程:
spex-sdd_設計歷程_把規範變成機器可驗證的關卡.mdv4 方法論(backbone / DDD-BDD-TDD 的原始設計):
generate-tech-docs-v4_從規格到開發的技術文件方法論.mdSkill 內部規格:
~/.claude/skills/spex-sdd/references/