Skip to content

chore(rivet): record the remainder of v1.5.0's scope before building it (#313) - #342

Open
avrabe wants to merge 1 commit into
mainfrom
chore/v150-scope-artifacts
Open

chore(rivet): record the remainder of v1.5.0's scope before building it (#313)#342
avrabe wants to merge 1 commit into
mainfrom
chore/v150-scope-artifacts

Conversation

@avrabe

@avrabe avrabe commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

rivet release status v1.5.0 reported "✓ Cuttable" while the release contained exactly one artifact (Tier-2 slice 1). The gate was not wrong about that artifact — it was reading green because the scope was almost empty, and a release gate that passes on an empty scope is indistinguishable from one that passes on a finished release.

This is the same defect class the repository has now found five times in code — the trap gate with 19 passing tests and zero callers (#288), the premise hook with no producers (#323), the pin defended only by a comment (#318), a proof that had never run, and loom verify printing a checkmark without opening the file (#332). This is the first instance found at the requirements layer rather than in the code.

Change

Records the remaining #313 scope as six draft artifacts — Tier-2 slices 2–6 plus the exit conditions.

Before / after:

Release v1.5.0 — 1 artifact(s)      Release v1.5.0 — 7 artifact(s)
  verified 1                          draft 6, verified 1
✓ Cuttable                          ✗ NOT cuttable — 6 not yet verified

Three things pinned now because they are easy to get wrong later

  • Slice 2 must keep div_s/rem_s asymmetric — div_s(INT_MIN,-1) traps, rem_s(INT_MIN,-1) is 0 — and must reject trap introduction as well as trap removal. A one-directional check accepts half the bug class.
  • Slice 6 must prove the non-singleton valueSet path is reachable, not merely present, and must resolve Investigate: verify.rs opaque-float shared const name may unify distinct float ops (verifier soundness) #283 rather than transcribe it.
  • The exit artifact is what makes the retirement checkable instead of declared, and it is not startable until both mode is clean.

Each artifact carries acceptance criteria written as assertions that must fail if the capability is removed, per #289.

No code changes. Scope only. rivet validate → PASS.

Refs #313, #283, #289, #300, #311, #332

…it (#313)

`rivet release status v1.5.0` reported "✓ Cuttable" while the release
contained exactly ONE artifact — Tier-2 slice 1. The gate was not wrong
about that artifact; it was reading green because the scope was almost
empty, and a release gate that passes on an empty scope is
indistinguishable from one that passes on a finished release.

That is the same defect class this repository has now found five times in
the code — a trap gate with 19 passing tests and zero callers (#288), a
premise hook with no producers (#323), a pin defended only by a comment
(#318), a proof that had never run, and `loom verify` printing a
checkmark without opening the file (#332). Each time the artifact existed,
was tested, and looked maintained, and nothing reached it. This is the
first instance found at the REQUIREMENTS layer rather than in the code.

Records the remaining #313 scope as six `draft` artifacts — Tier-2 slices
2 through 6 plus the exit conditions — so the gate reports what is
actually outstanding:

    Release v1.5.0 — 7 artifact(s)
      draft 6, verified 1
    ✗ NOT cuttable — 6 artifact(s) not yet verified.

Each carries its acceptance criteria up front, written as the assertions
that must FAIL if the capability is removed, per #289. Three that would
otherwise be easy to get wrong later are pinned now:

  - slice 2 must keep div_s/rem_s asymmetric — div_s(INT_MIN,-1) traps,
    rem_s(INT_MIN,-1) is 0 — and must reject trap INTRODUCTION as well as
    trap removal; a one-directional check accepts half the bug class.
  - slice 6 must prove the non-singleton `valueSet` path is REACHABLE, not
    merely present, and must RESOLVE #283 rather than transcribe it.
  - the exit artifact is what makes the retirement checkable instead of
    declared, and it is not startable until `both` mode is clean.

No code changes. Scope only.

Refs #313, #283, #289, #300, #311, #332

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RZof1M5HMBSYVZPeoT4MEn
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