Skip to content

EPOCH-3: pre-frozen MODEL-OUTPUT-INVALID terminal + fresh epoch lineage (ruling executed) - #19

Open
Foshowithit wants to merge 17 commits into
mainfrom
r4-reconcile
Open

Foshowithit wants to merge 17 commits into
mainfrom
r4-reconcile

Conversation

@Foshowithit

Copy link
Copy Markdown
Owner

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 in 8b5e270. Certification suite smoke_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.json open-round2, PROTOCOL-LOCK-EPOCH3.json living-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 merge 895b849origin/main (80355c5) merged into r4-reconcile so that r4-reconcile stays first parent, which makes the merge tree identical to the pre-merge tip: p1 = 56f4156, p2 = 80355c5, tree 29f44dd8 == 56f4156^{tree}, git diff 56f4156 HEAD empty, working-tree status unchanged. Main's seven commits are exactly the PR #12#18 merges of r4-reconcile ancestors, so nothing on main was 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-disk PROTOCOL-LOCK.json bytes == 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, 1589b5b records the reconciliation in FAMC-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):

  • at 895b849 (the reconciliation tip): battery 40/40 suites, 1287/1287 checks — identical totals to the pre-merge baseline at 56f4156 (cert-tip-strict); preflight V1 0 / V2 0 / V3 0; epoch_transition.py --check epoch 3 green; named synthetic attack 5 PASS / 0 FAIL (dirty_files: 1, the frozen untracked operator-error evidence), manifest committed in 1589b5b.
  • at 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 --check epoch 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 the 895b849 record, 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_epoch3 21/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_*.py glob at every cited ref, and the archived batteries record 40/40 and 1287/1287. No 43-suite artifact was located (search over ~8,700 /tmp entries, 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.

Foshowithit and others added 17 commits September 17, 2026 02:42
…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant