KB-4C59

Constitution-14 Adversarial Self-Check (15/15, computed)

5 min read Revision 1

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 --selftest22/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 PASSDUPLICATE_CANONICAL_AUTHORITY / CANONICALIZER_SSOT_MISMATCH
3 run a package with a different canonicalizer hash fail PASSCANONICALIZER_SSOT_MISMATCH (G-CANONICALIZER-SSOT-ONLY)
4 document_id with . reject PASSDOCUMENT_ID_ALIAS_REJECTED
5 document_id with .. reject PASSDOCUMENT_ID_ALIAS_REJECTED
6 document_id with // reject PASSDOCUMENT_ID_ALIAS_REJECTED
7 document_id with empty segment (trailing slash) reject PASSDOCUMENT_ID_ALIAS_REJECTED
8 document_id with backslash reject PASSDOCUMENT_ID_ALIAS_REJECTED
9 document_id with URL-encoded alias reject PASSDOCUMENT_ID_ALIAS_REJECTED
10 marker_kind=DOC_STATUS but literal from another kind reject PASSMARKER_KIND_LITERAL_INCONSISTENT
11 unknown marker_kind reject PASSMARKER_KIND_UNKNOWN
12 marker_literal typo with valid kind reject PASSMARKER_LITERAL_NOT_ALLOWED
13 ACTIVE_AUTHORITY using report-only canonical explanation as authority fail PASSDUPLICATE_CANONICAL_AUTHORITY (only the SSOT is load-bearing)
14 implementation package referencing non-SSOT canonicalizer fail PASSCANONICALIZER_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.

Back to Knowledge Hub knowledge/dev/reports/architecture/t1-fix7-blueprint-patch-after-codex-recheck-7-constitution14-ssot-2026-06-09/07-constitution14-adversarial-self-check.md