Skip to content

fix: correct stale prose in the cascade oracle (it claimed 3 stages were missing) + add an image provenance pin - #188

Merged
avrabe merged 1 commit into
mainfrom
fix/stale-oracle-prose
Aug 27, 2026
Merged

fix: correct stale prose in the cascade oracle (it claimed 3 stages were missing) + add an image provenance pin#188
avrabe merged 1 commit into
mainfrom
fix/stale-oracle-prose

Conversation

@avrabe

@avrabe avrabe commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

SELF-VERIFY (overdue — four features since the last, and two claims had gone upstream to synth#1069) came back 7/7 CONFIRMED, with claim 1 strengthened:

  • verifier rebuilt the fused cascade independently → 0 skips, 5/5 T symbols
  • added a negative control I hadn't run — the v0.59.0 release synth on the same fused input gives exit 1, 3 skips, 0 T symbols
  • established something I hadn't: the committed image is bit-reproducible — a fresh pipeline build yields a byte-identical SHA256 (c692f50d…) from two independent builds

The real inconsistency — stale prose in the evidence itself

The oracle's own header comment still described the previous 2-of-5 image:

  • loom 1.2.0 / synth 0.55 / 65,452 B — actual: loom 1.4.1, source synth, 94,907 B
  • and, flatly false of the committed ELF: "iekf/position/attitude entry points are NOT in this image — that is expected and is the single remaining upstream gate"

The test cases were correct and non-vacuous; only the prose lied. That mattered because this file is the evidence cited upstream for the 5/5 claim — anyone opening it to check would read a comment saying three stages were missing. The stale 214,696 instruction count also survived in the robot and one TEST-PIX-031 paragraph (correct: 213,439). Both corrected.

The more valuable finding — CI gated execution but not provenance

CI runs the robot against the committed ELF and never rebuilds the meld→loom→synth chain. So a hand-swapped or drifted image would have passed.

Closed half of it: an image provenance pin — SHA256 asserted in the robot, negative-controlled (a mutated digest fails). Honest scope, stated in the file: the pin detects that the committed bytes changed; it does not prove the pipeline produced them. The full gate needs meld/loom/synth in the runner and is follow-on work.

Pinning is meaningful here precisely because the image was shown bit-reproducible — pinning an unreproducible blob would be theatre.

Oracle now 3/3 OK. rivet validate → PASS.

🤖 Generated with Claude Code

…ere missing) + add an image provenance pin

SELF-VERIFY (overdue) came back 7/7 CONFIRMED, with claim 1 STRENGTHENED: the verifier rebuilt the
fused cascade independently (0 skips, 5/5 T symbols), added a negative control jess had not run (the
v0.59.0 RELEASE synth on the same input gives 3 skips, 0 T symbols), and established that THE
COMMITTED IMAGE IS BIT-REPRODUCIBLE — a fresh pipeline build yields a byte-identical SHA256 from two
independent builds.

THE REAL INCONSISTENCY: the oracle's own header comment still described the previous 2-of-5 image —
"loom 1.2.0 / synth 0.55 / 65,452 B" and, flatly false of the committed ELF, "iekf/position/attitude
entry points are NOT in this image ... the single remaining upstream gate". The test cases were
correct; only the prose lied. It mattered because THIS FILE IS THE EVIDENCE cited upstream for the
5/5 claim. The stale 214,696 instruction count also survived in the robot and one TEST-PIX-031
paragraph (correct: 213,439). Both corrected.

STRUCTURAL GAP (the more valuable finding): CI runs the robot against the COMMITTED ELF and never
rebuilds the meld->loom->synth chain — so CI gated EXECUTION but not PROVENANCE, and a hand-swapped
image would have passed. Closed half of it with an IMAGE PROVENANCE PIN (SHA256 asserted in the
robot, negative-controlled — a mutated digest fails). Honest scope stated in the file: the pin
detects that the bytes changed, it does NOT prove the pipeline produced them. The full gate needs
meld/loom/synth in the runner. Pinning is meaningful here precisely because the image was shown
bit-reproducible; pinning an unreproducible blob would be theatre.

Verified: oracle now 3/3 OK; provenance pin negative-controlled (mutated digest fails);
rivet validate PASS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@avrabe
avrabe merged commit 77ae7b5 into main Aug 27, 2026
5 checks passed
@avrabe
avrabe deleted the fix/stale-oracle-prose branch August 27, 2026 14:44
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