KB-7AC1

Internal Evidence Proof — rev4 Phase-2 Readiness (no Codex)

35 min read Revision 1

Internal Evidence Proof — rev4 Phase-2 Readiness

Macro: PROGRAM_MACRO_CLOSE_PHASE2_OFFLINE_PACKET_MVP_READINESS_END_TO_END_2026_06_09. Purpose: internally prove — from KB readback, rev4 evidence, and self-test design — whether Phase 2 can proceed to an offline packet MVP prototype build without another Codex review at this step, or whether a genuine blocker remains. No Codex consulted. No production mutation. Date: 2026-06-09 · Authoritative source rule: KB-FIRST / PG-FIRST / NATIVE-DRIVEN / LOCAL-LAST. Every claim below cites a KB design doc (the rev4 corpus) or a sealed prior review. Local files used in this macro were working copies of KB-sourced content for analysis only; KB is SSOT. Final status: INTERNAL_PROOF_PARTIAL. Build-readiness decision: D — TRUE_BLOCKER (owner/operator + resource). The binding, internally-unprovable precondition is provisioning the deny-by-default sandbox host (M5 / B4′); the rev4 corpus also records B0‴ (Codex re-seal) as a precondition to any build, which only the owner may honor or consciously waive. Decision A (build now) is NOT reachable; B (rev5 repair) is NOT required; C (Codex) is a parallel gate, not the load-bearing blocker. Production mutation: NO. No build, no tool/schema/runner/sandbox, no install, no PG/Directus/registry/FS/system_issues mutation, no FS-DOT/IU/detector/command/FIX7 invocation. writes_performed: only the KB design/report/checkpoint docs this macro was asked to produce.


0. Question this proof answers (and the honest answer)

Q: Can Phase 2 proceed to an offline packet MVP prototype build now, without another Codex review?

A (honest): No — but the reason is not Codex. Everything that is internally provable is closed (scope lock, blocker→test conversion, guard build requirements, negative-test coverage, Article 13 + Article 14 audits — all PASS at design/feasibility level). The single load-bearing precondition that cannot be proven or performed internally is the deny-by-default sandbox host that is the offline MVP's primary enforcement boundary (L1). It is — by rev4's own honest admission — specified, not deployed. Provisioning it is an owner/operator + resource action (rev4 plan M5; spec §2 honesty bound; §20 caveat). Until it exists, by the design's own fail-closed self-check the tool refuses to function (emits BLOCKED/exit 3 before any read — §12.4 / F23 / G5 / G12), and ~11 of the 45 acceptance tests cannot pass because their proof-of-block evidence (seccomp EPERM, mount table, env keyset) only a real sandbox can produce. The rev4 corpus additionally records B0‴ (Codex re-seal of the rev4 spec) as a precondition to any build — and the offline-packet architecture is a brand-new response to Codex's Gate-3 FAIL that no independent authority has reviewed. Honoring or waiving B0‴ is itself an owner authority decision. So the next step is an owner decision + provisioning, not an internally-authorized build, and not (by default) a Codex round.


Track 1 — KB readback and SSOT confirmation

All nine rev4 documents were read from KB (Incomex_KB MCP batch_read, full content, 2026-06-09). Local .md/.json copies under /tmp/rev4_docs/ were derived from that KB read for analysis only and are not authority.

