Skip to content

符規 — Conformance

符規 (Conformance)

符規,正是讓一條在台北寫的規則,能原封不動跑在西雅圖的引擎上。三個等級定義「實作 ATR」代表的意涵——任何符規的引擎,對同一條規則都評估出同一個結果。每一等級在 repository 中以 YAML fixture 形式發布對應的測試套件 (test suite);符規靠跑出來,不靠宣稱。

Working Draft·版本 3.5.6·更新於 16 June 2026·正式網址 /spec·編輯 Adam Lin

L1 Engine Conformance Normative

L1 engine 是讓格式可攜的那一層。它 MUST 能解析任何通過 spec/atr-schema.yaml 驗證的規則,MUST 以 §3.5 定義的語意評估 detection.conditions,並 MUST 遵守 scan_target 與 status 的語意——好讓同一條規則,無論引擎出自誰手,都得出同一個判定。L1 engine MAY 拒絕落在其宣告 scan_target 範圍外的規則。

L2 Publisher Conformance Normative

L2 publisher 在廠商前綴 (vendor-prefixed) 的子範圍 (例如 ACME-YYYY-NNNNN) 內發布符合 ATR 語意的規則。L2 publisher MUST 遵守 §3.7 的廢棄政策,SHOULD 為每一條發布規則附上 test_cases。

L3 Sub-range Authority Normative

L3 sub-range authority 是國家級或組織級的主體,在主權 (sovereign) 前綴下鑄造規則 (例如 ATR-TW-2026-NNNNN)。授權依 /charter §5 程序核發;TSC 成立後由其核發,在此之前由主理人 (BDFL) 暫代。

TSC 尚未就任。授權之核發於 TSC 就任後生效;在此之前,由首席維護者 (BDFL) 行使此角色。

測試套件 (Test Suite)

L1 engine 測試套件由主 repository 中 spec/conformance/ 下的 YAML fixture 組成。每個 fixture 配對一條規則與其在固定事件 (event) 上的預期評估結果——契約寫在 fixture 裡,不寫在任何單一實作裡。實作通過的條件是:每個 fixture 都如宣告般評估。兩個都通過的引擎,在測試套件涵蓋的每一條規則上,由構造保證彼此一致。

spec/
└── conformance/
    ├── L1/
    │   ├── 001-basic-match.yaml
    │   ├── 002-scan-target-mismatch.yaml
    │   ├── 003-status-draft-skip.yaml
    │   └── …
    ├── L2/
    │   └── …
    └── README.md

每個 fixture 為一份 YAML 檔,內含目標規則、輸入 event、與預期評估結果三段。Engine 實作者於本地 clone repo、跑測試套件、產出 pass/fail 報告。

自我認證 (Self-Certification)

實作者在本地執行測試套件,並對 ADOPTERS.md 開立 pull request 加入整合 metadata,即可自我認證 (self-certify)。維護者(TSC 成立後)可隨時對任一已發布產物重跑測試套件以驗證自我認證。

TSC 尚未就任。上述驗證職責於 TSC 就任後由 TSC 行使;在此之前,由首席維護者 (BDFL) 行使此角色。

通過測試套件後,實作者於 ADOPTERS.md ↗ 開立 pull request,內容包含組織名稱、規格版本、整合日期 (ISO 8601)、可驗證之公開證據連結、自我宣告之符規等級。維護者以七日內完成 schema 驗證並合併為目標。完整流程與已合併之實作者見 /implementers


編輯: Adam Lin <[email protected]> — DOI 10.5281/zenodo.19178002 — MIT License — ISO 8601 2026-06-16