Skip to content

docs: claim-verification pass — fix v0.1.0 status drift (#97) + gate it - #112

Merged
avrabe merged 1 commit into
mainfrom
docs-claim-verification
Jul 16, 2026
Merged

docs: claim-verification pass — fix v0.1.0 status drift (#97) + gate it#112
avrabe merged 1 commit into
mainfrom
docs-claim-verification

Conversation

@avrabe

@avrabe avrabe commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Closes #97. A README is a claim about the system — the same species as a requirement — and it rots for the same reason: no gate. This audits every load-bearing README/doc claim against live source and binds the survivors to a claim-check gate.

Fixed drift

Mark → bind → gate

  • claims.yaml binds 5 load-bearing claims to predicates re-derived from source (version↔Cargo.toml, 0 Admitted/admit/Axiom across proofs/rocq/*.v, 12 scry-sai-* in publish.rs, WrapAdd.v exists, the scoped-soundness wording) — never a typed number.
  • tools/claim-check.py (vendored) + a new count-min predicate I added: count-max greens a 0-match for a presence claim (the "oracle that measures nothing" — I hit it on the version claim and fixed it); count-min is the dual that catches drift-to-absent. Verified the gate bites both ways (version drift → red, stray admit → red).
  • CI claim-check job runs it on every push/PR — so the status can't silently rot ~40 versions again.

Re-derived: 19 .v proofs, 0 admits/axioms; 12 published crates. rivet validate PASS; claim-check 5/5 green.

🤖 Generated with Claude Code


Also closes #111 (same stale-status-block drift as #97; both surfaced by the doc-drift audit — this fixes the block to the actual current v3.2.4, past #111's v3.0.0 ask).

A README is a claim about the system, gated the same way as a requirement.
Audited every load-bearing README/doc claim against live source and bound the
survivors to a claim-check gate so they can't silently rot again.

Fixed drift (issue #97):
- README status said "v0.1.0 shipped … no real abstract-interpretation logic
  yet" while the crate is v3.2.4 with 12 published domains + 19 admit-free
  proofs. Rewrote it to the true v3.2.4 state, with soundness stated SCOPED
  (mechanized Rocq vs γ-sweep-validated), not flattened.
- architecture.md §6 + the feature-loop diagram still described "the v0.1
  scaffold" as current (analyze = constant_i32(42); "real fixpoint ⏳"; "pending
  v0.1.0 tag") — reframed to historical + the shipped reality.

Mark → bind → gate:
- claims.yaml binds 5 load-bearing claims to predicates RE-DERIVED FROM SOURCE
  (version vs Cargo.toml, 0 Admitted/admit/Axiom across proofs/rocq/*.v, 12
  scry-sai-* crates in publish.rs, WrapAdd.v exists, the scoped-soundness
  wording) — never a number typed in prose.
- tools/claim-check.py (vendored from the skill) + a NEW `count-min` predicate
  I added: count-max greens a 0-match (measures nothing) for a PRESENCE claim
  like the version string; count-min is the dual that catches drift-to-absent.
  Verified the gate bites: version drift → red, a stray admit → red.
- CI `claim-check` job runs it on every push/PR.

Re-derived counts confirming the honest claims: 19 .v proofs, 0 admits/axioms;
12 published scry-sai-* crates. rivet validate PASS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@avrabe
avrabe merged commit 582cfb0 into main Jul 16, 2026
10 checks passed
@avrabe
avrabe deleted the docs-claim-verification branch July 16, 2026 07:34
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.

docs: README status section is stale — says v0.1.0 / 'no real abstract-interpretation logic yet' while the crate is v3.1.0 with admit-free proofs

1 participant