KB path Exists Version / status Key constraints found Local copy needed? Contradiction vs index? Result
designs/…gap-only-scope-spec-rev4-2026-06-09.md YES GAP_ONLY_SCOPE_SPEC_v0_1_REV4_READY_FOR_CODEX; mvp_implementation_allowed=false Offline/packet/non-gating model (§2); non-gating non-global denial (§4.0); deny-by-default sandbox §12.1 specified, not deployed (§2 honesty bound, §20); no SQL/no driver/no KB write/no network (§12/§18); B0‴ precondition to any build (§1/§22) Working copy only None PASS
designs/…gap-only-scope-spec-rev4-2026-06-09.json YES rev4; valid JSON (25 keys); self_audit all PASS; sealed_decisions_intact=[B,C,D,G,H] Machine mirror matches the .md spec field-for-field; mvp_implementation_allowed:false; becomes_allowable_when = B0‴ AND B4′ Working copy only None (mirrors .md) PASS
designs/fix7-read-report-pilot-design-rev4-…md YES FIX7_READ_REPORT_PILOT_DESIGN_REV4_READY_FOR_CODEX Detection logic unchanged (Gate 5 PASS preserved); C1–C12 checks; Fixtures A/A′/B/C/D; proves_execution:false, proves_global_absence:false; reads packet, writes local report Working copy only None PASS
planning/mvp-read-report-inspector-implementation-plan-no-code-rev4-…md YES MVP_PLAN_REV4_DESIGN_ONLY; build BLOCKED until B0‴ (+B4′ for acceptance) 13 modules allowed_actions ⊆ {READ_PACKET_ITEM, WRITE_LOCAL_REPORT}; gates G1–G12 (G5 sandbox-invariant primary); manual gates M1–M5 (M5 = owner provisions sandbox); negative tests N1–N32 Working copy only None PASS
designs/acceptance-test-matrix-…rev4-2026-06-09.md YES ACCEPTANCE_MATRIX_v0_1_REV4_READY_FOR_CODEX 45 in-scope tests, each capability/bypass test tied to enforcement layer L1–L5 + block point + proof-of-block evidence; 11 deferred (D1–D11); #27 corrected to process-level egress Working copy only None PASS
reports/codex-fix-ledger-gap-only-spec-rev4-…md YES CODEX_FIX_LEDGER_REV4_COMPLETE 6 rev3 blockers → rev4 repair / residual risk / MVP still blocked? = Yes for all 6; gate-by-gate (Gate 3 & 7 FAIL → "feasible + specified", not closed) Working copy only None PASS
reviews/codex-checkpoint-packet-…rev4-2026-06-09.md YES REV4_READY_FOR_CODEX (a packet TO Codex — not a Codex response) The one decision + six repairs; 7 adjudication points + 7 open questions (Q1–Q7) routed to Codex; disposition requested GAP_ONLY_SPEC_REV4_SEALED or RETURN_BLOCKERS Working copy only None PASS
checkpoints/checkpoint-gap-only-spec-rev4-after-codex-guard-block-…md YES REV4_READY_FOR_CODEX; MVP authorized: NO Self-audit 10/10 PASS at design/feasibility level; honest caveats (sandbox specified not deployed; B7 deferrals); next step = route packet to Codex Working copy only None PASS
00-index.md YES Current phase GAP_ONLY_SCOPE_SPEC_v0_1_REV4_READY_FOR_CODEX; minimal next step = route rev4 packet to Codex (B0‴) Records the full rev1→rev4 lineage; rev2 and rev3 T1 self-audits ("all-PASS"/"10/10") were each overturned by Codex Working copy only None PASS

Track 1 verdict: PASS. Nine of nine rev4 documents exist on KB, are mutually consistent, and agree with the index. No document is missing; no contradiction found. SSOT confirmed: the rev4 corpus is the governing design. One critical clarification surfaced by readback: the document titled “Codex checkpoint packet rev4” is a request addressed to Codex; Codex has not responded to it (consistent with the macro premise “Codex was NOT consulted with PROGRAM_CODEX_RESEAL…REV4…”). Therefore no rev4 Codex seal exists; B0‴ is open.


Track 2 — Phase 2 status map

