Skip to content

FEAT-069 re-measured post-FEAT-089: unchanged, and the problem is not where it looked - #192

Merged
avrabe merged 1 commit into
mainfrom
feat069-remeasured-post-089
Aug 28, 2026
Merged

FEAT-069 re-measured post-FEAT-089: unchanged, and the problem is not where it looked#192
avrabe merged 1 commit into
mainfrom
feat069-remeasured-post-089

Conversation

@avrabe

@avrabe avrabe commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

FEAT-069's own note said its AC had to be re-measured after the precision work landed,
not before
. FEAT-089 has landed, so this discharges that.

The re-measurement: unchanged

OOB proven rate: 0.67%  ->  0.67%     (55 proven vs 8,162 unproven)

FEAT-089 targets div-by-zero disequalities and doesn't touch memory bounds. Precondition
discharged; the answer is no.

The follow-up is the useful part

Of the 8,162 unproven out-of-bounds obligations:

count share
in a degraded function (already carries a precision gap) 7,553 92.5%
in a cleanly-modelled function — scry reached the question and couldn't prove it 609 7.5%

Degrading causes: unmodeled-control-flow 1,639 · unsupported-op 623 ·
unmodeled-branch 12. 636 of 766 functions with advisories (83%) are degraded.

So the problem is not where "0.67% proven" points

The low rate is not mainly a weakness of the bounds reasoning. The analyzer gives up
on 83% of functions before the bounds question is reached. Strengthening the bounds
domain — the obvious reading of that number — could address at most 7.5% of the gap.

A low proven rate looks like a precision problem in the prover. Here it's a coverage
problem upstream of it, and the two call for opposite work.

What changes

FEAT-069 stays blocked, but on a different unblocker than previously named. The lever
is modelling if/else regions instead of havocking them — the dominant single cause at
1,639 — not a better interval argument. Re-measure after that, not after any other
precision work.

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

🤖 Generated with Claude Code

https://claude.ai/code/session_01KkNzkNYzPh7366DkNijeNc

… where it looked

This artifact's own note said the AC had to be re-measured after the precision
work landed, not before. FEAT-089 has landed, so: the OOB proven rate is
UNCHANGED at 0.67% (55 proven vs 8,162 unproven). FEAT-089 targets div-by-zero
disequalities and does not touch memory bounds. Precondition discharged, answer
is no.

The follow-up measurement is the useful part. Of the 8,162 unproven
out-of-bounds obligations:

  7,553 (92.5%) are in a DEGRADED function -- one already carrying a precision
        gap (unmodeled-control-flow 1,639, unsupported-op 623, unmodeled-branch
        12). 636 of 766 functions with advisories (83%) are degraded.
    609 (7.5%) are in a cleanly-modelled function, where scry actually reached
        the bounds question and could not prove it.

So the low proven rate is NOT mainly a weakness of the bounds reasoning. The
analyzer GIVES UP on 83% of functions before the bounds question is reached.
Strengthening the bounds domain -- the obvious reading of "0.67% proven" --
could address at most the 7.5%.

A low proven rate looks like a precision problem in the prover. Here it is a
COVERAGE problem upstream of it, and the two call for opposite work.

FEAT-069 stays blocked, but on a DIFFERENT unblocker than previously named: the
lever is modelling if/else regions instead of havocking them (the dominant
single cause at 1,639), not a better interval argument. Re-measure after that,
not after any other precision work.

rivet=0 claim-check=0 fmt=0 drift-gate=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: #192 Base SHA: 72a60656

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 (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)

Artifact stats

base head
Total artifacts 264 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-069
  description: changed

0 added, 0 removed, 1 modified, 263 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 ba9c337 into main Aug 28, 2026
13 checks passed
@avrabe
avrabe deleted the feat069-remeasured-post-089 branch August 28, 2026 02: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