KB-7CE6

RS5A-PATCH4-03 — Compound Quorum Fixtures & Expected Codes — 2026-06-21

9 min read Revision 1
rs5a-patch4compound-fixturesquorum-precedenceoracleregistration-hold2026-06-21

RS5A-PATCH4-03 — Compound Quorum Fixtures & Expected Codes — 2026-06-21

Macro: RS5A-PATCH4 · Residual R4 (compound fixtures) · Deliverable: 03 of 5. Class: scoped semantic-closure correction. Additive. Adds the compound adversarial fixtures Codex §5 (correction 2) required, replacing the pairwise-only P1-vs-P3 named cases of PATCH3-03 §6. Does not add, rename, or renumber any of the 84 parent IDs / 86 executable scenarios — these are predicate-resolution fixtures that demonstrate the total Q-order of [[rs5a-patch4-02]] returns exactly one code per compound input. Gate carried: REGISTRATION_HOLD · REGISTRATION_CAN_PROCEED = NO · 0 mutations. Suite remains DEFINED_NOT_EXECUTED.

1. The defect (Codex §5, correction 2)

PATCH3 gave only single-fault / pairwise named outcomes (A11, A12, F07, F08). It did not include compound multi-fault inputs that match several predicates at once. Codex requires compound adversarial fixtures so that "every multi-fault input is structurally forced to one canonical code" (§11). Each fixture below states: input shape · matching predicates · total-order winner · expected canonical code · evaluation unit. All fixtures assume the canonical-principal surface is present (so Q00 does not fire and P1/P3 are genuinely exercised — Codex §5).

2. Compound fixtures CQ01–CQ08

CQ01 — free-text president + self-declared council (single vote)

  • Input shape: one vote claim; raw_approver='president-bot' asserting a president slot via free text; raw_approver_type='ai_council' with no canonical_voting_body membership of record.
  • Matching predicates: Q10 FREE_TEXT_PRESIDENT_REJECTED, Q11 SELF_DECLARED_COUNCIL_IDENTITY_REJECTED, and (as a downstream symptom) Q31 COUNCIL_PRINCIPAL_UNRESOLVED.
  • Total-order winner: min{Q10, Q11, Q31} = Q10.
  • Expected canonical code: FREE_TEXT_PRESIDENT_REJECTED.
  • Evaluation unit: single vote claim. (This is the exact blocking counterexample in Codex §5; the total order resolves it.)

CQ02 — self-declared council + unresolvable principal (single vote)

  • Input shape: one vote claim; raw_approver_type='ai_council' self-declared; no president claim; canonical_principal_id = null (no canonical principal resolves).
  • Matching predicates: Q11 SELF_DECLARED_COUNCIL_IDENTITY_REJECTED, Q31 COUNCIL_PRINCIPAL_UNRESOLVED.
  • Total-order winner: min{Q11, Q31} = Q11.
  • Expected canonical code: SELF_DECLARED_COUNCIL_IDENTITY_REJECTED.
  • Evaluation unit: single vote claim. (Spoof beats generic-unresolved.)

