KB-5BF5

RS-TKT-1 (Phase 1) · 17 Negative Fixture Matrix and Expected Outcomes

5 min read Revision 1
tool-kiem-thulegolaws-newrs-tkt-1phase1-designnegative-fixture-matrixbad-inputnon-authorizing2026-06-22

RS-TKT-1 (Phase 1) · 17 — Negative Fixture Matrix and Expected Outcomes

Lane: RS-TKT-1 — Phase 1 TKT Base Design Package (design-only) Date: 2026-06-22 Gate: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 runtime mutations Authority: NON_AUTHORITY · may_gate=false · decision_effect=NONE

The authoritative negative-fixture matrix for review. Every fixture states its input shape, expected status, expected failure/hold code, and why Codex would accept/reject the outcome. These are design specifications; no fixture is executed in Phase 1.


1. Fail-closed forbidden-output fixtures (BAD-FC-*, from PATCH2 01)

Fixture Input shape Expected status Expected code Why Codex accepts/rejects
BAD-FC-001 bare PASS to stdout + exit 3 FAIL FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN accepts: bare grant token forbidden even with nonzero exit (P1 closure)
BAD-FC-002 cert/seal/authority-digest artifact + exit 3 FAIL FAIL_FORBIDDEN_AUTHORITY_ARTIFACT accepts: artifact created ⇒ fail regardless of exit
BAD-FC-003 ORACLE_CLAIMS_SEAL_REJECTED, event_type=REJECTION, authority_effect=NONE, exit 3, no artifact SAFE_REJECT SAFE_REJECT accepts: rejection ≠ grant; safe-rejection context valid
BAD-FC-004 invalid input exits 0, no token/artifact FAIL FAIL_INVALID_EXIT_ZERO accepts: nonzero-exit conjunct violated
BAD-FC-005 exits nonzero, no grant token/artifact, structured REJECTION/NONE SAFE_REJECT SAFE_REJECT accepts: all six conjuncts hold
BAD-FC-006 bare SEMANTIC_TEXT_AS_CODE_PASS + exit 3 FAIL FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN accepts: L5 overclaim token forbidden
BAD-FC-007 result.md with REGISTRATION_CAN_PROCEED = YES + exit 3 FAIL FAIL_UNSTRUCTURED_FORBIDDEN_TOKEN accepts: registration-open token forbidden
BAD-FC-008 missing scan surface (stdout/stderr/result absent) HOLD HOLD_OUTPUT_SURFACE_UNAVAILABLE accepts: missing visibility ⇒ HOLD, never PASS

2. Boundary fixtures (L1 / L3)

Fixture Input shape Expected status Expected code Why Codex accepts/rejects
BAD-L1-001 reconstruction requires subject-under-test runtime HOLD HOLD_RUNTIME_SURFACE_REQUIRED accepts: SUT runtime ⇒ Phase 4, never PASS in Base (P4)
BAD-L3-001 an L3 brick reads another L3 brick's internals FAIL / design REJECT L3 boundary FAIL · design-time REJECT_MEGA_SYSTEM_DRIFT accepts: one-concern split is load-bearing (P2)

3. NVSZ fixtures

Fixture Input shape Expected status Expected code Why Codex accepts/rejects
BAD-NVSZ-001 a raw log placed in a vector-KB path FAIL ESCROW_E5 (raw-log-in-vector-KB) accepts: R0.1 raw logs never in vector KB
BAD-NVSZ-002 an agent-designated NON_VECTOR_ROOT FAIL ESCROW_E9 / ROOT_E4 (invented root) accepts: root is owner/operator-only (R0.2, MCB-5)

4. Provenance and propagation fixtures

Fixture Input shape Expected status Expected code Why Codex accepts/rejects
BAD-RS-001 RS5B BI0x draft promoted/applied as a generic rule FAIL / config error no auto-promotion (08 §5); RS5B stays SELF_REPORTED_DRAFT accepts: MCB-1; no automatic promotion
BAD-PROP-001 an L0 HOLD treated as PASS FAIL (design) aggregate must be HOLD, review_readiness=BLOCKED (06 row 2) accepts: HOLD≠PASS
BAD-PROP-002 an out-of-scope N/A used to upgrade the aggregate FAIL (design) aggregate unchanged; N/A never upgrades (06 §5, row 10) accepts: N/A no-upgrade; aggregate has no N/A value

5. Coverage check (macro §6.2 required fixtures)

Required: BAD-FC-001..008 (✓ §1), BAD-L1-001 (✓ §2), BAD-L3-001 (✓ §2),
          BAD-NVSZ-001/002 (✓ §3), BAD-RS-001 (✓ §4), BAD-PROP-001/002 (✓ §4).
All required fixtures present, each with input shape + expected status + expected code + accept/reject rationale.
⇒ negative-fixture matrix COMPLETE (not RS_TKT_1_HOLD_NEGATIVE_FIXTURE_MATRIX_INCOMPLETE).

6. The fail-open test (the whole point)

For EVERY fixture above, the question is the same: can this invalid input still produce a PASS / digest / seal / cert-like output,
or an aggregate PASS, or any authority/registration effect? The expected outcome for every fixture is NO — it fails closed
(FAIL or HOLD), and authority_effect/registration_effect stay NONE. If any fixture could yield PASS-like output, the design is fail-open ⇒ REJECT.
None can. (Adversarially re-checked in 18.)
Back to Knowledge Hub knowledge/dev/laws-new/tool-kiem-thu-lego/phase1-design/17-negative-fixture-matrix-and-expected-outcomes-2026-06-22.md