Skip to content

docs: WO28 #16 block-scoping item; wordfreq friction ledger #16 - #31

Merged
undergroundrap merged 1 commit into
mainfrom
wip/wo28-16-block-scoping
Sep 24, 2026
Merged

undergroundrap merged 1 commit into
mainfrom
wip/wo28-16-block-scoping

Conversation

@undergroundrap

Copy link
Copy Markdown
Owner

WO28 #13 review probes (Claude) found a pre-existing soundness gap: the resolver treats if-blocks and for-each headers as scopes (H0601 after block close), but the full-type-check statement environment is flat per task and the runtime leaks if-block lets. Observed wrong acceptance (checker) and wrong-value execution (runtime) on a let/if/return probe; the for-each binder behaves identically to existing block-scoped lets, so #13 stands.

This PR carries exactly two changes:

Local gates: git diff --check, tools/check_text_hygiene.ps1 (622 files), tools/check_public_readiness.ps1 (622 files) — all pass. No check_all.ps1 change, so no policy-pin run required.

Ocean merges.

WO28 #13 review probes found a pre-existing soundness gap: the resolver
treats if-blocks and for-each headers as scopes (H0601 after block close),
but the full-type-check environment is flat per task and the runtime leaks
if-block lets. Observed wrong acceptance (checker) and wrong-value
execution (runtime) on a let/if/return probe; the for-each binder behaves
identically to existing block-scoped lets, so #13 stands. New correctness
item #16 ordered after #15, before #7; ledger entry #16 records the probe
evidence.
@undergroundrap
undergroundrap merged commit e4c44d0 into main Sep 24, 2026
4 checks passed
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