FIX7 Authority-Seal — Codex Final Seal Review Packet (post fail-open + provenance patch, 2026-06-11)
FIX7 Authority-Seal — Codex Final Seal Review Packet (post fail-open + provenance patch)
- Date: 2026-06-10 · Patched: 2026-06-11 · Host: T1 · Codex consulted: NO · Production mutation: NO
- Lane:
FIX7_FINAL_AUTHORITY_SEAL_FAILOPEN_AND_PROVENANCE_PATCH_MACRO_2026_06_11 - Status handed to Codex:
FIX7_FINAL_AUTHORITY_SEAL_SELF_CODEX_READY_AFTER_FAILOPEN_PATCH - Standing authority blocker:
SEAL_REAL_N6_NOT_AVAILABLE(real non-rehearsal N6 chain — owner/operator + Codex).
REVIEW/ROUTING packet. No real seal. T1 authored nothing authoritative. Rehearsal digests are FIXTURE-only / NOT-A-SEAL. This supersedes the prior full-dress-rehearsal cover doc after Codex's
CODEX_FIX7_FINAL_AUTHORITY_SEAL_REJECT.
1. Why Codex rejected, and what is now fixed
Codex rejected on (a) a fail-open encoder (8 direct probes accepted invalid values), (b) a provenance-blind N7 (REHEARSAL N6 could enter a real seal), (c) missing governed-KB evidence (7 files 404). All three are now closed:
| Workstream | Evidence | Verdict |
|---|---|---|
| Value grammar | per-field hex/id/identity/timestamp/decision/posint/path; probes CP1–CP16 REJECTED | CLOSED |
| Report set | empty/dup/invalid rejected; deterministic sort | CLOSED |
| Provenance | class system; REHEARSAL/missing/forbidden blocked from real N7 | CLOSED (engineering) |
| Governed-KB packet | 7 files published (404→present); manifest + tree | CLOSED |
| Self-Codex dry-run | selftest 48/48 · rehearsal OK · red-team 39/39 · drift 41/41 · anti-hardcode 13/13 · probes 19/19 REJECTED · rc 0 | PASS |
2. Exact command Codex runs (no invention required)
cd <packet-root>
shasum -a 256 authority_seal_encoder.py # 13344f92cafcaf0d07dcb21700bdb642f38b89351702e08080eacb0e957144b8
python3 authority_seal_encoder.py --selftest # 48/48 PASS, exit 0
bash rehearsal/commands.sh # rc 0; packet_tree ac3f56f9…477dc
python3 codex_probes.py # 19/19 REJECTED (fail-closed), exit 0
To author the real seal (provenance-gated, acyclic N7→N8→P7):
import authority_seal_encoder as E
n7 = E.encode_real_n7([...A1/A2/A3/A5 + real N1..N6...], provenance={...}, real_n6_available=True)
n8 = E.encode_real_n8([...N7 + Codex signer/timestamp/parent/report...], provenance={...}, real_upstream=True)
p7 = E.encode_real_p7([...rev3 identity + tree + N7 + N8 + report/checkpoint/A1...], provenance={...}, real_upstream=True)
3. Remaining TRUE authority inputs Codex/owner MUST supply
- Real non-rehearsal N1..N6 chain classed
ENGINEERING_VERIFIED_CANDIDATE→ only thenreal_n6_available=True(without it:SEAL_REAL_N6_NOT_AVAILABLE). - A1 approval_event_id / A2 approver_identity / A3 timestamp / A5 owner_blueprint_decision (
AUTHORITY_INPUT). - N8 signer/timestamp/parent/report; P7 report/checkpoint ids (
CODEX_AUTHORED). - Owner implementation authorization (separate macro) + OWN-1 disposition.
4. What Codex MUST NOT infer / invent
No new field/order/tag/byte-encoding/value-grammar/provenance-class (all fixed + drift-checked). No prose-only P7 pin. No N7↔N8 cycle. No treating a FIXTURE digest or REHEARSAL corpus as a real seal — the encoder now enforces this (SEAL_PROVENANCE_REHEARSAL_BLOCKED). Invalid values now fail closed with an exact SEAL_* status.
5. Engineering boundary (unchanged)
Packet V3 tree b95df0a5…ca6d and canonicalizer rev3 49c386a9…b734d0 (rev 3, 38756 B) — unchanged candidates, not redone. FIX7 implementation + production/runtime gates remain BLOCKED (fix7-implementation-precondition-checklist.md).
6. Routing
Route the patched packet (encoder + spec md/json + n7/n8/p7 rev3 + checklist + 5 harnesses incl. codex_probes.py + rehearsal/) to Codex for a fresh final-seal review. Codex re-runs §2, supplies §3, observes §4, and authors N7→N8→P7 only once a real N6 chain exists.