Bucket Items
Already complete (internal, design-level) rev4 Gap-only Scope Spec (+JSON mirror, validated); rev4 FIX7 pilot design; rev4 MVP plan (modules, G1–G12, M1–M5, N1–N32); rev4 acceptance matrix (45 tests, L1–L5, proof-of-block); rev4 fix ledger (6 blockers mapped); rev4 Codex checkpoint packet (authored, not yet sent/answered); rev4 checkpoint; index updated. This internal proof (scope lock, blocker→test conversion, guard requirements, negative coverage, Art 13/14 audits) — all PASS.
Remains before MVP build (a) Owner/operator provisions the deny-by-default sandbox host (rev4 spec §12.1; plan M5) — the L1 primary boundary. (b) Owner disposition of B0‴ (route rev4 to Codex or owner-waive). (c) Build the guard harness + modules (next macro). (d) Run the enforcement-bound negative tests against the real sandbox (B4′ / M3).
Deferred after MVP (named contracts, B7 / Call Contract) Live governed export step + named-query-catalog/driver/network-policy contract; path-scoped server-enforced KB report writer; downstream consumer/authority contract (any gate use); command run + exit capture (Call Contract); proof-of-run / global-absence; --selftest N/N+module_sha256; generic package_manifest schema; audit_dead_links()system_issues; Directus write; TAC↔IU bridge; OPA/Conftest/Squawk/CI; positive verdict + exit 0 (sealed taxonomy authority).
Requires Codex B0‴ — re-seal of the rev4 offline-packet architecture (a new response to the Gate-3 FAIL that no independent authority has reviewed); the 7 open questions Q1–Q7 in the rev4 checkpoint packet (esp. Q1 offline-vs-online, Q4 “specified-not-deployed seal basis”, Q6 manual-packet KB-first honesty, Q7 “any remaining assertion-as-guarantee”). These are authority judgments — but the owner may honor or waive them.
Requires owner/operator decision Provisioning the sandbox host (M5) — resource + operator action; load-bearing and internally unprovable. B0‴ disposition (honor Codex vs waive) — owner authority. M4 owner confirmation of the read-only/write-local envelope.
Can be closed internally now (this macro closes them) Scope lock (Track 3); Codex-blocker → build-acceptance-test conversion ledger (Track 4); guard build-requirement mapping (Track 5); negative-test coverage matrix (Track 6); Article 13 audit (Track 7); Article 14 audit (Track 8); the build-readiness determination (Track 9); the action-ready blocker packet (Track 11). All closed below.

Track 3 — Rev4 scope lock (proved from KB)

Each MVP property is proven from a named rev4 section. Implication = what it means for the future build.

Scope property Evidence (rev4) Status Implication for build
Offline / packet-derived spec §2 (Option B), §9; plan §3; pilot §3; JSON decisive_decision.input PASS Tool reads a governed-provenance packet from a read-only input mount; no live surface.
Non-gating spec §4.0 (decision_effect=NONE, may_gate=false); matrix #20; plan G8 PASS Output may route to humans; must never wire to an allow/deny/build-break.
No network spec §12.1 (no network namespace), §12.3; matrix #27; JSON capability_model…no_network PASS Enforced by absence of a network namespace (L1), not a client promise.
No PG driver spec §12 (OPEN_DB_DRIVER prohibited); matrix #30; plan G4 PASS No DB client import; build-rejected if present (L2) + no route (L1).
No live query spec §12 (LIVE_PG_QUERY prohibited), §12.6; matrix #35 PASS All PG reads belong to the deferred export step (B7), never the tool.
No KB write spec §10 / §13 (“MVP does NOT write KB”); matrix #34; plan §12 PASS Writes only the local output mount; KB upload is a separate governed/manual step.
No secret access spec §12.1 (scrubbed env, no secret mounts); matrix #28 PASS Enforced by filesystem namespace + env scrub (L1); F25/G12.
No arbitrary local FS spec §12.1 (only RO input + WO output mounts); matrix #29 PASS open() outside the two mounts ⇒ ENOENT/EACCES (L1).
Local report output only spec §10; plan §4; pilot §5 PASS report.md+report.json+checkpoint-<name>.md to the WO output mount only.
No command execution spec §12 (EXECUTE_COMMAND/SPAWN_SUBPROCESS prohibited); matrix #25 PASS seccomp execve deny (L1) + import denylist (L2).
No mutation spec §18; plan §4; JSON production_mutation:false PASS No PG/Directus/registry/FS/system_issues write; writes_performed[] = local triplet only.
No authority creation spec §4.0/§16.1 (PROVISIONAL_NON_AUTHORITY, report is evidence-only); matrix #18 PASS Inspector taxonomy is never runtime truth; never a gate; never global-truth.

Track 3 verdict: PASS (12/12). The rev4 scope is locked to exactly the offline/packet/non-gating/no-network/no-driver/no-live-query/no-KB-write/no-secret/no-arbitrary-local-FS/local-report-only/no-command/no-mutation/no-authority envelope the macro requires. Caveat (not a scope defect): every “no-X” guarantee above whose enforcement layer is L1 is structurally real only when the sandbox host exists. That is the Track 9 blocker, not a scope gap.


Track 4 — Codex rev3 blocker closure ledger

For each of the six rev3 blockers: rev4 repair · evidence basis · residual risk · Codex still needed? · build-acceptance test that proves it.

