scry#195: resolve all three release-ordering inversions — v3.3.0 is cuttable - #204
Merged
Conversation
…uttable Decision taken on scry#195. The plan is moved to match what the work discovered, rather than the work being held to a plan that the work falsified. FEAT-064 v3.3.0 -> v3.4.0 FEAT-077 and FEAT-087, the repairs that REQ-020 v3.3.0 -> v3.4.0 make them satisfiable, ALREADY SHIPPED there FEAT-069 v3.3.0 -> v3.5.0 beside FEAT-095, its measured blocker v3.3.0 is now 7 accepted / 0 proposed and CUTTABLE. What it ships is a coherent release rather than a remainder: scry-mcp tools, query filters, guidance.json, br_if guard refinement, the capability manifest, the obligation delta view, and the self-adjudication harness — agent- consumable scry. FEAT-069 was the worst of the three and worse than scry#195 first recorded. FEAT-064's blockers had already shipped; FEAT-069's blocker (FEAT-095) is UNBUILT and scheduled two releases later, so v3.3.0 was waiting on work that had not started. DONE IN THE ORDER THAT PROVES THE ALLOWLIST WAS LOAD-BEARING. First the three KNOWN entries were removed with the releases UNCHANGED: the gate failed on all three real inversions. Only then were the artifacts moved, after which it passes with an EMPTY allowlist. Emptying it is therefore the record that the condition is gone, not a suppression — the gate fails on a stale entry precisely so that this sequence means something. Also realigned two titles that would otherwise have become the drift this session keeps finding: FEAT-064 and FEAT-069 still read "v3.3 —" while living in v3.4.0/v3.5.0. Checked every artifact for the same mismatch; 0 remain. MOVING FEAT-064 DOES NOT MAKE IT SATISFIABLE. Its AC1 is falsified in practice (43-45% identity churn, scry#123) and still needs re-measuring against the FEAT-077/087 repairs. The move removes an ORDERING problem, not a verification one, and v3.4.0 is not cuttable either. ONE PROPERTY IS LOST AND IT IS WORTH STATING. With KNOWN empty, the allowlist no longer doubles as a live regression test of the detection logic against real artifacts — the property that made inverting the comparison operator turn the gate red. The 13-case synthetic self-test still covers it, including stale-entry detection, but the live-data check is gone until some future inversion is recorded. That is a real, if minor, cost of resolving them. NOT CUTTING THE TAG. v3.3.0 being cuttable is a fact about the board, not authorisation to publish; that pause is the user's call. Refs: FEAT-096 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc
📐 rivet artifact deltaPR: #204 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.
Decision taken on #195. The plan moves to match what the work discovered, rather than the work being held to a plan the work falsified.
v3.3.0 is now 7 accepted / 0 proposed — cuttable
And what it ships is a coherent release rather than a remainder:
That is agent-consumable scry.
FEAT-069 was worse than #195 first recorded
FEAT-064's blockers had already shipped. FEAT-069's blocker (FEAT-095) is unbuilt and scheduled two releases later — so v3.3.0 was waiting on work that had not started. That asymmetry is why all three moved rather than just the identity pair.
Done in the order that proves the allowlist was load-bearing
KNOWNentries with the releases unchanged → gate failed on all three real inversions.Emptying it is therefore the record that the condition is gone, not a suppression. The gate fails on a stale entry precisely so this sequence means something.
Also fixed: drift I would otherwise have introduced
FEAT-064 and FEAT-069 still read
"v3.3 — …"in their titles while living in v3.4.0/v3.5.0. Realigned, then checked every artifact for the same mismatch — 0 remain.What this does not do
Moving FEAT-064 does not make it satisfiable. Its AC1 is falsified in practice (43–45% identity churn, #123) and still needs re-measuring against the FEAT-077/087 repairs. This removes an ordering problem, not a verification one — and v3.4.0 is not cuttable either (6 proposed).
One property is lost, and it is worth stating
With
KNOWNempty, the allowlist no longer doubles as a live regression test of the detection logic against real artifacts — the property that made inverting the comparison operator turn the gate red. The 13-case synthetic self-test still covers it, including stale-entry detection, but the live-data check is gone until some future inversion is recorded. A real, if minor, cost of resolving them.Not cutting the tag
v3.3.0 being cuttable is a fact about the board, not authorisation to publish.
Closes #195. Refs: FEAT-096
🤖 Generated with Claude Code
https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc