@@ -111,3 +111,47 @@ move the dangle. Left as-is so the gap stays visible:
111111* `docs/academic/README.adoc` → `white-papers/type-system.md`,
112112 `white-papers/effect-system.md`
113113* `docs/alib/README.adoc` → `../specs/affinescript-spec.md`
114+
115+ == Soundness survey correction (2026-06-16) — canonical CLAUDE.md is STALE
116+
117+ The `.claude/CLAUDE.md` "Known soundness items (2026-06-11 survey)" section
118+ (and the disambiguation-table Proofs cell) are STALE. Ground-truthed below by
119+ running the build + full test suite (528 tests green). The canonical survey
120+ was NOT edited in place: `.claude/CLAUDE.md` carries no SPDX/owner header, so
121+ committing an edit trips the strict pre-commit hook, and adding a licence
122+ header to it is an owner-only decision. Owner to fold these corrections into
123+ CLAUDE.md manually (with the header) when convenient.
124+
125+ [cols="1,3",options="header"]
126+ |===
127+ | Item | Corrected status (2026-06-16)
128+
129+ | **#554** | FIXED. Use-after-move through a callee-returned borrow is now
130+ REJECTED (`MoveWhileBorrowed`); aggregate / ref-reassign / match-tail
131+ hardening + anti-over-rejection cases asserted
132+ (`test_borrow_callee_returned_borrow_*`). #177 closed. issue-draft 08
133+ (conditional-origin escape) also FIXED. (Survey still says "this hole
134+ remains" — wrong.)
135+ | **#553 / Polonius** | M1–M3 implemented, NOT "0% implemented". Loan-vs-loan
136+ exclusivity now modeled (allowlist 7 divergences: return-escape ×4,
137+ captured-linear ×2, call-aliasing ×1). Still TEST-ONLY / unwired — gates no
138+ production verdict.
139+ | **#555** | Codegen FENCED on every reachable backend (WASM, WasmGC,
140+ Deno-ESM, JS-text, C) — no more silent arm-drop. Interp: tail-resume
141+ correct, multi-shot loud-fails, non-tail single-shot still silently returns
142+ the resumed value (residual; needs delimited continuations — blocked on
143+ OCaml 4.14 / js_of_ocaml). Runtime handler tests now exist. (Survey says
144+ "zero runtime handler tests exist" — wrong.)
145+ | **#556** | FIXED. Async CPS table-miss fails loud, not silent sync fallback.
146+ | **#558** | N/A (closed). Refinement & dependent types removed in v1
147+ (2026-04-10); `assume(...)` rejected, `T where (P)` parse-errors — no
148+ silent-unenforcement path. (Survey says "parsed but silently not enforced"
149+ — no longer applicable.)
150+ | **#559** | FIXED (concrete overlaps). Trait coherence implemented + wired in
151+ `check_program`; overlapping impls whose self types unify are rejected.
152+ Follow-up: generic-subsumption overlap.
153+ |===
154+
155+ Session commits (signed, branch `feat/solo-core-metatheory-proofs`,
156+ unpushed): `bc061ad` (#555 C fence), `2b3f63c` (#559 coherence),
157+ `3a531e1` (M3 loan-vs-loan).
0 commit comments