CQ03 — president slot unresolved + council slot unresolved (single vote)

  • Input shape: one vote claim asserting both claimed_role_slots ⊇ {president, council_member}; no spoof free-text/self-declaration; neither slot resolves (canonical_role_slots = {}).
  • Matching predicates: Q30 PRESIDENT_ROLE_UNRESOLVED, Q31 COUNCIL_PRINCIPAL_UNRESOLVED.
  • Total-order winner: min{Q30, Q31} = Q30.
  • Expected canonical code: PRESIDENT_ROLE_UNRESOLVED.
  • Evaluation unit: single vote claim. (This is Codex's P3 weakness; the total order resolves it.)

CQ04 — revoked delegation + expired window (single vote)

  • Input shape: one vote cast via a delegation that is revoked at vote time and whose window has expired (vote_timestamp ≥ effective_to).
  • Matching predicates: Q20 DELEGATION_REVOKED, Q23 DELEGATION_EXPIRED.
  • Total-order winner: min{Q20, Q23} = Q20.
  • Expected canonical code: DELEGATION_REVOKED.
  • Evaluation unit: single vote claim. (Revocation overrides interval — preserves PATCH3-03 §4.)

CQ05 — delegation scope mismatch + expired window (single vote)

  • Input shape: one vote cast via a delegation that is out of scope for this action and outside its window (vote_timestamp ≥ effective_to); not revoked.
  • Matching predicates: Q21 DELEGATION_SCOPE_MISMATCH, Q23 DELEGATION_EXPIRED.
  • Total-order winner: min{Q21, Q23} = Q21.
  • Expected canonical code: DELEGATION_SCOPE_MISMATCH.
  • Evaluation unit: single vote claim. (Scope before interval — preserves the accepted P2 order.)

CQ06 — two distinct aliases resolve to one principal (APR-level)

  • Input shape: two vote claims, both individually valid (no per-vote code), presenting different approver/delegate surface strings that both resolve to the same canonical_principal_id.
  • Matching predicates: Q40 APPROVER_ALIAS_DOUBLE_COUNT (distinct surfaces → one principal). Q41 does not match (surfaces differ).
  • Total-order winner: Q40.
  • Expected canonical code: APPROVER_ALIAS_DOUBLE_COUNT.
  • Evaluation unit: APR over valid claims. (Stage 2 only — both votes pass Stage 1.)

CQ07 — exact repeated canonical reference (APR-level)

  • Input shape: two vote claims, both valid, presenting the same canonical identity reference (no distinct alias/delegation surface) for one canonical_principal_id.
  • Matching predicates: Q41 CANONICAL_PRINCIPAL_DOUBLE_COUNT (identical reference). Q40 does not match (surfaces identical, not distinct).
  • Total-order winner: Q41.
  • Expected canonical code: CANONICAL_PRINCIPAL_DOUBLE_COUNT.
  • Evaluation unit: APR over valid claims. (Distinct-vs-identical surfaces partition the double-count space, per PATCH3-03 §3.4.)

CQ08 — all votes valid but count below threshold (APR-level)

  • Input shape: every vote claim valid and de-duplicated; resolved tally has president ≥ 1 but only one distinct council_member (threshold requires council_member ≥ 2).
  • Matching predicates: Q50 QUORUM_NOT_SATISFIED. No per-vote code; no double-count.
  • Total-order winner: Q50.
  • Expected canonical code: QUORUM_NOT_SATISFIED.
  • Evaluation unit: APR over valid claims. (Terminal count — Stage 2 after all per-vote faults excluded.)

3. Cross-evaluation-unit compound fixture (multi-faulty-vote APR)

CQ09 — APR with two differently-faulty votes (illustrates the APR rollup rule)

  • Input shape: one APR with vote A (raw_approver='president-bot', free-text president) and vote B (cast via an expired delegation).
  • Per-vote codes: vote A → Q10; vote B → Q23. (Each vote carries its own canonical per-vote code — the primary evaluation unit.)
  • APR-level single canonical outcome: min_by_Q{Q10, Q23} = Q10 FREE_TEXT_PRESIDENT_REJECTED.
  • Why: Stage 1 collects all emitted per-vote codes; the single APR canonical outcome is the lowest Q. Stage 2 (count) is never reached because per-vote codes exist.
  • Evaluation unit: primary = each vote claim; APR rollup = lowest-Q. (Demonstrates Codex §5 correction 3 for the multi-faulty-vote case.)

4. Fixture coverage matrix

fixture faults present matched predicates winner (lowest Q) unit
CQ01 free-text president + self-declared council Q10, Q11, Q31 Q10 vote
CQ02 self-declared council + unresolved Q11, Q31 Q11 vote
CQ03 president unresolved + council unresolved Q30, Q31 Q30 vote
CQ04 revoked + expired Q20, Q23 Q20 vote
CQ05 scope mismatch + expired Q21, Q23 Q21 vote
CQ06 two distinct aliases → one principal Q40 Q40 APR
CQ07 exact repeated canonical reference Q41 Q41 APR
CQ08 all valid, council_member = 1 Q50 Q50 APR
CQ09 vote A free-text president + vote B expired Q10 (A), Q23 (B) Q10 vote→APR rollup

5. Count is unchanged

CQ01–CQ09 are predicate-resolution fixtures that prove the total Q-order yields one canonical code per compound input. They are not new executable scenarios in the negative suite; they resolve the already-defined identity codes deterministically. Count stays 84 parent IDs / 86 executable scenarios; suite DEFINED_NOT_EXECUTED. (Were any CQ promoted to an executable negative-suite scenario, the count would be recomputed and stated explicitly — PATCH4 does not do this.)

6. Status

R4 (compound fixtures) residual CLOSED: nine compound adversarial fixtures (eight single-fault-class combinations CQ01–CQ08 plus one cross-unit APR rollup CQ09) each map, by the total Q-order, to exactly one canonical code with no human interpretation (Codex §11 "100% automatic"). The two Codex-flagged inputs (free-text president + self-declared council → FREE_TEXT_PRESIDENT_REJECTED; president unresolved + council unresolved → PRESIDENT_ROLE_UNRESOLVED) are covered by CQ01 and CQ03. No mutation; no scenario added; count unchanged.

Back to Knowledge Hub knowledge/dev/laws-new/reports/rs5a-patch4/03-compound-quorum-fixtures-and-expected-codes-2026-06-21.md