# Blocker (rev3 re-seal) rev4 repair Evidence basis Residual risk Codex still needed? Build-acceptance test
1 Negative verdicts → shadow denial authority Non-gating non-global denial contract: decision_effect=NONE, may_gate=false, 5 bounded scoped verdicts, scope_of_denial, non-global disclaimer, READ_LEVEL_FAIL=“not acceptable for PASS” spec §4.0; F21/F22/F24; JSON non_gating_non_global_denial_contract A future consumer could still misuse a non-gating output as a gate until a consumer contract is sealed (B7) Authority judgment — is decision_effect=NONE+may_gate=false sufficient? (Q2) Owner may waive #18, #20, #21, #22, #23, #45 (L4)
2 DB allowlist ≠ process egress allowlist Offline: no network namespace; nothing to allowlist; egress denied at the environment spec §12.1; §12.3; matrix #27 (process-level egress, not a gateway allowlist) Sandbox host must actually be provisioned with no network namespace; mis-provisioning ⇒ egress No (structurally collapsed) — but depends on M5 provisioning #27, #35 (L1) — proof = socket/connect EPERM, no route
3 No sandbox for secret/local/network Deny-by-default sandbox named (no-net ns; RO input mount; WO output mount; no secret mounts; scrubbed env; seccomp execve/socket/connect/ptrace); in-process guards demoted to secondary spec §12.1–§12.4; plan G5; JSON enforcement_substrate_primary_sandbox Sandbox is specified, not deployed — must be provisioned + negative-tested No (design feasible) — but the deploy is the blocker (M5/B4′) #25, #28, #29, #33, #37 (L1/L3)
4 No bounded KB writer MVP does not write KB; local output only; KB upload separate governed step; no writer claimed spec §10/§13; plan §12; matrix #34 Manual KB upload is outside the tool’s guarantees (a human/governed step) No — honest deferral (B7); acceptance does not depend on it #34 (L1+L2) — proof = no KB-write SDK import + no network
5 SELECT-only ≠ side-effect-fn safe MVP issues no SQL; deferred export step = named query IDs only, side-effect-free, no raw/dynamic/multi/CALL/DML/DDL spec §12.6; matrix #31 (MVP), #32→D9 (export) Side-effect-function rejection now lives in the export-step contract (B7) — deferred, not closed No for the MVP; Yes/contract for the export step (B7) #31 (L1/L2, MVP) ; #32 → D9 (L5, deferred)
6 Tests not tied to enforcement Every negative test bound to L1–L5 + block point + proof-of-block evidence; #27 corrected to process-level egress matrix §3–§6; fix ledger §1 Tests are specified, not run — must pass against a real sandbox (B4′) No (mapping complete) — but execution depends on M5 The whole matrix #18–#45 + invariants I1–I12

Track 4 verdict: PASS / PARTIAL. Every blocker is either (a) structurally collapsed by the offline re-scope (2, 3, 5 for the MVP), (b) converted into a concrete build-acceptance test (all six map to named matrix tests), or (c) honestly deferred behind a named contract (4 → no-writer; 5 export half → B7). None is "resolved by rev4 evidence" to the point of unblocking the build — the fix ledger itself answers "MVP still blocked? = Yes" for all six. The residual is not new design work; it is (i) deploy the sandbox (M5/B4′) and (ii) the recorded B0‴ authority gate. Of the residual "Codex still needed?" answers, none is a hard Codex dependency the owner cannot waive — but each is an authority judgment, which is why Track 9 = D (owner decides), not A (internally settled).


Track 5 — Guard build requirements (rev4 guard design → explicit, testable build requirements)

