FIX7 Real-N6 — fix7-real-n6-criteria-under-tkt-v02-2026-06-11.md
FIX7 Real-N6 Criteria — under TKT v0.2 Conventions (2026-06-11)
- Host: T1 / Claude Code. Codex consulted: NO. Owner approval requested: NO.
- Production / PG / Directus / registry-row / system_issues mutation: NO.
- Authority: provisional-non-authority; defines criteria, seals/ratifies nothing.
- Macro:
FIX7_REAL_N6_PROVENANCE_CHAIN_USING_TKT_V02_CONVENTIONS_MACRO_2026_06_11. - N-number table use: consumed from
fix7-n-node-numbering-reconciliation-under-tkt-v02-2026-06-11.jsonas a temporary engineering convention for this macro only — NOT owner/Codex ratification, NOT a seal, NOT production approval.
0. Why criteria first
The paused real-N6 macro turns on a single distinction the prior analysis surfaced
(fix7-n6-special-analysis-report-2026-06-11.md): N6 = active_corpus_sha256 is computable, but it
is currently REHEARSAL because of provenance-class + lane-wiring, not because the value is missing.
So "real N6" must be defined precisely enough that an automated, fail-closed verifier can decide it —
and so that a real value can NEVER be confused with an official seal.
1. Exact criteria for a real N6 ENGINEERING_VERIFIED_CANDIDATE
A digest may be emitted as a real, non-rehearsal ENGINEERING_VERIFIED_CANDIDATE N6 iff every
condition below holds. Each maps to an executable gate in real_n6_provenance_verifier.py.
| # | Criterion | Verifier gate | Reject status |
|---|---|---|---|
| C1 | Source is governed (a KB authority surface), not local-only | source_kind == GOVERNED_KB |
N6_SOURCE_NOT_GOVERNED |
| C2 | Source is not a rehearsal fixture | provenance ≠ REHEARSAL; value ∉ fixture sentinels | N6_PROVENANCE_REHEARSAL_BLOCKED / N6_VALUE_IS_REHEARSAL_FIXTURE |
| C3 | Source is not prose-only (real bytes exist on disk) | corpus dir non-empty, files present | N6_CORPUS_PROSE_ONLY |
| C4 | Digest is computable from the actual governed corpus via the governed algorithm | governed canonicalizer pinned + run | N6_ALGORITHM_HASH_MISMATCH / N6_PRODUCE_CORPUS_NOT_OK |
| C5 | Corpus membership is explicit (the 10 frozen blueprint doc ids) | declared set == listed set | N6_CORPUS_MEMBER_MISSING / …_EXTRA |
| C6 | Byte / hash match: every member is byte-exact to a governed pin | per-member sha256 vs HASH_MANIFEST | N6_CORPUS_HASH_MISMATCH |
| C7 | Manifest / membership pin match | produce membership_frozen_ok; membership == f2bda8…fe251 |
N6_MEMBERSHIP_PIN_MISMATCH |
| C8 | No duplicate member; no path traversal / alias | dedup + path grammar | N6_CORPUS_DUPLICATE / …_PATH_TRAVERSAL / …_PATH_ALIAS |
| C9 | Provenance class is ENGINEERING_VERIFIED_CANDIDATE (or OFFICIAL_PIN with authority) |
provenance allow-list | N6_PROVENANCE_* |
| C10 | Evidence is reconstructable from KB | kb_fetch_reconstruct.py + HASH_MANIFEST |
reconstruction FAILS CLOSED |
| C11 | No owner/Codex authority implied | cert authority=NOT_A_SEAL, owner_codex_required_for_promotion=true |
n/a (asserted) |
| C12 | No official seal claimed; does not create N7/N8/P7 | cert is_official_pin=false, creates_n7_n8_p7=false; firewall F1/F2 |
n/a (asserted) |
2. What is explicitly NOT sufficient (anti-laundering)
- Reusing the rehearsal N6 (
6×64 fixture) — rejected (C2). - Calling
active_corpus_sha256"real" because it appears in a report — rejected; only a fresh byte-exact recompute over the governed corpus counts (C4/C6), never report prose. - Relying on Packet V3 engineering PASS alone — engineering PASS ≠ provenance promotion
(
fix7-n6-special-analysis-report§5). Packet V3 PASS does not make N6 real or official. - Local-only files (C1) or prose-only sources (C3).
- An
OFFICIAL_PINclaim without owner/Codex authority (C9) — that is an authority act, out of lane.
3. The candidate is the ENGINEERING half only
Meeting C1–C12 closes the engineering half of SEAL_REAL_N6_NOT_AVAILABLE. The authority half
(owner/Codex approval inputs + ratification of the N-number table + promotion of the candidate to
OFFICIAL_PIN + the N7→N8→P7 seal) is out of scope for this macro and out of lane for T1. A passing
candidate is therefore marked ENGINEERING_VERIFIED_CANDIDATE and never an official seal.
4. N-node convention consumed (engineering only)
Per the reconciliation table (rev1): N6 name active_corpus_sha256, value active_corpus_sha256,
deps [N1], load-bearing, authority_class engineering, candidate digest d777e87c…, blocker
SEAL_REAL_N6_NOT_AVAILABLE. This packet does not reopen N1/N2/N9 numbering (no fresh contradiction
found) and treats the table as engineering convention only.