Friction
Doing release planning on synth (assign requirements to releases, query readiness as "which artifacts in release: vX.Y are not yet verified"), I expected a first-class release: attribute on artifacts — the status lifecycle (draft → … → verified → accepted) implies a release-planning workflow, but there is nothing to scope an artifact to a release:
rivet schema show sw-req (rivet 0.15.0): fields are req-type / priority / verification-criteria — no release.
rivet list filters by --type / --status / --filter s-expression — no release dimension.
Workaround used
Tag convention: release-v0.11.35 etc. in tags:, queried via
rivet list --filter '(has-tag "release-v0.11.35")'
It works, but it's stringly-typed: no validation that the release exists, no burn-down view (rivet release status v0.11.35 → N verified / M total), no "unassigned = backlog" semantics, and scope moves (re-targeting an artifact to a later release) are invisible diff noise rather than a logged scope decision.
What would close the gap
- A core optional
release: field on all artifact types (like status), plus rivet list --release vX.Y.
- A readiness query:
rivet release status vX.Y → per-status counts + the not-yet-verified set (the release is cuttable when zero).
- (Nice)
rivet release move <id> vX.Z that logs the scope change.
Context: synth release planning, rivet 0.15.0 (f66362b). Related friction: #510 (standards presets). Filed via report-tool-friction.
Friction
Doing release planning on synth (assign requirements to releases, query readiness as "which artifacts in
release: vX.Yare not yetverified"), I expected a first-classrelease:attribute on artifacts — the status lifecycle (draft → … → verified → accepted) implies a release-planning workflow, but there is nothing to scope an artifact to a release:rivet schema show sw-req(rivet 0.15.0): fields arereq-type/priority/verification-criteria— norelease.rivet listfilters by--type/--status/--filters-expression — no release dimension.Workaround used
Tag convention:
release-v0.11.35etc. intags:, queried viaIt works, but it's stringly-typed: no validation that the release exists, no burn-down view (
rivet release status v0.11.35→ N verified / M total), no "unassigned = backlog" semantics, and scope moves (re-targeting an artifact to a later release) are invisible diff noise rather than a logged scope decision.What would close the gap
release:field on all artifact types (likestatus), plusrivet list --release vX.Y.rivet release status vX.Y→ per-status counts + the not-yet-verified set (the release is cuttable when zero).rivet release move <id> vX.Zthat logs the scope change.Context: synth release planning, rivet 0.15.0 (f66362b). Related friction: #510 (standards presets). Filed via report-tool-friction.