# Guard requirement Enforcement layer Implementation requirement Negative test ID Expected proof-of-block artifact
1 Offline execution only L1 (primary) Run with no network namespace (or all egress denied at namespace/host firewall) #27, #35 / N22 socket/connect EPERM; no route exists
2 No network namespace L1 Container/OS run profile omits the network namespace #27 / N22 namespace listing shows no net ns; socket EPERM
3 Read-only input mount L1 Bind-mount only the input-packet dir, ro #29, #33 / N24 mount table: input mount = ro; write ⇒ EROFS
4 Write-only output mount L1 Bind-mount only the report-output dir, writable; nothing else writable #33 / N28 mount table: output mount sole writable path; elsewhere EROFS/EACCES
5 No secret mounts L1 No home / /etc secrets / project tree in the FS namespace #28 / N23 FS namespace listing = {RO input, WO output}; no credential files
6 Scrubbed environment L1 Strip all creds/tokens/conn-strings/secret env vars #28 / N23 env keyset snapshot shows no secret vars
7 Block subprocess/exec/spawn L1 (seccomp) + L2 (denylist) seccomp deny execve/execveat; build-reject subprocess/os.system/os.exec*/pty/shell imports #25 / N20 seccomp EPERM on execve + build-time import rejection
8 Block socket/connect L1 seccomp deny socket/connect/bind #27 / N22 socket/connect EPERM
9 Block dynamic import / plugin loading L2 build-reject importlib/__import__ dynamic loaders #26 / N21 build-time rejection; no dynamic-import capability
10 Block direct PG driver L2 + L1 build-reject any DB driver import; even if present, no network to connect #30 / N25 build-time rejection (no driver import)
11 Block raw SQL L1/L2 no SQL string / no DB client anywhere in the build #31 / N26 absence of SQL string / DB client in build artifact
12 Block arbitrary local read L1 only the RO input mount visible #29 / N24 FS namespace listing = two mounts only; open() outside ⇒ ENOENT/EACCES
13 Block output path escape L1 only the WO output mount writable #33 / N28 mount table + write-attempt error (EROFS/EACCES)
14 Fail closed on guard failure L3 (P1 self-check) assert capability envelope + sandbox invariants at startup; any deviation ⇒ exit 3 before any read #37 / F23 capability_envelope_attestation records the failed invariant; exit 3

Track 5 verdict: PASS (14/14 mapped to a layer + implementation requirement + test + proof artifact). Hard dependency: requirements 1–8, 12, 13 are L1 (host-sandbox) — they are design-complete and testable but only enforceable once the sandbox host is provisioned (M5). Requirements 9–11 are L2 (build-time, provable without a live sandbox). Requirement 14 is L3 (in-process). This is the precise reason the build cannot be accepted without M5.


Track 6 — Negative-test completeness (16 attack classes → coverage)

Attack class Covered? Test ID(s) Enforcement layer Expected verdict Proof artifact Gap
shell / subprocess YES #25 / N20 L1+L2 exit 3 / build reject seccomp EPERM execve + build reject none (needs live sandbox to prove L1)
dynamic import / plugin YES #26 / N21 L2 build reject / exit 3 build-time rejection none (L2 provable pre-sandbox)
network YES #27 / N22 L1 exit 3 socket/connect EPERM, no route needs live sandbox to prove
secret / env credential YES #28 / N23 L1 BLOCKED_BY_UNSAFE_ACCESS / exit 3 env keyset + FS namespace needs live sandbox
arbitrary local file read YES #29 / N24 L1 BLOCKED_BY_UNSAFE_ACCESS / exit 3 FS namespace = two mounts needs live sandbox
direct PG driver YES #30 / N25 L2(+L1) CONTRACT_VIOLATION_IN_DESIGN (build) build-time rejection none (L2 provable)
raw SQL YES #31 / N26 L1/L2 n/a (no path) no SQL/DB client in build none
side-effect SELECT DEFERRED #32 → D9 L5 (export, B7) rejected at export-contract review query-catalog review record honest deferral — not in MVP; tested at the export contract
KB writer claim YES #34 / N29 L1+L2 BLOCKED_BY_UNSAFE_ACCESS / exit 3 no KB-write SDK + no network needs live sandbox for L1 half
output path escape YES #33 / N28 L1 BLOCKED_BY_UNSAFE_ACCESS / exit 3 mount table (WO only) needs live sandbox
local-first authority YES #38 / N30 L4 (G10) FLAG_LOCAL_FIRST_AUTHORITY / FAIL item lacks governed provenance; CONFLICT→prefer KB/PG none (L4 provable on packet)
shadow denial wording YES #22, #45 / N18 L4 FLAG_GLOBAL_DENIAL_WORDING / FAIL output lint flags global negative none
hardcoded denominator YES #9 / N9, N10 L4 (G1/G2) FLAG_HARDCODED_DENOMINATOR / BLOCKED no denominator_source_record; collapsed DOT number none
fake-green YES #1, #3, #19, #36 / N11 L2/L4 build/output reject no positive enum / no exit-0 path none
evidence reference without adequacy YES #4, #5, #6, #7 / N2, N3 adequacy chain (§3 iron law) INSUFFICIENT_EVIDENCE_FOR_CLAIM resolves-but-incapable per §3 step 5 none
FIX7 artifact not adequately evidenced YES #41–#45 / N8 adequacy chain + L4 READ_LEVEL_FAIL/UNVERIFIED + NOT_PROVEN Fixtures A/A′/B/C/D; NOT_EVIDENCED_IN_ALLOWED_SURFACES not "absent" none

