Skip to content

plan(v0.61): scope the release — "the capability exists; aim it where it is needed" (6 artifacts) - #1094

Merged
avrabe merged 1 commit into
mainfrom
plan/v061-scope
Aug 27, 2026
Merged

plan(v0.61): scope the release — "the capability exists; aim it where it is needed" (6 artifacts)#1094
avrabe merged 1 commit into
mainfrom
plan/v061-scope

Conversation

@avrabe

@avrabe avrabe commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Refs #1093, #1091, #1085, #1072, #1062, #1057, #242.

First release on the per-requirement layout (#1059) — six files under artifacts/release-v0.61/, one per requirement, beside the comments-only _release.yaml.

Verified empirically on the CI-pinned rivet 0.23.0 before bumping the floor: 473 → 479 with all six ids visible in rivet list and 0 OURS validation errors. So the directory is genuinely recursed rather than silently skipped — which is the #1064 shape this layout exists to prevent. ARTIFACT_FLOOR 473 → 479 in the same commit (visible-diff rule).

The theme is what v0.60 measured about itself, four times

The mechanism already exists and is pointed somewhere else.

That is a different failure mode from "we lacked a check", and it wants a different remedy: audit where existing gates point, rather than adding new ones.

Scope

artifact issue what
RQ-61-MVPANIC #1093 two of three backends panic on a spec-suite multi-value if
RQ-61-VCLOSURE #1091 60/60 release artifacts have no verifies link; coverage exits 0 at 40.1%
RQ-61-EVIDENCE #1085 R7 evidence belongs to the release · R8 release: == file version · R9 gate > code path
RQ-61-IMMRANGE #1072 six debug_assert immediate ranges compiled out in release
RQ-61-WASMOP #1057 the proof-inventory universe misses the ops the consumer actually meets
RQ-61-CICAP #1062 six of nine required contexts on ubuntu-latest while seven rust-cpu runners idle

A measured correction inside RQ-61-MVPANIC

The report says rv32 declines cleanly. It does not — it panics at its own site with the identical message, so this is the same defect independently present in two selectors, not one backend missing a guard. 7 of 8 invocation paths panic, --no-optimize helps nowhere (contradicting run_supported.sh's documented workaround), and (param i32 i32) appears 10 times in the if.wast that v0.60.0 vendors.

The fix is a loud decline, not multi-value support — same policy as #1013: match the existing refusal, don't invent one.

Status discipline

All six are proposed with a done-when. None is implemented — nothing has been built, and v0.60's lesson is that a status is a claim about evidence, not about intent.

Gates

status-evidence 0 failures (66 artifacts / 11 release files / 14 done-when predicates)
claim_check 52/52 · tests OK · proof_inventory --check ok
every new file duplicate-key strict-clean · _release.yaml still comments-only

🤖 Generated with Claude Code

https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L

… it is needed" (6 artifacts)

FIRST RELEASE ON THE PER-REQUIREMENT LAYOUT (#1059). Six files under
artifacts/release-v0.61/, one per requirement, beside the comments-only
_release.yaml. Verified empirically on the CI-pinned rivet 0.23.0 BEFORE
bumping the floor: 473 -> 479 with all six ids visible in `rivet list` and
0 OURS validation errors — so the directory is genuinely recursed rather
than silently skipped, which is the #1064 shape this layout is built
against. ARTIFACT_FLOOR 473 -> 479 in this same commit (visible-diff rule).

THE THEME, and it is not a slogan — it is what v0.60 measured about itself
four times: THE MECHANISM ALREADY EXISTS AND IS POINTED SOMEWHERE ELSE.
The strict YAML loader existed, just not on the ledger every other claim is
checked against. `rivet coverage` runs in a required job, and prints instead
of asserting. The status gate asks whether evidence exists, never which
release it came from. And now #1093: the `(params, results)` arity check
exists on aarch64 and on neither of the other two selectors. That is a
different failure mode from "we lacked a check", and it wants a different
remedy — audit where existing gates POINT, rather than adding new ones.

  RQ-61-MVPANIC   (#1093) two of three backends PANIC on a spec-suite
                  multi-value `if`; aarch64 declines with a named reason.
                  MEASURED CORRECTION to the report: rv32 does NOT decline
                  cleanly, it panics at its own site with the identical
                  message — the same defect independently present in two
                  selectors. 7 of 8 invocation paths panic, `--no-optimize`
                  helps nowhere, and `(param i32 i32)` appears 10 times in
                  the if.wast v0.60.0 vendors. Fix = port the arity check,
                  a LOUD DECLINE, not multi-value support.
  RQ-61-VCLOSURE  (#1091) 60/60 release artifacts across v0.56-v0.60 carry
                  no `verifies` link and `rivet coverage` exits 0 at 40.1%.
  RQ-61-EVIDENCE  (#1085) R7 evidence must belong to the release, R8 the
                  `release:` field must equal the file's version (6 live
                  mismatches), R9 a `contains:` into crates/** is weaker
                  than the gate that exercises it.
  RQ-61-IMMRANGE  (#1072) six debug_assert-guarded immediate ranges compiled
                  out in release. Carries the transferable v0.60 finding:
                  increasing REACH converts LATENT encoder defects into
                  REACHABLE ones, and reach work should budget for that.
  RQ-61-WASMOP    (#1057) the proof-inventory universe is the Rocq
                  constructor set, so the ops gale actually meets get no row
                  at all — in a manifest whose point is that absence should
                  be legible. Ordering put to the consumer, not decided here.
  RQ-61-CICAP     (#1062) six of nine required contexts on ubuntu-latest
                  while seven rust-cpu runners idle, isolated by a natural
                  experiment: four PRs each stalled at exactly 3/9, and the
                  three that passed were the three self-hosted ones.

All six are `proposed` with a `done-when`. None is `implemented`: nothing
has been built yet, and the v0.60 lesson is that a status is a claim about
evidence, not about intent.

Gates: status-evidence 0 failures (66 artifacts / 11 release files / 14
done-when predicates) · claim_check 52/52 · tests OK · proof_inventory
--check ok · every new file duplicate-key strict-clean · _release.yaml
still comments-only.

Refs #1093, #1091, #1085, #1072, #1062, #1057, #242.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YJK5LZZEkV5smCY1jKn18L
@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@avrabe
avrabe merged commit 88abab3 into main Aug 27, 2026
58 checks passed
@avrabe
avrabe deleted the plan/v061-scope branch August 27, 2026 19:19
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