docs: WO28 #16 block-scoping item; wordfreq friction ledger #16 - #31
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
docs/research/wordfreq-friction-ledger.md: new entry fix: prevent PID-reuse flake in capture survival checks #16 with the corrected probe evidence.workorders/active/WORKORDER_28.md: new correctness item fix: prevent PID-reuse flake in capture survival checks #16, ordered after feat: implement decision 0022 text escapes (WO27 Part 1b) #15, before fix(ci): isolate policy scope and verify integration base from merge parents #7 (mission, scope, acceptance criteria, deliverables updated).Local gates:
git diff --check,tools/check_text_hygiene.ps1(622 files),tools/check_public_readiness.ps1(622 files) — all pass. Nocheck_all.ps1change, so no policy-pin run required.Ocean merges.