EPOCH-3: pre-frozen MODEL-OUTPUT-INVALID terminal + fresh epoch lineage (ruling executed) - #19
Open
Foshowithit wants to merge 17 commits into
Open
Foshowithit wants to merge 17 commits into
Foshowithit wants to merge 17 commits into
Conversation
…ution FINAL, post-FINAL refusals proven) Per the EPOCH-1 closure ruling: epoch 2 receives fresh locks and a new finalization commit; cells execute from the beginning under this lineage. Certified pre-finalization: battery 39/39 at 53e72ef, smoke_h37 26/26, preflight 0/0/0.
…h-terminal denials recorded, deadlock fixed (as ruled); operator-error incident preserved
…p record Docs-only slice per the 2026-09-17 parse-denial ruling. Adds EPOCH-3-PROTOCOL-SPEC.md (draft, frozen-pending: MODEL-OUTPUT-INVALID.json terminal schema, writer site at the runner parse gate, COMPLETE-FAILURE progress algebra, attempt-level reliability statistics, epoch-3 lineage + restart-from-0), EPOCH-2-STOP-RECORD.md (stopped/incomplete epoch-2 annex; creates no terminal; completed_cells() must not advance past cell 63), FREEZE-REQUEST.md (FR-1..FR-13 + recorded conflicts for third-party adjudication), and a META addendum in FAMC-EXECUTION-STATUS.md. No harness bytes, no lock, no state/ write, no model call, no battery.
Applies the third-party seat ACCEPT-AS-AMENDED adjudication (FREEZE-ADJUDICATION-2026-09-17.md) item by item. FR-1 production terminal identity/authority schema + raw-response replay validator; FR-2 FAIL/non-SHIP correctness semantics + T1 failure branch; FR-3 semantic writer site + required ordering; FR-4 unchanged; FR-5 sec 3.1 governance evidence union; FR-6 ATTEMPT-BUDGET-DENY + ledger authority + denominator decomposition; FR-7 transition citations; FR-8 PILOT-GRADE wording; FR-9 MODEL SAMPLE EXISTS boundary + acquisition replacement unit; FR-10 sec 4.1 terminal-cell reporting; FR-11 stop-record index-63/index-64 wording + epoch-stop annex rename; FR-12 twelve-probe certification standard (implementation deferred); FR-13 preflight governance (post-freeze implementation item). FREEZE-REQUEST.md records the verdict and per-item dispositions. No harness byte, no lock, no state/ write, no model call; epoch 2 remains STOPPED/INCOMPLETE; epoch 3 not frozen, implementation unauthorized.
…mative spec (docs-only) Second-adjudication correction (FREEZE-RULING-2-2026-09-17.md: REFUSE, one criterion-fidelity defect). Adds the explicit FR-13 V1/V2 authority rule to EPOCH-3-PROTOCOL-SPEC.md under section 7 as the Preflight governance subsection (V1 META set; V2 PROTOCOL_GOVERNED = existing seven files + EPOCH-3-PROTOCOL-SPEC.md; Being V1 META MUST NOT exempt the spec from V2; FREEZE-REQUEST.md remains historical META, not protocol authority), and updates FREEZE-REQUEST.md only to record the new spec hash and the second-adjudication status. No harness, lock, state, or model call; epoch-2 evidence untouched.
…ETA (docs-only) Third-adjudication correction (FREEZE-RULING-3-2026-09-17.md: REFUSE, one microscopic FR-13 wording defect). The spec section 7 Preflight governance subsection now opens with the ruling verbatim form: The epoch-3 preflight governance extensions are exactly: V1 META additions (the six epoch-3 files) and V2 PROTOCOL_GOVERNED (the existing seven governed files + EPOCH-3-PROTOCOL-SPEC.md). The two required sentences are unchanged verbatim, and no other content changed. FREEZE-REQUEST.md updated only to record the new spec hash and this third adjudication. No harness, lock, state, or model call; epoch-2 evidence untouched.
…y) + attempt ledger/N=1 + progress algebra + governance union + epoch-3 machinery Implements the FROZEN EPOCH-3-PROTOCOL-SPEC.md (sha 28cdf2a2, freeze commit 03af3cd) exactly: - harness/order.py: MODEL-OUTPUT-INVALID.json terminal constants + STRICT validator (production cell identity, active execution/protocol-lock + harness-manifest + frozen-spec bindings, no machine-local paths, forbidden companions, per-attempt response preservation, deterministic replay of the preserved raw-<call_id>.txt through the frozen extract(), ledger cross-checks); progress_valid() accepts COMPLETE-FAILURE for model cells only; _model_run_state() dispatches to it; acquisition_failed() gains the T0- and T1-terminal disjuncts; the T1 of a T0-terminal universe resolves NOT-EVALUABLE; §3.1 governance evidence union (failure_event + acquisition_evidence + candidate_sha256) written by emit_promotion_outcome / emit_capability_lock_outcome and re-derived by the NOT-PROMOTED / NOT-LOCKED validators; attempt-ledger rules; two reliability statistics + denominator decomposition; §4.1 evidence row + exit-code helper. - harness/promotion.py: the terminal branch of the failed-acquisition path records the §3.1 union (no chain tips, no fabricated candidate for T0). - harness/usage.py: NoModelSample (transport/HTTP error, malformed payload, null reply content) carrying the exact request bytes/hash so a true no-model-sample invocation is enumerated with null sample fields. - run_arm_h1.py: attempt-budget refusal (ATTEMPT-BUDGET-DENY / MODEL-OUTPUT-INVALID-DENY) before any call; per-attempt raw-<call_id>.txt; ledger row durable before the terminal; the parse gate runs over the PRESERVED bytes; write-once O_EXCL terminal minted with self-checks; exit 0 for a recorded terminal, non-zero for infrastructure/refusal. - harness/epoch.py + epoch_transition.py: epoch-3 lineage (state/epoch3, EPOCH-3-TRANSITION.json citing the frozen epoch-2 boundary/stop-record/ spec/order-expansion pins, fresh locks on their own OPEN lineage), the frozen citation constants, and --transition-epoch3. No provider/model call is made by anything in this commit.
…overned set = seven + EPOCH-3-PROTOCOL-SPEC.md - V1 META gains exactly the six frozen epoch-3 files (EPOCH-2-STOP-RECORD.md, EPOCH-3-PROTOCOL-SPEC.md, FREEZE-REQUEST.md, EPOCH-3-TRANSITION.json, EXECUTION-LOCK-EPOCH3.json, PROTOCOL-LOCK-EPOCH3.json) as ADDITIONS to the existing set; V2 protocol_governed() = the existing seven governed files + EPOCH-3-PROTOCOL-SPEC.md once epoch 3 is active (being V1 META never exempts the spec from V2), while the closed epochs keep their recorded sets. - V1 instance-freeze now prunes EVERY epoch state root (state/, state/epoch2/, state/epoch3/): runtime state is evidence, never a frozen instance input. - V2/V3 gain epoch-3 authorities: the epoch-3 transition/boundary audit, the epoch-2 FINAL locks as HISTORICAL records, the fresh epoch-3 lock bindings, and the epoch-3 governed set (governed == the transition genesis base). - validate_lock_global() takes the active governed set.
…union/lineage coverage - harness/tests/smoke_h38_epoch3.py: the frozen §7 certification standard, 21 checks — the write-once writer + strict validator, duplicate-write refusal, deterministic replay (probe 4), identity-invalid cannot mint (probe 5), no-sample HTTP error stays infrastructure (probe 6), ATTEMPT-BUDGET-DENY (probe 7), tampered/missing ledger rows (probe 8), lock-binding mismatch (probe 9), governance wrong-terminal-SHA / null-tip branch (probe 10), epoch-2 state cannot satisfy an epoch-3 cell (probe 11), a tampered terminal never advances the prefix (probe 12), the T0 and T1 continuation algebras (probes 1/2), downstream non-SHIP + no efficiency win + no T4 specificity rejection + the §24 row (probe 3), the statistics, and the live epoch-3 lineage. - h33/h34: their offline attack scenarios each drive ONE synthetic invocation of the same authorized cell, so the cell attempt evidence is cleared between scenarios (N=1 refuses the second same-cell call); the refusals under test are unrelated to the attempt budget and no rule is weakened.
EPOCH-3-TRANSITION.json cites the frozen boundary: epoch-2 transition sha 047aef2f, both epoch-2 FINAL lock hashes (e662463e/978d5e3e), the epoch-2 finalization commit 53e72ef, the corrected stop record 4e0e84ec, the frozen EPOCH-3-PROTOCOL-SPEC.md sha 28cdf2a2 at freeze commit 03af3cd, and the exact frozen ORDER-EXPANSION.json pin 449be793; state prefix state/epoch3/. EXECUTION-LOCK-EPOCH3.json (27 harness files, manifest 22162924, status open-round2, amendments []) and PROTOCOL-LOCK-EPOCH3.json (8 governed files = the seven + EPOCH-3-PROTOCOL-SPEC.md, status living-lock, amendments []) are minted OPEN on their own append-only lineage. They are NOT finalized: per the campaign procedure finalization is auditor-supervised after independent certification and the execution-authorization ruling. Epoch-1 and epoch-2 state and locks are untouched historical records.
…ed set The frozen FR-13 rule makes V2 govern the existing seven files PLUS EPOCH-3-PROTOCOL-SPEC.md once epoch 3 is active, so the live-lineage probes use preflight.protocol_governed(FAMC) instead of the module constant, and the certified branch-sequence facts are re-certified at this slice: preflight.py 27 -> 28 (its EPOCH-3 FR-13 amendment commit), EPOCH-3-PROTOCOL-SPEC.md 4. Hermetic epoch-1-shaped fixture repos keep the frozen seven. No rule is weakened and no governor is added.
Records the implementation item-for-item against the frozen spec, the certification evidence at ref a7cd53d (battery 43/43 suites PASS with 1319/1319 checks closed, smoke_h38_epoch3.py 21/21 including the twelve frozen adversarial probes, preflight V1/V2/V3 0/0/0, epoch-3 transition check green, synthetic-attack 5 PASS / 0 FAIL), the OPEN state of both epoch-3 locks with the FINAL-gate refusal naming them, the frozen bytes verified at HEAD, the untouched epoch-1/epoch-2 evidence, the slice commit table, and the explicit non-goals: locks not finalized (auditor-supervised) and the epoch-2 Q-lane operator-error evidence left untracked per the frozen stop record. No provider/model call was made.
… FAIL at a7cd53d) The attack suite rewrites its own evidence-of-run manifest; refreshed at the epoch-3 certification ref (5 PASS / 0 FAIL, ref a7cd53d, branch r4-reconcile, per-suite rc 0). Runs artifacts are not part of the execution lock or the V2 governed set: no locked or governed byte changes. Force-added per the recorded runs/ precedent (the path is gitignored, the file is tracked).
…k amendment harness/order.py carried one unused read-only helper (a citation reader no caller used) — removed for audit hygiene, no behavior change (the terminal authority bindings, validator and writers are untouched). The epoch-3 EXECUTION-LOCK-EPOCH3.json records the change as its FIRST own-lineage amendment (harness/order.py, manifest 5a644aa1..., status open-round2) via harness/mint_execution_lock.py; the protocol lock governs no harness byte and stays untouched at 0 amendments.
… manifest) Records the definitive certification battery at the post-cleanup ref 452e063: 43/43 suites PASS, 1319/1319 checks closed, h38 21/21 (twelve frozen probes), preflight 0/0/0, epoch-3 transition check green, synthetic-attack 5 PASS / 0 FAIL; both epoch-3 locks remain OPEN and the FINAL gate refuses a wired cell naming them. Docs/evidence only — no governed, locked or state byte changes.
Merge origin/main into r4-reconcile. Byte-inert by construction: all 7 main-only commits are merges of r4 ancestors, so the merge tree is identical to 56f4156^{tree} (29f44dd). r4-reconcile stays the first parent, preserving first-parent experiment chronology (preflight D11.2) and the byte-pinned epoch-3 lock bindings (D7/D9/D11.1).
…ary) Byte-inert integration merge 895b849 (p1=56f4156, p2=80355c5 == origin/main): tree 29f44dd == 56f4156^{tree}; `git diff 56f4156 HEAD` empty; no governed, locked, state, suite or manifest byte changed; the branch stays the merge's first parent, so A12l D11.2 (first-parent chronology), A12i D9 (recorded-path subsequence) and A12l D11.1 (on-disk protocol-lock bytes) hold. Certification at 895b849: battery 40/40 suites, 1287/1287 checks (== the pre-merge baseline at 56f4156, tag cert-tip-strict); preflight V1-instance 0 / V2-protocol 0 / V3-execution 0; epoch_transition --check epoch 3 green; named synthetic attack 5 PASS / 0 FAIL (manifest refreshed in this commit). Both epoch-3 locks remain OPEN; the FINAL gate still refuses a wired estimand cell. Flags, without rewriting certified records, that the earlier "43/43 suites / 1319/1319 checks" figure is unreproducible: the suite universe is the 40-file harness/tests/smoke_*.py glob at every cited ref, and the archived batteries record 40/40 and 1287/1287. Docs/evidence only; no governed, locked or state byte changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Per the third-party ruling of 2026-09-17 (CONTRACT-PARSE-DENY = EXPERIMENTAL OUTCOME; N=1; NO RETRY-UNTIL-ADMISSIBLE; attempt 2 preserved, non-estimand; epoch 2 stops at the unrepresentable final cell): epoch 3 adds the pre-frozen MODEL-OUTPUT-INVALID terminal for model output that fails the frozen response contract, its strict validator (replay), the per-attempt ledger (N=1), the progress algebra and the governance union it feeds, and the epoch-3 machinery — a fresh transition record carrying fresh OPEN locks on its own append-only lineage, state under
state/epoch3/, and the FR-13 preflight governance rule frozen in the normative spec (V1 META semantics = additions to existing META; V2 governed set = the existing seven +EPOCH-3-PROTOCOL-SPEC.md). Spec-first is preserved: the rule-adjudication amendments land as docs-only commits (0efa114,2527303,03af3cd) ahead of the implementation (298a933), with the no-arrival terminal algebra draft and the epoch-2 stop record in8b5e270. Certification suitesmoke_h38_epoch3(21/21) carries the twelve frozen §7 adversarial probes plus terminal/ledger/union/lineage coverage. Both epoch-3 locks remain OPEN (EXECUTION-LOCK-EPOCH3.jsonopen-round2,PROTOCOL-LOCK-EPOCH3.jsonliving-lock) — finalization is auditor-supervised and follows independent certification; the FINAL gate is real code that refuses to start an epoch-3 run while a lock is non-FINAL (harness/run_arm_h1.py:3927,:1845 LOCK-NOT-FINAL), and no model call of any kind has been made in epoch 3.Reconciliation. The branch had stranded 15 commits ahead / 7 behind
main, with no open PR. It now carries the byte-inert reconciliation merge895b849—origin/main(80355c5) merged intor4-reconcileso thatr4-reconcilestays first parent, which makes the merge tree identical to the pre-merge tip:p1 = 56f4156,p2 = 80355c5, tree29f44dd8==56f4156^{tree},git diff 56f4156 HEADempty, working-tree status unchanged. Main's seven commits are exactly the PR #12–#18 merges ofr4-reconcileancestors, so nothing onmainwas dropped and nothing in the lineage moved. The recorded lineage rules survive by construction: A12l D11.2 (branch walk is first-parent), A12i D9 (the recorded path is a subsequence of committed content states on the experiment branch), A12l D11.1 (on-diskPROTOCOL-LOCK.jsonbytes == committed experiment-HEAD bytes). Rebase was never an option — it would rewrite the committed content-state chronology the locks pin. On top of the merge,1589b5brecords the reconciliation inFAMC-EXECUTION-STATUS.md(including the discrepancy note below) and refreshes the named synthetic-attack manifest.Certification — clean
/tmp/rcos-runs+/tmp/rcos-visible,umask 077, per-suite direct exit codes (no pipelines):895b849(the reconciliation tip): battery 40/40 suites, 1287/1287 checks — identical totals to the pre-merge baseline at56f4156(cert-tip-strict); preflight V1 0 / V2 0 / V3 0;epoch_transition.py --checkepoch 3 green; named synthetic attack 5 PASS / 0 FAIL (dirty_files: 1, the frozen untracked operator-error evidence), manifest committed in1589b5b.1589b5b(this PR's tip, i.e. the docs record on top of the byte-inert merge): battery 40/40 suites, 1287/1287 checks; preflight V1 0 / V2 0 / V3 0;epoch_transition.py --checkepoch 3 green; named synthetic attack 5 PASS / 0 FAIL — the attack rewrites its manifest for the ref it just certified, so that rewrite was reverted and the committed manifest intentionally keeps the895b849record, with the tip's figures cited here in the PR body (the same convention PR EPOCH-2: terminal-outcome progress semantics + epoch lineage (ruling executed) #18 used).smoke_h38_epoch321/21, and the four suites that read the status doc (h14 25/25, h32 25/25, h33 31/31, h34 29/29) are green in the same battery.Record-accuracy note (flagged, not rewritten). The earlier "43/43 suites / 1319/1319 checks" figure in the epoch-2 slice record is unreproducible: the suite universe is the 40-file
harness/tests/smoke_*.pyglob at every cited ref, and the archived batteries record 40/40 and 1287/1287. No 43-suite artifact was located (search over ~8,700/tmpentries, bounded to recorded battery paths). The certified records were left byte-for-byte as written; epoch-3 cites 40/40 and 1287/1287. The discrepancy is recorded in the doc rather than papered over, and it does not affect any byte pin (the doc is META, pinned by git history and the lock records, not by the content manifest).This PR is the EPOCH-3 submission boundary. No further epoch or slice work will be started on this branch until a human reviews this boundary; merging is a human decision and this PR is opened for review only.