Skip to content

plan(v0.35): cut what shipped, split the remainder - #866

Merged
avrabe merged 3 commits into
mainfrom
plan/v035-cut-and-split
Aug 27, 2026
Merged

plan(v0.35): cut what shipped, split the remainder#866
avrabe merged 3 commits into
mainfrom
plan/v035-cut-and-split

Conversation

@avrabe

@avrabe avrabe commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Maintainer decision: cut and split.

v0.35.0 keeps 12

3 verified — REQ-274/275/276, the customer UI trio.
9 implemented — REQ-299, 304, 305, 309, 310, 311, 312, 313, plus REQ-303
(held here while #864 is in flight).

Every issue a human reported this cycle is fixed in this set#848, #852,
#853, #854, #856. That's the release's identity.

Why implemented and not verified

Each carries a named undischarged clause — the --fail-under policy on REQ-309,
the git: fallback on REQ-312, release-status categories on REQ-313. Shipping
them isn't the same as claiming acceptance is complete.

Holding the release until every clause is discharged would recreate, at release
scope, exactly the deadlock REQ-313 exists to detect: a criterion that can
only be discharged by a release shipping.

v0.36.0 takes 4 — the cluster that keeps costing diagnosis

REQ-295 nested-workspace scan (Defect 1 already shipped in #830)
REQ-306 #807 Defect 2 — name-existence vs command-reachability
REQ-307 #812 residual — 52 flat top-level commands
REQ-314 27 test files resolve the binary at runtime; nextest + custom CARGO_TARGET_DIR can't find it

Backlog takes 9, in two groups

Not converging — REQ-281/282/285/286 date from Aug 4–7 and haven't moved
in three weeks, plus REQ-292, 296, 301. Three weeks of not being picked is
evidence they aren't next, not that they need another label.

Need a design decision before scheduling — REQ-300 (assisted authoring) and
REQ-308 (per-clause verification, which requires clauses to become addressable
— a schema migration across every artifact). Putting a version on those would
move the stall, not resolve it.

Status drift, fourth instance

REQ-304 and REQ-305 shipped in #863 earlier today and were still proposed.
REQ-299 (shipped 6b3be3c) and REQ-309 were corrected previously.

Shipping code and leaving the artifact behind is now a recurring failure of
mine, not an isolated slip. Worth a mechanical guard — a check that an artifact
named in a merged commit's trailers isn't still proposed would have caught all
four.

Verification

rivet validate exit 0 · rivet docs check exit 0 · YAML parses · 284
artifacts · no duplicate ids.

Maintainer approved "cut and split". v0.35.0 goes out with what is done; the
rest moves with a logged decision rather than silently.

v0.35.0 keeps 12 artifacts. Three verified (REQ-274/275/276, the customer UI
trio) and nine implemented: REQ-299, 304, 305, 309, 310, 311, 312, 313, plus
REQ-303 which is held here while its PR (#864) is in flight. Every issue a human
reported this cycle — #848, #852, #853, #854, #856 — is fixed in this set, which
is the release's identity.

The implemented ones stay `implemented` rather than being rounded up to
`verified`: each carries a named undischarged clause (the --fail-under policy on
REQ-309, the git: fallback on REQ-312, release-status categories on REQ-313).
Shipping them is not the same as claiming their acceptance is complete. Holding
the release until every clause is discharged would recreate, at release scope,
exactly the deadlock REQ-313 exists to detect: a criterion that can only be
discharged by a release shipping.

v0.36.0 takes 4 — the gate-potency and verification-evidence cluster that keeps
costing diagnosis mid-tick: REQ-295 (nested-workspace scan, Defect 1 already
shipped in #830), REQ-306 (#807 Defect 2, name-existence vs
command-reachability), REQ-307 (#812 residual, 52 flat top-level commands), and
REQ-314 (27 test files resolve the binary at runtime, so nextest with a custom
CARGO_TARGET_DIR cannot find it).

Backlog takes 9, in two groups. Older features that have not converged in three
weeks — REQ-281, 282, 285, 286 date from Aug 4-7, plus REQ-292, 296, 301 — and
two items that need a design decision before they can be scheduled at all:
REQ-300 (assisted authoring) and REQ-308 (per-clause verification, which needs
clauses to become addressable and is therefore a schema migration across every
artifact). Putting a version label on those would move the stall, not resolve it.

Also corrects the fourth instance of status drift this cycle: REQ-304 and
REQ-305 shipped in #863 earlier today and were still `proposed`. REQ-299
(shipped 6b3be3c) and REQ-309 were corrected previously. Shipping code and
leaving the artifact behind is now a recurring failure of mine, not an isolated
slip.

Confirmed with rivet validate (exit 0), rivet docs check (exit 0), YAML parses,
284 artifacts, no duplicate ids.

Refs: REQ-303, REQ-304, REQ-305, REQ-314
@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown

📐 Rivet artifact delta

Change Count
Added 1
Removed 0
Modified 3
Downstream impacted (depth ≤ 5) 0

Graph

graph LR
  REQ_303["REQ-303"]:::modified
  REQ_304["REQ-304"]:::modified
  REQ_305["REQ-305"]:::modified
  REQ_315["REQ-315"]:::added
  classDef added fill:#d4edda,stroke:#28a745,color:#155724
  classDef removed fill:#f8d7da,stroke:#dc3545,color:#721c24
  classDef modified fill:#fff3cd,stroke:#ffc107,color:#856404
  classDef overflow fill:#e2e3e5,stroke:#6c757d,color:#495057,stroke-dasharray: 3 3
Loading
Added
  • REQ-315
Modified
ID Changes
REQ-303
REQ-304
REQ-305

📎 Full HTML dashboard attached as workflow artifact rivet-delta-pr-866download from the workflow run.

Posted by rivet-delta workflow. The graph shows only changed artifacts; open the HTML dashboard (above) for full context.

avrabe added 2 commits August 27, 2026 18:54
…eps causing it

REQ-303 shipped in #864 and was still `proposed`. That is the fifth instance in
one release cycle — REQ-309 (#850), REQ-299 (6b3be3c), REQ-295 (#830), REQ-304
and REQ-305 (#863, found still proposed within the hour), and now REQ-303 — all
mine, all caught only by manual audit.

REQ-315 records the cause rather than the instances. A trailer is a LINK, not a
state transition: `rivet commits` checks that trailers reference real artifacts
and nothing checks the converse, that an artifact a merged commit claims to
implement is no longer sitting at `proposed`. Release readiness is defined as a
query over `release:` + `status`, so the effect is that shipped scope reads as
unshipped and a human has to re-derive the truth from git log — the same defect
class this tool exists to prevent, in its own artifacts.

The proposed check reports; it does not auto-advance. Whether shipped code
discharges every acceptance clause is a judgement (REQ-308), and a tool that
flipped status on the strength of a trailer would manufacture precisely the
false confidence REQ-308 is about.

Confirmed with rivet validate (exit 0), rivet docs check (exit 0), 285
artifacts, no duplicate ids.

Implements: REQ-303
Refs: REQ-308, REQ-315
@avrabe
avrabe merged commit fe18f29 into main Aug 27, 2026
33 checks passed
@avrabe
avrabe deleted the plan/v035-cut-and-split branch August 27, 2026 17:15
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