Track 6 verdict: PASS. All 16 classes are covered: 15 in the MVP, 1 (side-effect SELECT) honestly deferred to the export-step contract (L5/B7) because the MVP issues no SQL. The only systematic "gap" is that the L1-layer proofs cannot be demonstrated without the provisioned sandbox — a deploy gap (Track 9), not a coverage gap.


Track 7 — Article 13 audit (PG-first / native / driven)

Check Verdict Evidence
KB/PG/native source first PASS spec §0; authority traces to KB/PG/native via per-item packet provenance (§9, §16.1).
Local-last PASS spec §0.2 (“local is NOT authority”); JSON operating_rule.local_filesystem = NOT_AUTHORITY.
No shadow SSOT PASS spec §4.0/§16.1: inspector taxonomy is PROVISIONAL_NON_AUTHORITY, decision_effect=NONE, demoted below KB/PG/native; matrix #18.
Offline packet must be KB/PG-derived with provenance PASS spec §9: each item carries {governed_surface, named_query_id_or_kb_path, observation_ts, source_revision, content_hash}; provenance-less item ⇒ NOT_EVIDENCED_IN_ALLOWED_SURFACES (#39).
No arbitrary local-first path PASS spec §12 (READ_LOCAL_PATH_OUTSIDE_INPUT_MOUNT prohibited); G10; #38.
Local output is evidence only PASS spec §13/§16: report is evidence-only, non-authority, regardless of location.
No live PG claim in the MVP PASS spec §9.1 honest correction + §12.6: live read confined to the deferred governed export step; the MVP performs none.
This macro itself honored KB-first PASS Every claim cites a rev4 KB doc; local /tmp copies were analysis-only working copies of the KB read; no local-first authority used.

Track 7 verdict: PASS. Residual honesty item (Codex Q6, owner-judgable): the manual-governed-packet bootstrap (§12.6: a human hand-assembles the packet until the export step is sealed) is the one place a local-first surrogate could slip in. rev4 mitigates it structurally (per-item provenance + G10 + tests #38/#39/#40), so it is PASS at design level — but whether that mitigation is accepted is an authority call deferred with B0‴/B7.


Track 8 — Article 14 audit (executable / evidence-backed; no fake-green)

Check Verdict Evidence
No prose-only PASS PASS spec §4.2 FLAG_PROSE_ONLY_PASS; pilot C4; matrix #13.
No fake-green PASS spec §11: no exit 0; §4.4: READ_LEVEL_ACCEPTABLE removed; matrix #1/#3/#19/#36.
No claim without adequacy PASS spec §3 7-step adequacy chain; §3.IRON: a resolving reference yields only ARTIFACT_EXISTENCE_EVIDENCE.
Evidence reference alone insufficient PASS spec §3 step 5 (capability) + §4.1; pilot C5 (wrong-kind .md).
Execution claim cannot become acceptable without run evidence PASS spec §4.3 ARTICLE14_NOT_PROVEN_EXECUTION_UNVERIFIED forced for any execution claim; ceiling UNVERIFIED.
FIX7 Recheck-8 class caught at read/report level PASS pilot §3.2 + Fixtures A/A′/B/C/D (#41–#45); the .py SSOT case resolves only as wrong-kind .mdINSUFFICIENT_EVIDENCE_FOR_CLAIM.
No global-denial overclaim PASS spec §4.0 + FLAG_GLOBAL_DENIAL_WORDING (F21); pilot honesty bound: never "does not exist anywhere."
This proof makes no fake-green claim PASS Final status is INTERNAL_PROOF_PARTIAL, decision D; the proof explicitly refuses to declare the build authorized (completion contract honored).

Track 8 verdict: PASS (preserved + strengthened). The offline-packet provenance strengthens the Article-14 "governed surface" test (existence must resolve on a governed-provenance item). Self-applied Article 14: this very proof would itself be a fake-green if it declared Decision A — so it does not (see Track 9).


Track 9 — Build-readiness decision

Decision: D — TRUE_BLOCKER (owner/operator + resource).

Why not A (BUILD_OFFLINE_MVP_PROTOTYPE_NEXT)

A requires all of: core constraints explicit ✓, guard requirements testable ✓, negative tests mapped ✓, no authority decision remains ✗, and Codex-not-required-because-offline. It fails on "no authority decision remains" and on a true resource gate:

  1. The corpus records B0‴ (Codex re-seal) as a precondition to ANY build — spec §1/§22, plan §5/M1, JSON becomes_allowable_when, index minimal-next-step. The offline-packet architecture is a new response to Codex's Gate-3 FAIL and has never been reviewed by any independent authority.
  2. Empirical evidence in the KB: rev2's "all-PASS" self-audit and rev3's "10/10 PASS" self-audit were each overturned by Codex (index lineage). So "T1 self-audit PASS" is not a reliable proxy for build-readiness — declaring A on the strength of this proof's PASSes would repeat exactly that error and violate Article 14 (no overclaim) and the standing feedback against self-certifying authority.
  3. A true resource blocker exists independent of Codex: the L1 sandbox host is specified, not deployed; building "to acceptance" is impossible without it; and by the design's own P1 self-check an un-sandboxed run fails closed to BLOCKED/exit 3 (§12.4/F23/G5/G12) — a no-sandbox prototype refuses to function.

Why not B (REV5_REPAIR_REQUIRED)

No rev4 design defect or wording gap was found in this readback. The spec, JSON mirror, plan, matrix, fix ledger, and pilot are mutually consistent; verdict model, enforcement layers L1–L5, gates G1–G12, and tests N1–N32 / #1–#45 all align. A rev5 edit would not unblock the build, because the blocker is resource + authority, not design.

Why not C (CODEX_CHECKPOINT_REQUIRED_NOW) as the primary call

The user is explicitly reducing Codex dependency, and the load-bearing, internally-unprovable blocker is not Codex — it is the owner/operator sandbox host (M5/B4′). Even if Codex sealed rev4 today, the MVP still could not be accepted without that provisioning, and per spec §21 the readiness "hard fallback to B" (stay blocked) applies if no sandbox host can be provisioned. B0‴ is a parallel authority gate the owner may honor or consciously waive — which makes the immediate decision an owner decision, i.e. D, not an automatic Codex round (C). C remains the path if the owner chooses to honor B0‴.

What D means concretely (the binding gate)

The next step is an owner/operator decision + resource action, not an internally-authorized build:

  • Load-bearing: provision the deny-by-default sandbox host per spec §12.1 (no network namespace; RO input mount; WO output mount; no secret mounts; scrubbed env; seccomp execve/socket/connect/ptrace deny) — plan M5 / B4′. Without it the offline MVP's primary boundary cannot exist and ~11 acceptance tests cannot pass.
  • Authority: owner disposes of B0‴ — either route the rev4 packet to Codex (honor the recorded gate) or owner-waive it, accepting the documented risk that the offline-packet architecture is unreviewed and that prior self-audits were overturned.

Track 9 verdict: D — TRUE_BLOCKER. The internal proof is complete for everything internally provable; the remainder is an irreducible owner/operator gate, recorded action-ready in Track 11.


Track 10 — Build prompt packet

NOT PRODUCED. Track 10 is conditional on Decision A. Decision is D, so no build-offline-packet-mvp-prototype-program-macro-prompt-2026-06-09.md is written. (Producing a "build now" prompt would contradict the recorded B0‴ gate and the un-provisioned sandbox, and would be a fake-green.) The build prompt becomes appropriate only after the owner provisions the sandbox host and disposes of B0‴ (Track 11 B-EXT-1/B-EXT-2).


Track 11 — Action-ready blocker packet (summary; full packet is a separate deliverable)

See checkpoints/action-ready-blockers-after-internal-proof-rev4-2026-06-09.md. Headline blockers:

ID Blocker Owner/Codex/operator Blocks build or only future phases?
B-EXT-1 (load-bearing) Deny-by-default sandbox host not provisioned (L1 primary boundary; "specified, not deployed") Owner/operator (resource) Blocks build acceptance (M5/B4′)
B-EXT-2 B0‴ rev4 Codex re-seal open (offline-packet architecture unreviewed); owner may honor or waive Owner authority (→ Codex if honored) Blocks build start per corpus; owner-waivable
B-DEF-1 Live governed export step + named-query-catalog/driver/network-policy Owner + Codex (B7) Future phase only (MVP uses manual packet)
B-DEF-2 Path-scoped server-enforced KB report writer Owner + Codex (B7) Future phase only (MVP writes local)
B-DEF-3 Downstream consumer/authority contract (any gate use) Owner + Codex (B7) Future phase only
B-DEF-4 Call Contract / proof-of-run / global-absence Owner + Codex (B1/B2/B3) Future phase only (execution surface)

Track 12 — Self-verification before final

Item Verdict
KB readback PASS (9/9 docs, consistent)
Rev4 scope lock PASS (12/12)
Codex blocker closure ledger PARTIAL (6/6 mapped to repair + test; all "MVP still blocked = Yes"; honest deferrals named)
Guard requirements mapped PASS (14/14 → layer + impl + test + proof)
Negative coverage PASS (16/16 classes; 1 honestly deferred)
Article 13 PASS
Article 14 PASS
No local-first PASS
No fake-green PASS (final status PARTIAL, decision D — refuses to over-authorize)
No implementation PASS (no code/schema/runner/sandbox built)
No mutation PASS (only KB design/report/checkpoint writes)
Next-step decision justified PASS (D, with explicit A/B/C rejections)

Critical item PARTIAL (Codex blocker closure) ⇒ final status INTERNAL_PROOF_PARTIAL per the macro's Track-12 rule. This is the honest ceiling: the proof closed everything internally closable; it cannot close the external owner/operator gate, and it refuses to pretend otherwise.


Final determination

  • Final status: INTERNAL_PROOF_PARTIAL
  • Production mutation: NO · Codex consulted: NO
  • Build-readiness decision: D — TRUE_BLOCKER (owner/operator + resource). Binding blocker = sandbox host provisioning (M5/B4′); parallel recorded authority gate = B0‴ (owner may honor → Codex, or waive). A not reachable; B not required; C is not the load-bearing constraint.
  • Minimal safe next step: Owner decision + provisioning — provision the §12.1 deny-by-default sandbox host (M5), and dispose of B0‴ (route to Codex or owner-waive with documented risk). Only then does an offline MVP prototype build (the next macro) become runnable. Do not implement, invoke, install, mutate, provision-by-Claude, or create a tool/schema/runner/sandbox.

Cross-references

  • rev4 spec: designs/implementation-package-dot-v0-1-gap-only-scope-spec-rev4-2026-06-09.{md,json} (§2, §4.0, §9, §10, §12, §21, §22)
  • rev4 plan: planning/mvp-read-report-inspector-implementation-plan-no-code-rev4-2026-06-09.md (G1–G12, M1–M5, N1–N32)
  • rev4 matrix: designs/acceptance-test-matrix-implementation-package-dot-v0-1-rev4-2026-06-09.md (L1–L5, #1–#45, D1–D11)
  • rev4 fix ledger: reports/codex-fix-ledger-gap-only-spec-rev4-2026-06-09.md
  • rev4 FIX7 pilot: designs/fix7-read-report-pilot-design-rev4-for-implementation-package-dot-v0-1-2026-06-09.md
  • rev4 Codex checkpoint packet (unsent/unanswered): reviews/codex-checkpoint-packet-gap-only-spec-and-fix7-pilot-rev4-2026-06-09.md
  • Machine mirror of this proof: reports/internal-evidence-proof-rev4-phase2-readiness-2026-06-09.json
  • Action-ready blockers: checkpoints/action-ready-blockers-after-internal-proof-rev4-2026-06-09.md
  • Checkpoint: checkpoints/checkpoint-internal-proof-rev4-phase2-readiness-2026-06-09.md
  • Constitution: knowledge/dev/laws/constitution.md (NT13 Article 13, NT14 Article 14)
Back to Knowledge Hub knowledge/dev/laws/tool-kiem-thu/reports/internal-evidence-proof-rev4-phase2-readiness-2026-06-09.md