RS5A-PATCH4-03 — Compound Quorum Fixtures & Expected Codes — 2026-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 nocanonical_voting_bodymembership 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).Q41does 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).Q40does 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 ≥ 1but only one distinctcouncil_member(threshold requirescouncil_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.