Skip to content

Promote FEAT-066; file FEAT-094 so its deferred half isn't deleted - #191

Merged
avrabe merged 1 commit into
mainfrom
feat-066-promote-and-track-verify
Aug 28, 2026
Merged

Promote FEAT-066; file FEAT-094 so its deferred half isn't deleted#191
avrabe merged 1 commit into
mainfrom
feat-066-promote-and-track-verify

Conversation

@avrabe

@avrabe avrabe commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

FEAT-066 → accepted. Merged in #190 with 13/13 green; 10 tests re-run on main,
gate-coverage reports 13 publishable crates in both gates. AC2's structural guarantee
was mutation-verified independently — appending a third tool object turns it red with
["analyze", "query", "verify"].

But promoting it alone would have deleted work from the plan

FEAT-066's title promises analyze / query / verify. Its description defers
verify to v3.4.0. And nothing carried the deferred half — grepping every artifact
for MCP returns FEAT-066 and nothing else.

Mark it accepted and the verify tool stops existing anywhere in the plan.

That's #157/#160 inverted. There, an implementation existed with no artifact and
resurfaced as a surprise. Here, a plan item would quietly evaporate on promotion — same
gap, opposite direction, and neither is something rivet validate can see.

So FEAT-094 is filed first, in v3.4.0, depends-on REQ-021.

Its deferral is measured, not cautious

REQ-021 measured discharged = 0 on every real commit pair, the gate failing on all
of them, ~47% uncertain, and discharged unreachable by construction on a stripped
module.

An always-uncertain verdict in an agent's tool loop is worse than an absent tool: an
absent tool is a fact an agent plans around; a useless one is noise it must learn to
ignore.

The AC worth keeping

FEAT-094 AC3: when verify is eventually added, FEAT-066's AC2 test must be
updated, not deleted — the structural guarantee moves from "verify is absent" to
"verify is present and its verdict set is complete".

A guard removed is a guard that stops being checked.

And if REQ-021 proves unreachable, the honest outcome is to close FEAT-094 and say
scry adjudicates for humans and not for an agent loop. That would be a real finding, not
a failure.

v3.3.0: accepted 7 / proposed 3
v3.4.0: accepted 9 / proposed 3

rivet=0 claim-check=0 fmt=0 drift-gate=0 gate-coverage=0

🤖 Generated with Claude Code

https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc

FEAT-066 -> accepted. Merged in #190 with 13/13 CI green; its 10 tests re-run on
main, gate-coverage reports 13 publishable crates in BOTH gates. Both ACs met,
and AC2's structural guarantee was mutation-verified independently: appending a
third tool object turns it red with ["analyze", "query", "verify"].

BUT PROMOTING IT ALONE WOULD HAVE DELETED WORK FROM THE PLAN. FEAT-066's title
promises `analyze / query / verify`; its description defers `verify` to v3.4.0;
and NOTHING carried the deferred half -- grepping every artifact for MCP returns
FEAT-066 and nothing else. Mark it accepted and the verify tool stops existing
anywhere in the plan. That is exactly scry#157/#160: an implementation with no
artifact, invisible to the release plan, resurfacing later as a surprise. Here it
would have been the inverse -- a plan item quietly evaporating on promotion.

So FEAT-094 is filed first, in v3.4.0, `depends-on REQ-021`.

Its deferral is measured, not cautious: REQ-021 measured `discharged` = 0 on
every real commit pair, gate failing on all of them, ~47% uncertain, and
`discharged` unreachable by construction on a stripped module. An always-
uncertain verdict in an agent's tool loop is worse than an absent tool -- an
absent tool is a fact an agent plans around; a useless one is noise it must
learn to ignore.

FEAT-094's AC3 is the part worth keeping: when `verify` is eventually added,
FEAT-066's AC2 test must be UPDATED, not deleted. The structural guarantee moves
from "verify is absent" to "verify is present and its verdict set is complete".
A guard removed is a guard that stops being checked.

v3.3.0 accepted 7/proposed 3; v3.4.0 accepted 9/proposed 3.

rivet=0 claim-check=0 fmt=0 drift-gate=0 gate-coverage=0.

Claude-Session: https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

📐 rivet artifact delta

PR: #191 Base SHA: 8c5ddac0

Validation

head — `rivet validate` result
  SR-11 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-12 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-13 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-2 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-3 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-4 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-5 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-6 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-7 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-8 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-9 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SYS-1 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-2 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-3 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-4 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-5 (system-req, status: accepted) — missing: sys-integration-verification
  → run `rivet validate --explain SR-1` to see which link type and source types satisfy a gap

Result: PASS (174 warnings)
Schemas: common@0.3.0 (embedded), dev@0.3.0 (embedded), research@0.1.0 (embedded), research-ext@0.1.0 (on-disk), safety-case@0.1.0 (embedded), aspice@0.2.0 (embedded)
base — `rivet validate` result (for comparison)
  SR-11 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-12 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-13 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-2 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-3 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-4 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-5 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-6 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-7 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-8 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SR-9 (sw-req, status: accepted) — missing: sw-integration-verification, unit-verification
  SYS-1 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-2 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-3 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-4 (system-req, status: accepted) — missing: sys-integration-verification
  SYS-5 (system-req, status: accepted) — missing: sys-integration-verification
  → run `rivet validate --explain SR-1` to see which link type and source types satisfy a gap

Result: PASS (171 warnings)
Schemas: common@0.3.0 (embedded), dev@0.3.0 (embedded), research@0.1.0 (embedded), research-ext@0.1.0 (on-disk), safety-case@0.1.0 (embedded), aspice@0.2.0 (embedded)

Artifact stats

base head
Total artifacts 263 264
full stats — head
Artifact summary:
  academic-reference               24
  competitive-analysis             11
  design-decision                  22
  feature                          94
  market-finding                    7
  requirement                      21
  safety-context                    3
  safety-goal                       5
  safety-justification              4
  safety-solution                   6
  safety-strategy                   1
  stakeholder-req                   3
  sw-req                           13
  sw-verification                  13
  sys-verification                  5
  system-req                        5
  technology-evaluation            12
  verification                     15
  TOTAL                           264

Orphan artifacts (no links): 12
  CA-001
  CA-002
  CA-003
  CA-004
  CA-005
  CA-006
  CA-007
  CA-008
  CA-009
  CA-010
  CA-011
  FEAT-078

Diagnostics: 0 error(s), 174 warning(s), 27 info(s)

Diff (base → head)

+ FEAT-094  v3.4 — Expose `verify` over MCP, once a verdict is worth acting on
~ FEAT-066
  status: - proposed -> + accepted

1 added, 0 removed, 1 modified, 262 unchanged

~ NEW    WARN: [FEAT-094] prose mentions 'FEAT-066' but no typed link to it; add a link in `links:` or remove the mention
~ NEW    WARN: [FEAT-094] prose mentions 'FEAT-065' but no typed link to it; add a link in `links:` or remove the mention
~ NEW    WARN: [FEAT-094] prose mentions 'DD-022' but no typed link to it; add a link in `links:` or remove the mention
0 new errors, 0 resolved errors, 3 new warnings, 0 resolved warnings

AADL model — head

spar/scry.aadl: OK

Posted by the rivet-delta workflow. Informational only — does not gate the PR.

@avrabe
avrabe merged commit 72a6065 into main Aug 28, 2026
13 checks passed
@avrabe
avrabe deleted the feat-066-promote-and-track-verify branch August 28, 2026 01:22
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