Promote FEAT-066; file FEAT-094 so its deferred half isn't deleted - #191
Merged
Conversation
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>
📐 rivet artifact deltaPR: #191 Base SHA: Validationhead — `rivet validate` resultbase — `rivet validate` result (for comparison)Artifact stats
full stats — headDiff (base → head)AADL model — headPosted by the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FEAT-066 →
accepted. Merged in #190 with 13/13 green; 10 tests re-run onmain,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 defersverifyto v3.4.0. And nothing carried the deferred half — grepping every artifactfor MCP returns FEAT-066 and nothing else.
Mark it
acceptedand 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 validatecan 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 allof them, ~47%
uncertain, anddischargedunreachable by construction on a strippedmodule.
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
verifyis eventually added, FEAT-066's AC2 test must beupdated, 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.
rivet=0 claim-check=0 fmt=0 drift-gate=0 gate-coverage=0🤖 Generated with Claude Code
https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc