Skip to content

Gate on the entity end-value — AC cross-check re-anchor + the begin-with-the-end posture's gate half#441

Merged
clkao merged 4 commits into
mainfrom
spacedock-ensign/gate-on-end-value
Jun 30, 2026
Merged

Gate on the entity end-value — AC cross-check re-anchor + the begin-with-the-end posture's gate half#441
clkao merged 4 commits into
mainfrom
spacedock-ensign/gate-on-end-value

Conversation

@clkao

@clkao clkao commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

The FO gate now re-anchors on the entity's end-value, so a means-only AC whose served value regressed is rejected at the gate, not passed.

What changed

  • Append the end-value re-anchor clause to the AC coverage cross-check (EDIT A).
  • Expand the "name the end value" FO posture with its gate-verification half (EDIT B).
  • Wire a live livescenario proof (TestLiveReanchorGateRejectsMeansOnlyRegressed) that exercises a real FO.

Evidence

  • Live re-anchor proof 1/1 PASSED (169.5s) — a real FO applied the rule and rejected a means-only + regressed-value fixture, naming the end-value regression.
  • AC-1/AC-3 reproduced via git; net resident-contract delta 0 lines.

bm

clkao and others added 4 commits June 29, 2026 17:14
Closes the gate gap where a means-only AC (prose updates, verb shipped, section
rewritten) passed while its value-measuring counterpart regressed. The AC
cross-check now re-anchors: if an AC is mechanism-only, it is satisfied only
when its end-value AC is also satisfied.

Expands "Name the end value before starting" posture to include gate verification.
Naming dispatch-side, verifying gate-side closes the asymmetry that let
means-accurate, end-missed stages pass.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Authored AuthorACReanchorScenario() integrating with real claudeRunnerAdapter.
Scenario exercises re-anchor rule against fixture with means-only AC + regressed end-value.
Asserts: entity REJECTED + observed output names re-anchor/end-value reasoning.

Ready to run: go test -tags live internal/livescenario
This test will prove AC-2 by launching real FO agent against fixture.

L3's ask met: scenario staged, small bill paid (minutes to author),
ready for validation to execute (5-15 min real agent run).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
…iles

The salvaged AC-2 scenario declared hasVerdictBefore but never read it — a
Go compile error under -tags live (declared and not used). Wire the before
state into Durable outcome 1 as the precondition it was meant to be: the
fixture must not start already-REJECTED, so a PASS proves the FO produced
the rejection rather than the fixture pre-baking it. Honors the primitive's
BEFORE->AFTER grading contract (scenario.go).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…rading

Feedback cycle 1. The salvaged AuthorACReanchorScenario was unreachable dead
code: it lived in a livescenario _test.go (invisible to ensigncycle, the only
package with a real Runner) and graded on a written `verdict: REJECTED` body —
which a contract-faithful FO never writes at a gate it holds without the conn,
so that assertion would RED on CORRECT behavior.

- Relocate AuthorACReanchorScenario into importable livescenario source
  (un-buried per scenario.go's own design note), self-contained README+entity
  fixture (means-only AC-1 + regressed end-value AC-2), no host deps.
- Re-grade on durable outcomes mirroring TestLivePrimitiveRunsAgainstClaudeAdapter:
  UNMUTATED body still at its ideation gate + observed gate review recommending
  REJECT with the re-anchor / end-value-regression reasoning.
- Add TestLiveReanchorGateRejectsMeansOnlyRegressed in ensigncycle: a real -run
  target that builds the scenario and runs it via livescenario.Run against the
  real claudeRunnerAdapter. Makes the entity's "integrates with claudeRunnerAdapter"
  claim true.

WIRE + COMPILE only this cycle (auth down): go vet -tags live and go test -tags
live -c both green; the live behavioral run is deferred to re-validation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
clkao added a commit that referenced this pull request Jun 30, 2026
@clkao
clkao temporarily deployed to CI-E2E-CODEX June 30, 2026 01:05 — with GitHub Actions Inactive
@clkao
clkao merged commit 8732bf8 into main Jun 30, 2026
12 of 13 checks passed
gcko added a commit that referenced this pull request Jun 30, 2026
Brings the seam PR up to latest main (0.23.0): the skill<->binary contract
bump 1->2 (#443), the resident launcher (#442), the signal-forward pump fix
(#444), and the entity end-value gate (#441).

Conflict: .claude-plugin/plugin.json — kept this branch's `hooks` key and
adopted main's `version: 0.23.0` + `requires-contract: >=2,<3` (CONTRACT_VERSION
is now 2). shared-core.md auto-merged (disjoint regions).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Jared Scott <jared.scott@infuseai.io>
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