Constitution-14 Adversarial Self-Check (15/15, computed)
07 - Constitution-14 Adversarial Self-Check (computed)
The method change the user demanded: instead of asserting correctness in prose, T1 built the
canonicalizer as real executable code and ran it. python3 canonicalizer-fix7-canon-v1-ssot.py --selftest
→ 22/22 PASS, exit 0 (the 15 required Article-14 scenarios are all covered). Codex should only need to
confirm the result.
The 15 required scenarios (blocker F) — each with concrete expected status
| # | attempt | required outcome | result (computed) |
|---|---|---|---|
| 1 | include checkpoint's own future revision in authority hash | rejected (no self-revision) | PASS — own-revision is NON_AUTHORITY_DIAGNOSTIC; a seal self-edge → cycle detected |
| 2 | define a second canonicalizer in another active doc | fail | PASS → DUPLICATE_CANONICAL_AUTHORITY / CANONICALIZER_SSOT_MISMATCH |
| 3 | run a package with a different canonicalizer hash | fail | PASS → CANONICALIZER_SSOT_MISMATCH (G-CANONICALIZER-SSOT-ONLY) |
| 4 | document_id with . |
reject | PASS → DOCUMENT_ID_ALIAS_REJECTED |
| 5 | document_id with .. |
reject | PASS → DOCUMENT_ID_ALIAS_REJECTED |
| 6 | document_id with // |
reject | PASS → DOCUMENT_ID_ALIAS_REJECTED |
| 7 | document_id with empty segment (trailing slash) | reject | PASS → DOCUMENT_ID_ALIAS_REJECTED |
| 8 | document_id with backslash | reject | PASS → DOCUMENT_ID_ALIAS_REJECTED |
| 9 | document_id with URL-encoded alias | reject | PASS → DOCUMENT_ID_ALIAS_REJECTED |
| 10 | marker_kind=DOC_STATUS but literal from another kind | reject | PASS → MARKER_KIND_LITERAL_INCONSISTENT |
| 11 | unknown marker_kind | reject | PASS → MARKER_KIND_UNKNOWN |
| 12 | marker_literal typo with valid kind | reject | PASS → MARKER_LITERAL_NOT_ALLOWED |
| 13 | ACTIVE_AUTHORITY using report-only canonical explanation as authority | fail | PASS → DUPLICATE_CANONICAL_AUTHORITY (only the SSOT is load-bearing) |
| 14 | implementation package referencing non-SSOT canonicalizer | fail | PASS → CANONICALIZER_SSOT_MISMATCH |
| 15 | seal graph with checkpoint self-revision edge | cycle / reject | PASS → cycle detected = True (G-NO-SELF-REVISION-ANCHOR / G-SEAL-HASH-GRAPH-ACYCLIC) |
(Scenarios 2/3/13/14 share the SSOT-only / no-duplicate machinery; 1/15 share the self-revision/DAG check. Plus the additional positive + field-rejection vectors below for completeness.)
Raw --selftest output (abridged, exit 0)
FIX7-CANON-V1 CANONICALIZER SSOT SELFTEST
[PASS] membership == f2bda8...fe251
[PASS] DAG acyclic
[PASS] no self-revision input in load-bearing
[PASS] valid doc id accepted
[PASS] valid marker accepted
[PASS] doc_id '.' segment -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id '..' segment -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id '//' -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id empty seg(trailing) -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id backslash -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id url-encoded -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id homoglyph slash -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id leading slash -> DOCUMENT_ID_ALIAS_REJECTED
[PASS] doc_id scope mismatch -> DOCUMENT_ID_SCOPE_MISMATCH
[PASS] doc_id != mcp (case) -> DOCUMENT_ID_NOT_MCP_CANONICAL
[PASS] marker unknown kind -> MARKER_KIND_UNKNOWN
[PASS] marker kind/literal inconsistent -> MARKER_KIND_LITERAL_INCONSISTENT
[PASS] marker literal typo -> MARKER_LITERAL_NOT_ALLOWED
[PASS] field TAB rejected -> CANONICAL_FIELD_RESERVED_TOKEN_REJECTED
[PASS] field null rejected -> CANONICAL_FIELD_NULL_REJECTED
[PASS] field empty rejected -> CANONICAL_FIELD_EMPTY_REJECTED
[PASS] seal self-revision/self-hash edge -> cycle detected
ALL PASS: True (exit 0)
Why this is the right method (the user's point)
A prose spec can "read well" and still leave the implementation free to diverge. An executable SSOT with
a passing --selftest is a contract the implementation runs directly, so the code path cannot
misinterpret it. Every claim above is computed, not asserted; the membership digest f2bda8…fe251
matches the value Codex independently reproduced, which proves the encoder is the same one. Verdict:
RECHECK7_CONSTITUTION14_SELF_CHECK_PASS — 22/22, exit 0.