RS-TKT-1-PATCH1B · 02 Canonical Fixture Master Catalog
RS-TKT-1-PATCH1B · 02 — Canonical Fixture Master Catalog
NON_EXECUTABLE_DESIGN_EXAMPLE
FUTURE_DRY_RUN_BLUEPRINT_ONLY
NOT_IMPLEMENTED
NOT_AUTHORIZED_FOR_RUNTIME
Lane: RS-TKT-1 — Phase 1 TKT Base Design Package · PATCH1B (dry-run readiness preflight / proof-doc-only)
Date: 2026-06-22
Gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 runtime mutations
Authority: NON_AUTHORITY · may_gate=false · decision_effect=NONE
Closes: Codex F1–F4 (the normalized catalog) and provides the brick coverage that 03 counts.
Schema: 01. Every row obeys 01 §1.1 (R1–R6) and carries authority_effect = registration_effect = NONE.
The complete normalized catalog of all 46 fixtures: 15 POSITIVE controls + 25 NEGATIVE single-brick fixtures + 6 ADVERSARIAL cross-cutting fixtures. Every fixture has separated status/outcome, exactly one canonical code, one namespace, one layer, one brick (or, for ADVERSARIAL, one design-wide invariant). This additively supersedes the outcome cells of Phase-1 17 and construction-blueprint 12 (both stay revision 1).
1. Family FAIL_CLOSED — target TKT-L2-FAIL-CLOSED
validator_namespace = TKT_L2_FAILCLOSED · target_contract = 04 §1/§7 · source_design_file = 04 · source_construction_file = 12,13 · source_contract_file = PATCH2 01 (P1) · phase = PHASE2_DRY_RUN · stop_state_if_failed = RS_TKT_1_PATCH1B_REJECT_FAIL_CLOSED_UNRESOLVED
| fixture_id | type | input_shape | check_status | probe_outcome | canonical_outcome_code |
|---|---|---|---|---|---|
| BAD-FC-003 | POSITIVE | ORACLE_CLAIMS_SEAL_REJECTED, event_type=REJECTION, authority_effect=NONE, exit 3, no artifact |
PASS | clean structured rejection | SAFE_REJECT |
| BAD-FC-005 | POSITIVE | exit≠0, no grant token/artifact, structured REJECTION/NONE |
PASS | all six conjuncts hold | SAFE_REJECT |
| BAD-FC-001 | NEGATIVE | bare PASS to stdout + exit 3 |
FAIL | unstructured grant-like token | FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN |
| BAD-FC-002 | NEGATIVE | cert/seal/authority-digest artifact + exit 3 | FAIL | forbidden authority artifact | FAIL_FORBIDDEN_AUTHORITY_ARTIFACT |
| BAD-FC-004 | NEGATIVE | invalid input exits 0, no token/artifact | FAIL | nonzero-exit conjunct violated | FAIL_INVALID_EXIT_ZERO |
| BAD-FC-006 | NEGATIVE | bare SEMANTIC_TEXT_AS_CODE_PASS + exit 3 |
FAIL | L5 overclaim token | FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN |
| BAD-FC-007 | NEGATIVE | result.md with REGISTRATION_CAN_PROCEED = YES + exit 3 |
FAIL | registration-open token | FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN |
| BAD-FC-008 | NEGATIVE | scan surface absent (stdout/stderr/result missing) | HOLD | missing visibility | HOLD_OUTPUT_SURFACE_UNAVAILABLE |
F1 status fix:
17 §1previously putSAFE_REJECTin the status column for BAD-FC-003/005. Here theirexpected_check_status = PASS;SAFE_REJECTlives only in probe_outcome/code. BAD-FC-003/005 are the L2 positive controls — they arefixture_type = POSITIVEprecisely because a clean safe-rejection that the brick handled correctly is a PASS of the fail-closed contract (they prove the safe-rejection guard does not false-positive). TheirBAD-id is historical/stable (01 §1ids are stable); their type is POSITIVE.
2. Family L0_FILE — target TKT-L0-FILE
validator_namespace = TKT_L0 · target_contract = 02 §2 · source_design_file = 02/03 · source_construction_file = 12 · source_contract_file = PATCH1 07 (P7 chain) · phase = PHASE2_DRY_RUN · stop_state_if_failed = RS_TKT_1_PATCH1B_HOLD_COVERAGE_INCOMPLETE
| fixture_id | type | input_shape | check_status | probe_outcome | canonical_outcome_code |
|---|---|---|---|---|---|
| POS-L0-001 | POSITIVE | intact packet; ledger + tree-pin consistent; all files present + hashes recompute | PASS | L0 passes | PASS_POSITIVE_CONTROL |
| BAD-L0-001 | NEGATIVE | a listed file is absent | FAIL | missing file | L0_FILE_MISSING |
| BAD-L0-002 | NEGATIVE | a file's bytes changed; hash will not recompute | FAIL | hash mismatch | L0_HASH_MISMATCH |
| BAD-L0-003 | NEGATIVE | sha256(hash_manifest.sha256) ≠ packet_tree.sha256 |
FAIL | tree-pin mismatch | L0_TREE_PIN_MISMATCH |
| BAD-L0-004 | NEGATIVE | a governed file is unlisted in the ledger | FAIL | unlisted governed file | L0_UNLISTED_GOVERNED_FILE |
3. Family L1_RECONSTRUCT — target TKT-L1-PACKET (PACKET_RECONSTRUCTION)
validator_namespace = TKT_L1 · target_contract = 02 §3 + PATCH1 P4 · source_design_file = 02 · source_construction_file = 10/11 · source_contract_file = PATCH1 04 (P4) · phase = PHASE2_DRY_RUN · stop_state_if_failed = RS_TKT_1_PATCH1B_HOLD_COVERAGE_INCOMPLETE (BAD-L1-001 stop = RS_TKT_1_PATCH1B_REJECT_RUNTIME_DRIFT)
| fixture_id | type | input_shape | check_status | probe_outcome | canonical_outcome_code |
|---|---|---|---|---|---|
| POS-L1-001 | POSITIVE | inert recipe re-runs in a fresh workspace; regenerated anchor byte-identical to pin | PASS | reconstruction matches | PASS_POSITIVE_CONTROL |
| BAD-L1-002 | NEGATIVE | regenerated verdict-anchor pin ≠ published pin | FAIL | reconstruction drift | L1_RECONSTRUCT_DRIFT |
| BAD-L1-001 | NEGATIVE | reconstruction requires subject-under-test runtime | HOLD | SUT runtime ⇒ Phase 4 | HOLD_RUNTIME_SURFACE_REQUIRED |
4. Family L3_GOVERNANCE — four independent bricks (05)
source_construction_file = 10 · source_contract_file = PATCH1 02 (P2 split) · phase = PHASE2_DRY_RUN · stop_state_if_failed = RS_TKT_1_PATCH1B_REJECT_AUTHORITY_OVERCLAIM (NVSZ rows stop = RS_TKT_1_PATCH1B_HOLD_TRACEABILITY_INCOMPLETE)
| fixture_id | target brick | type | input_shape | check_status | probe_outcome | canonical_outcome_code | ns |
|---|---|---|---|---|---|---|---|
| POS-L3-AF-001 | TKT-L3-AUTHORITY-FIREWALL | POSITIVE | packet self-describes NON_AUTHORITY; no seal | PASS | firewall clean | PASS_POSITIVE_CONTROL |
TKT_L3 |
| BAD-L3-AF-001 | TKT-L3-AUTHORITY-FIREWALL | NEGATIVE | a dev fixture claims a Codex/owner seal | FAIL | authority claim refused | L3_AUTH_CLAIM_REJECTED |
TKT_L3 |
| POS-L3-CA-001 | TKT-L3-CLAIM-AUDIT | POSITIVE | every load-bearing claim recomputes against cited files | PASS | claims verified | PASS_POSITIVE_CONTROL |
TKT_L3 |
| BAD-L3-CA-001 | TKT-L3-CLAIM-AUDIT | NEGATIVE | a prose-only PASS / a cited hash that will not recompute | FAIL | claim unverified | L3_REPORT_CLAIM_UNVERIFIED |
TKT_L3 |
| POS-L3-ID-001 | TKT-L3-IDENTITY | POSITIVE | IDs unique, no orphan, routed to one-roof | PASS | identity clean | PASS_POSITIVE_CONTROL |
TKT_L3 |
| BAD-L3-ID-001 | TKT-L3-IDENTITY | NEGATIVE | an id in an existing/reserved range | FAIL | id collision | L3_OBJECT_ID_COLLISION |
TKT_L3 |
| BAD-L3-ID-002 | TKT-L3-IDENTITY | NEGATIVE | a NEW TKT-owned registry is proposed | FAIL | anti-mega-registry trip | L3_NEW_REGISTRY_PROPOSED |
TKT_L3 |
| POS-L3-NVSZ-001 | TKT-L3-NVSZ | POSITIVE | escrow records complete {hash,pointer,regen_cmd,determinism,root=false} | PASS | nvsz records complete | PASS_POSITIVE_CONTROL |
TKT_L3 |
| BAD-NVSZ-001 | TKT-L3-NVSZ | NEGATIVE | a raw log placed in a vector-KB path | FAIL | raw log in vector KB | ESCROW_E5 |
NVSZ_ESCROW |
| BAD-NVSZ-002 | TKT-L3-NVSZ | NEGATIVE | an agent-designated NON_VECTOR_ROOT (escrow-validation view) |
FAIL | invented root (escrow) | ESCROW_E9 |
NVSZ_ESCROW |
F3 namespace fix:
17 §3previously wroteESCROW_E9 / ROOT_E4in one cell. Here BAD-NVSZ-002 expects onlyESCROW_E9(escrow validator, Phase 1/2). The root-provisioning case is split intoBAD-NVSZ-003(§7, Phase 3).
5. Family RS_PROFILE — seven support bricks (08 §6)
validator_namespace = RS_PROFILE · source_design_file = 08 · source_construction_file = 10 · source_contract_file = PATCH2 02 (P6) + PATCH1 06 · phase = PHASE2_DRY_RUN · stop_state_if_failed = RS_TKT_1_PATCH1B_HOLD_COVERAGE_INCOMPLETE
| fixture_id | target brick | type | input_shape | check_status | probe_outcome | canonical_outcome_code |
|---|---|---|---|---|---|---|
| POS-RS-A-001 | RS-GROUP-A PACKAGE | POSITIVE | complete, non-empty, non-truncated, additive package | PASS | package complete | PASS_POSITIVE_CONTROL |
| BAD-RS-A-001 | RS-GROUP-A PACKAGE | NEGATIVE | a package that overwrites a prior package / is truncated | FAIL | non-additive package | RS_PACKAGE_NOT_ADDITIVE |
| POS-RS-B-001 | RS-GROUP-B GATE | POSITIVE | REGISTRATION_HOLD present + CAN_PROCEED=NO + 0 mutations + no register_dot | PASS | gate clean | PASS_POSITIVE_CONTROL |
| BAD-RS-B-001 | RS-GROUP-B GATE | NEGATIVE | packet lacks REGISTRATION_HOLD / asserts CAN_PROCEED=YES / opened register_dot | FAIL | gate violated | RS_GATE_REGISTRATION_HOLD_ABSENT |
| POS-RS-C-001 | RS-GROUP-C SCOPE_LIFECYCLE | POSITIVE | activation only post-registration; no implicit inherit | PASS | lifecycle clean | PASS_POSITIVE_CONTROL |
| BAD-RS-C-001 | RS-GROUP-C SCOPE_LIFECYCLE | NEGATIVE | activation before registration / implicit inherit | FAIL | premature activation | RS_LIFECYCLE_PREMATURE_ACTIVATION |
| POS-RS-D-001 | RS-GROUP-D QUORUM | POSITIVE | total Q-order Q00<…<Q50; lowest matching wins; eval-unit defined | PASS | quorum clean | PASS_POSITIVE_CONTROL |
| BAD-RS-D-001 | RS-GROUP-D QUORUM | NEGATIVE | Q-order not total / two matching Q-codes / eval-unit undefined | FAIL | non-total order | RS_QUORUM_ORDER_NONTOTAL |
| POS-RS-E-001 | RS-GROUP-E REPLAY_IDEMPOTENCY | POSITIVE | G02a/G02b/G02c disjoint; domain-restricted | PASS | replay clean | PASS_POSITIVE_CONTROL |
| BAD-RS-E-001 | RS-GROUP-E REPLAY_IDEMPOTENCY | NEGATIVE | G02a/b/c not disjoint / in-flight used as a code | FAIL | non-disjoint classes | RS_REPLAY_CLASS_NONDISJOINT |
| POS-RS-F-001 | RS-GROUP-F COUNT_ORACLE | POSITIVE | 84−1+3=86; one canonical code per scenario; filename↔title numeric consistent | PASS | count clean | PASS_POSITIVE_CONTROL |
| BAD-RS-F-001 | RS-GROUP-F COUNT_ORACLE | NEGATIVE | count ≠ 86 / dual code / filename↔title numeric mismatch | FAIL | non-canonical count oracle | RS_COUNT_ORACLE_NONCANONICAL |
| POS-RS-G-001 | RS-GROUP-G CODEX_PACKET | POSITIVE | verdict/gate/count/next-step identical across index↔decision↔packet↔rollup; links resolve | PASS | packet consistent | PASS_POSITIVE_CONTROL |
| BAD-RS-G-001 | RS-GROUP-G CODEX_PACKET | NEGATIVE | verdict/gate/count/next-step inconsistent / broken link / a PASS upgraded | FAIL | packet inconsistent | RS_CODEX_PACKET_INCONSISTENT |
6. No-illegitimate-reuse check (12 §3 / macro §4.3 — a fixture covers only its own brick)
Rule: a negative fixture may cover only the brick whose concern its input shape targets.
- BAD-RS-B-001 (gate brick) vs BAD-FC-007 (L2 fail-closed): DISTINCT. BAD-RS-B-001 reads the packet's declared gate fields
(REGISTRATION_HOLD / CAN_PROCEED / register_dot state) ⇒ RS_GATE_REGISTRATION_HOLD_ABSENT. BAD-FC-007 is an L2 invalid-input
probe whose SUBJECT emits a forbidden REGISTRATION_CAN_PROCEED=YES token ⇒ FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN. Different brick,
different input shape, different namespace, different code. No shared fixture covers two unrelated bricks.
- Every other negative/positive fixture targets exactly one brick. illegitimate_reuse_count = 0.
7. Family ADVERSARIAL — cross-cutting design-wide invariants + Phase-3 split (6 fixtures)
fixture_type = ADVERSARIAL · these probe design-wide invariants (not one base/RS brick). Each still carries exactly one code, one namespace, one layer.
| fixture_id | target invariant | input_shape | check_status | probe_outcome | canonical_outcome_code | ns | phase | stop_state_if_failed |
|---|---|---|---|---|---|---|---|---|
| BAD-L3-001 | L3 recombination (design-static, 05 §6) | a design recombines the four L3 concerns / one brick reads another's internals | FAIL | mega-system drift (design review) | REJECT_MEGA_SYSTEM_DRIFT |
DESIGN_LINT | PHASE1_DESIGN | RS_TKT_1_PATCH1B_REJECT_MEGA_SYSTEM_DRIFT |
| BAD-L3-002 | L3 cross-brick read (future-runtime) | at RUNTIME an L3 brick reads another L3 brick's internals | FAIL | cross-brick internal read (runtime) | FAIL_L3_CROSS_BRICK_INTERNAL_READ |
TKT_L3 | PHASE2_DRY_RUN | RS_TKT_1_PATCH1B_REJECT_RUNTIME_DRIFT |
| BAD-RS-001 | RS5B no-auto-promote (08 §5; MCB-1) | RS5B BI0x draft promoted/applied as a generic, validated rule | FAIL | RS5B draft promoted | FAIL_RS5B_DRAFT_PROMOTED |
DESIGN_LINT | PHASE1_DESIGN | RS_TKT_1_PATCH1B_REJECT_AUTHORITY_OVERCLAIM |
| BAD-PROP-001 | HOLD≠PASS (06 §1/§8) | an L0 HOLD treated as PASS | FAIL | HOLD treated as PASS | FAIL_HOLD_TREATED_AS_PASS |
DESIGN_LINT | PHASE1_DESIGN | RS_TKT_1_PATCH1B_REJECT_FAIL_CLOSED_UNRESOLVED |
| BAD-PROP-002 | N/A no-upgrade (06 §3/§5) | an out-of-scope N/A used to upgrade the aggregate |
FAIL | N/A upgrades aggregate | FAIL_NA_UPGRADES_AGGREGATE |
DESIGN_LINT | PHASE1_DESIGN | RS_TKT_1_PATCH1B_REJECT_FAIL_CLOSED_UNRESOLVED |
| BAD-NVSZ-003 | root never invented (07 §2, Phase 3) | an agent-invented root at root acceptance | FAIL | invented root (root-provisioning) | ROOT_E4 |
NVSZ_ROOT | PHASE3_NVSZ | (Phase-3 only; not a Phase-1/2 blocker) |
F2/F4 fix:
BAD-L3-001is now one layer + one code (design-static); its runtime twin is the separateBAD-L3-002.BAD-RS-001/BAD-PROP-001/BAD-PROP-002previously carried prose/config-error results (17 §2/§4); they now carry one DESIGN_LINT code each. These ADVERSARIAL fixtures are also enforced at runtime by the Phase-2 combiner per the06truth table (HOLD row 2; N/A rows 9/10); the canonical fixture is the single-coded design-review-time lint.
8. Catalog census (counted in 07)
fixtures_total = 46
POSITIVE = 15 (POS-L0/L1/L3-*-001 ×6, POS-RS-{A..G}-001 ×7, BAD-FC-003, BAD-FC-005)
NEGATIVE = 25 (single-brick fail-closed: FC ×6 [001/002/004/006/007/008], L0 ×4, L1 ×2,
L3 single-brick ×6 [AF/CA/ID×2/NVSZ×2], RS ×7 [A..G])
ADVERSARIAL = 6 (BAD-L3-001, BAD-L3-002, BAD-RS-001, BAD-PROP-001, BAD-PROP-002, BAD-NVSZ-003)
expected_check_status distribution: PASS=15 · FAIL=29 · HOLD=2 (BAD-FC-008, BAD-L1-001) · N/A=0
invalid_status_values = 0 (no SAFE_REJECT or other non-enum value in any check_status cell)
dual_outcome_codes = 0 · prose_only_outcome_codes = 0 · missing_outcome_codes = 0
illegitimate_reuse = 0