FIX7 Authority Closure — N8 Detached Seal Request (rev3, value-grammar + report-set)
FIX7 Authority Closure — N8 Detached Seal Request (rev3)
- Date: 2026-06-10 · Patched: 2026-06-11 (fail-open + provenance) · Lane: FIX7 authority-seal contract executable macro · rev2 closed Codex
AS-P3; rev3 closesFINAL-AS-VALUE-GRAMMAR/FINAL-AS-REPORT-SETfor N8. - Authority of THIS doc: request only. T1 CANNOT author N8. The detached seal is a Codex-only act: the signer identity, timestamp, parent checkpoint, and report documents are authority inputs only Codex supplies. Any N8-shaped value produced by T1 would be a fabricated seal and is prohibited.
- Executable contract: N8's domain tag, fixed roster, order, byte encoding, value grammar (§7 of the spec), and report-set rules (§9) are defined in
authority-seal-encoder-spec.mdand implemented inauthority_seal_encoder.py(encode_node("N8", …)/ real pathencode_real_n8(…), sha25613344f92…957144b8). Codex authors N8 by filling the Codex-only fields (provenance classCODEX_AUTHORED) and running the encoder — it invents no protocol.
1. N8 fixed roster (AS-P3)
Domain tag FIX7_CODEX_DETACHED_SEAL_V1; output detached_seal_sha256; fields in this exact order:
| # | field | source | actor |
|---|---|---|---|
| 1 | schema_version (FIX7-AUTHORITY-SEAL-V1) |
const | contract |
| 2 | node_id (N8) |
const | contract |
| 3 | canonicalizer_sha256 |
N2 = 49c386a9…b734d0 |
engineering |
| 4 | guard_set_sha256 |
N5 | engineering |
| 5 | active_corpus_sha256 |
N6 | engineering |
| 6 | envelope_manifest_sha256 |
N7 (from the N7 envelope) | from N7 |
| 7 | sealed_by |
signer/authority identity (non-empty, grammar identity) |
Codex |
| 8 | sealed_at |
timestamp (RFC3339 UTC) | Codex |
| 9 | parent_checkpoint |
checkpoint document_id@revision (grammar path) |
Codex |
| 10 | report_documents_digest |
sub-digest, tag FIX7_CODEX_SEAL_REPORTS_V1 over sorted rec(document_id, revision) |
Codex |
| 11 | seal_scope (BLUEPRINT_SEAL_ONLY_NO_IMPLEMENTATION) |
const | contract |
- Value grammar (new):
sealed_byempty →SEAL_FIELD_EMPTY;report_documents_digestnot 64-hex →SEAL_FIELD_NOT_HEX;sealed_atnot RFC3339 →SEAL_FIELD_BAD_TIMESTAMP. The report set itself rejects empty/duplicate/invalid records (SEAL_REPORT_SET_EMPTY/SEAL_REPORT_SET_DUPLICATE/SEAL_REPORT_DOC_ID_INVALID/SEAL_REPORT_REVISION_INVALID). - Dependency direction (acyclic): N8 binds N7 (
N8 → N2,N5,N6,N7). N8 does NOT bind P7; supplyingauthority_seal_pin_sha256to N8 is rejectedSEAL_HASH_GRAPH_CYCLE. Omitting N7 is rejectedSEAL_INPUT_MISSING.
2. What must be sealed
The N8 seal binds, at minimum:
- Packet V3 tree
b95df0a5…ca6dand canonicalizer rev349c386a9…b734d0(revision 3, 38756 bytes) — via N6/N2 and the P7 pin. - N7 envelope manifest once Codex computes it from the authorized approval event (
n7-approval-event-input-envelope.md) over a real (non-REHEARSAL) N1..N6 chain. - The Codex signer identity, seal timestamp, parent checkpoint, and report-document set.
3. Why engineering is ready (and what is still blocked)
Codex Recheck-9 V3: engineering PASS, Article 13/14 PASS, no hardcode defect, fresh-fetch reconstruction + RERUN exit 0. However, the real N8 path (encode_real_n8) requires a real upstream N7, which in turn requires a real non-rehearsal N6 chain that does not yet exist in this lane → SEAL_REAL_N6_NOT_AVAILABLE. N8 therefore remains CODEX_ONLY and blocked on the standing N6-provenance true blocker.
4. Explicit statement
T1 cannot author this seal. This request supplies the byte-exact contract + candidate engineering inputs only. Codex authors the final N8 value by running
encode_real_n8("N8", …)with itsCODEX_AUTHOREDsigner/timestamp/parent/report fields once a real N7 exists. Until then every N8 field remainsCODEX_ONLY,codex_sealed_values_present:false, no sealed value claimed.