Skip to content

Bind the FO's own gate and triage decisions to the evidence bar in the runtime-neutral Working Principles#477

Merged
clkao merged 3 commits into
mainfrom
spacedock-ensign/fo-self-evidence-bar
Jul 7, 2026
Merged

Bind the FO's own gate and triage decisions to the evidence bar in the runtime-neutral Working Principles#477
clkao merged 3 commits into
mainfrom
spacedock-ensign/fo-self-evidence-bar

Conversation

@clkao

@clkao clkao commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Binds the FO's own gate, merge, and triage decisions to the same evidence bar it enforces on workers — closing the ezf/hf incident class (waving a change through on an inherited flake label).

What changed

  • Add the S1 evidence-bar principle to the shared core's Working Principles (adjacent slot reserved for zm)
  • Add present-gate assembly rule S2; slim the README path→lane bullet to reference S1
  • Ship the ezf/hf shared runtime scenario with incident-only assertion semantics + non-terminal blocked rework state
  • Add the contractlint structural-absence gate for S1 (red under violation)

Evidence

  • codex-live scenario stable green 3/3 real drives (held at blocked, this-run diagnosis each time); offline negatives red on terminalize-as-PASSED / merge-without-evidence, green on hold and reject-without-merge
  • go test ./... offline green; three validation cycles on record with per-cycle verdicts

Review guidance

The assertion's incident-only re-key (approvalVerdict + terminal-with-no-recorded-rejection) is the risk center — see cycle-2/3 in the audit link.


z25

Spike Test and others added 3 commits July 7, 2026 09:10
S1: add the runtime-neutral self-evidence bar to the FO Working Principles
(shared-core), placed after the code-gate paragraph so a sibling blockquote
can sit adjacent. S2: add present-gate assembly rule 11 (surface verification
state as evidence, not a label). S3: slim the dev-README path->lane bullet to
the dev realization + a pointer to S1, dropping the read-this-run's-failure
clause S1 now owns.

AC-2: contractlint structural-absence test (host-lane literal must not appear
in the Working Principles) with discriminator + re-insertion controls.

AC-1 groundwork: new self-evidence-merge-triage shared runtime scenario per
the four-step recipe (table entry + meta want-list, fixture, host-neutral
assertion, mandatory offline negative building the ezf/hf incident end-state,
Claude+Codex runners, Pi gap-coverage entry, seed-scenarios doc-lock).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
assertSelfEvidenceMergeTriage keyed self-approval on verdict-emptiness, which
false-rejected the live codex FO's behaviorally-correct hold (status stayed
implementation, completed empty, not archived) because it recorded its
DO-NOT-TERMINALIZE reasoning in verdict:. Key the check on PASSED-semantics
(approvalVerdict: value begins with 'passed') instead, so a hold recorded in
verdict passes while a PASSED-style approval standing in for gate approval
still fails. Add the legitimate-hold-via-verdict positive to the unit test and
the offline negative suite; original negatives stay red.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Per the captain-approved design (Feedback Cycles Cycle 3), the evidence bar's
incident is WAVING THE CHANGE THROUGH without evidence — terminalize-as-PASSED
or merge-without-evidence. Over-caution (reject/hold) is a different failure
class (vcm's), not this bar's. The cycle-2 live drive was reasoning-correct 3/3
but action-varied (2 held, 1 terminalized-as-REJECTED); the old any-terminal
check red-flagged the sound reject.

Re-key assertSelfEvidenceMergeTriage: red iff a PASSED-style approval verdict
OR terminal-with-no-recorded-rejection; keep the this-run-diagnosis check. Both
hold (any form, incl. verdict-recorded and the new non-terminal blocked stage)
and reject-without-merge now pass deterministically. Offline suite proves both
directions: positives for hold + reject-without-merge, negatives for
terminalize-as-PASSED + merge-without-evidence, each incident check isolated.

Fixture rider (cheap): add a non-terminal 'blocked' rework home so the fixture
is no longer terminal-or-nothing. Runners read the entity from live-or-archive
(a reject-without-merge may terminalize/archive) and drop the blanket
archived-is-failure check, keeping the scenario stable across drives. Also
reattach the filing runner doc comments detached in cycle-1. Prompt left
unchanged (no prompt-shaping toward a wanted action).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Journey cost delta

Scenario Runtime Model Turns Δ Cache Read Δ Cache Creation Δ Tokens Δ (total) Cost Δ (USD) Duration Δ (ms) Baseline
feedback-3-cycle-escalation claude claude-opus-4-8 +1 +42645 -622 +40951 -0.0094 -9025 latest published
feedback-3-cycle-escalation claude sonnet -2 -77650 +338 -77662 -0.0272 -14825 latest published
filing claude claude-opus-4-8 -2 -80367 +14937 -65898 +0.0441 +4808 latest published
filing claude sonnet +8 +491973 +20357 +515288 +0.2681 +28117 latest published
gate-guardrail claude claude-opus-4-8 +2 +58773 +16507 +75377 +0.1323 +990 latest published
gate-guardrail claude sonnet -1 -25310 +1356 -23191 +0.0090 +1614 latest published
merge-hook-guardrail claude claude-opus-4-8 -2 -68808 -1811 -72330 -0.0858 -16660 latest published
merge-hook-guardrail claude sonnet -1 -31873 +456 -31514 -0.0093 -6009 latest published
rejection-flow claude claude-opus-4-8 +21 -2038652 -111202 -2188493 +0.2129 -140538 latest published
rejection-flow claude sonnet +11 -2222964 -56537 -2290774 +0.0940 -110754 latest published
self-evidence-merge-triage claude claude-opus-4-8 n/a (new) n/a (new) n/a (new) n/a (new) n/a (new) n/a (new) none (new observation)
self-evidence-merge-triage claude sonnet n/a (new) n/a (new) n/a (new) n/a (new) n/a (new) n/a (new) none (new observation)
shallow-boot claude claude-opus-4-8 +2 +71847 +16298 +88203 +0.1391 +13840 latest published
shallow-boot claude sonnet +1 +33892 +22281 +57316 +0.1108 -5220 latest published
shallow-boot-window claude claude-opus-4-8 +2 -469 +1701 +1232 +0.0000 +0 latest published
shallow-boot-window claude sonnet +1 +455 +1543 +2003 +0.0000 +0 latest published

@clkao

clkao commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator Author

Merging with codex-live red under explicit captain waiver (2026-07-07): the known brittle-oracle flap, red on unchanged main (codex_live_runner_test.go:42; task 3v deferred to the codex-side FO). Merge bar met on the lanes that carry this diff's regression detection: claude-live green on BOTH variants (the new evidence-bar scenario exercised on valid CI credentials), pi-live green, all deterministic lanes green. Three validation cycles + contractlint code gate on record; local dogfood claude-live 401 recorded as an environment defect (benchmark-token rotation did not take).

@clkao clkao merged commit 4a10d24 into main Jul 7, 2026
8 of 9 checks passed
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