D-20260724-05|三域規則 ID 制度¶
背景與驅動力¶
共識帳本、經濟與 moderation 的規範性規則散落在多份檔案:同一條規則常在領域 canon、 程式架構與算式表各有一份敘述。改動時要靠全文搜尋找齊所有 copy,漏改哪一處只能靠人工 複審發現——而跨檔 copy 漂移正是本 corpus 反覆出現的缺陷型態。
測試側同樣沒有著力點:一條測試無法宣告自己在驗哪一條規則,於是「這條規則有沒有被驗」 永遠沒有可查的答案。
考慮過的選項¶
- 維持純敘述、靠複審把關:已被多輪 drift 證明不可靠,棄。
- 為每句規範性敘述都掛 ID:純敘述與規範性規則混雜,registry 會膨脹到失去訊號,棄。
- 只對共識相關的三個域掛 ID,並以認定準則限制範圍(採納)。
決定¶
- ID 格式為
PREFIX-R-nnn,三域前綴為LEDGER、ECON、MOD。 - 每個 ID 全 corpus 只有一個主錨,以粗體括號掛在規則句上;跨檔重述處掛同 ID 引用錨且 不加粗。同一規則的多處 copy 自此被同一個 ID 綁死。
- 認定準則:違反會造成共識分叉、錯帳或裁決不同,且能寫出失敗測試。純敘述、工程慣例與 介面措辭不掛。
- 編號 append-only,新增取該域下一號;廢止的規則不回收號碼,以免既有引用被改指他物。
- registry 由掃描生成、derived 非權威;檢查器入 CI,看守主錨唯一性與三域連號。
- 版本域的規則列為擴域候選,本輪不掛號。
後果與影響¶
規則有了可被工具與測試引用的穩定名稱,跨檔 copy 的漂移由機器攔截,改共用規則時漏改 鏡像會在 CI 顯形。
代價是新增規範性規則多一道掛號手續,且認定準則的邊界只能靠複審維持——把敘述性句子掛 上號會稀釋 registry 的訊號,比不掛更糟。掛號本身不保證規則被驗證;追溯到測試是另一層 制度,見 D-20260725-06。