Skip to content

scry#195: resolve all three release-ordering inversions — v3.3.0 is cuttable - #204

Merged
avrabe merged 1 commit into
mainfrom
rescope-v33-cuttable
Sep 3, 2026
Merged

scry#195: resolve all three release-ordering inversions — v3.3.0 is cuttable#204
avrabe merged 1 commit into
mainfrom
rescope-v33-cuttable

Conversation

@avrabe

@avrabe avrabe commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

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.

artifact move why
FEAT-064 v3.3.0 → v3.4.0 FEAT-077 + FEAT-087, the repairs that make it satisfiable, already shipped there
REQ-020 v3.3.0 → v3.4.0 follows FEAT-064
FEAT-069 v3.3.0 → v3.5.0 beside FEAT-095, its measured blocker

v3.3.0 is now 7 accepted / 0 proposed — cuttable

And what it ships is a coherent release rather than a remainder:

scry-mcp tools · query filters · guidance.json · br_if guard refinement · capability manifest · obligation delta view · self-adjudication harness

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

  1. Removed the three KNOWN entries with the releases unchanged → gate failed on all three real inversions.
  2. Then moved the artifacts → gate 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 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 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. 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

…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
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

📐 rivet artifact delta

PR: #204 Base SHA: bc9523ce

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 (190 warnings)
Schemas: common@0.3.0 (embedded), dev@0.3.0 (embedded), research@0.1.0 (embedded), research-ext@0.1.0 (on-disk), dev-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 (190 warnings)
Schemas: common@0.3.0 (embedded), dev@0.3.0 (embedded), research@0.1.0 (embedded), research-ext@0.1.0 (on-disk), dev-ext@0.1.0 (on-disk), safety-case@0.1.0 (embedded), aspice@0.2.0 (embedded)

Artifact stats

base head
Total artifacts 268 268
full stats — head
Artifact summary:
  academic-reference               24
  competitive-analysis             11
  design-decision                  22
  feature                          98
  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                           268

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), 190 warning(s), 14 info(s)

Diff (base → head)

~ FEAT-064
  title: - v3.3 — Stable obligation identity (survives the edit) -> + v3.4 — Stable obligation identity (survives the edit)
~ FEAT-069
  title: - v3.3 — safe-accesses.json: proven-safe sites for bounds-check elision -> + v3.5 — safe-accesses.json: proven-safe sites for bounds-check elision

0 added, 0 removed, 2 modified, 266 unchanged

AADL model — head

spar/scry.aadl: OK

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

@avrabe
avrabe merged commit 7fcb830 into main Sep 3, 2026
13 of 25 checks passed
@avrabe
avrabe deleted the rescope-v33-cuttable branch September 3, 2026 05:58
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.

Release rescoping decision: 5 of the 6 remaining v3.3/v3.4 blockers are not work

1 participant