maps(S395): wrap-6c refresh 2ec2ce3a → ad7b65dc — and three premises in my own brief were wrong - #817
Merged
Merged
Conversation
…n my own brief were wrong The overdue wrap-6c refresh. S393 skipped 6c for context, and scheduled nav-map regeneration was REMOVED from CI at S310 (a ruled cost decision — cloud-maps.yml:58), so the PA is the only thing that refreshes these. They had been 25 commits stale across every dispatch this session, each of which had to carry a "treat map claims as hypotheses" caveat. WATERMARK VERIFIED, NOT ASSUMED. All 13 files 2ec2ce3 -> ad7b65d. The instrument that actually parses line 3 read `maps: 25 commits behind HEAD` before and `maps: current` after — that, not the file content, is the check that matters, because this step has crashed post-write before and left the stamp stale. THREE PREMISES IN MY DISPATCH BRIEF WERE WRONG. All three PA-re-verified by execution rather than taken on report: 1. PATH — `ast-if-chain.js` lives at `compiler/src/ast-if-chain.js`, src ROOT. My brief said `compiler/src/codegen/`; that file does not exist there. codegen/ consumers import "../ast-if-chain.js". 2. ATTRIBUTION — #805 (aea652c) CREATED the helper; #811 closed ten more walks onto it and touched neither the helper nor emit-each/emit-match. I credited #811 with the extraction. 3. COUNT — "ten walks" is #811's delta, not the consumer count. The live if-chain dispatch was sent the corrections mid-flight, including one the refresh surfaced that my brief had MISSED and that matters more than the other three: symbol-table.ts:10642 is a deliberately TOTAL Object.keys walk that already reaches branches[].element — routing it through the shared enumerator would NARROW a correct site. It looks like an unclosed member of the class and is not one. THE ROUTING CORRECTION FROM THIS SESSION IS LANDED. New Task-Shape Routing row + invariant 84: an if-as-expression at a BINDING SITE is lowered in emit-logic.ts, reached via the let-decl/const-decl dispatch through node.ifExpr — NOT in the three emitters the gap entry's `locus=searched:` named. Invariant 83 carries the §18.5-vs-§17.6.1 split (shared leaf predicate, deliberately unshared shape rule). NON-COMPLIANCE HEADLINE — the scan POPULATION, not the docs. docs/audits/ (20 docs, 2.0 MB) has never been in any scan population across 13 passes; two self-declare superseded and still sit live, and one cites SPEC at 27,945 lines against 37,647, so its section anchors anchor nothing. Five more zero-coverage doc dirs, one of them a prior maps-agent's own follow-up (103 dispositions proposed, never executed; docs/changes/ has since grown to 713 dirs). ⚑ N14, and it is the same class as the locus error above: known-gaps cites collapseIfChains at ast-builder.js:18885. PA-verified — that line is `let i = 0;`; the function is at :18871. ast-builder.js is byte-identical since the watermark the entry itself names, so the citation was wrong AT its own watermark. A line number in a hand-maintained doc rots silently and nothing fails. One claim is labelled RELAYED-UNVERIFIED in all three maps rather than published as measured: `match` in a derived cell. The mapper's reproducer used an asIs subject and E-TYPE-025 fired before codegen, so it could not confirm it. Left honest rather than asserted.
bryanmaclee
added a commit
that referenced
this pull request
Sep 2, 2026
…and two instruments that failed their own tests (#819) GAPS. g-collect-functions-branch-decl-vs-server-boundary-routing -> RESOLVED via #818 (c4c55c5), PA-verified two-sided on MERGED main: body-in-client 0 with server.js produced and the body inside it; the plain-fn symptom goes 0 definitions / 2 bare calls -> 1 definition / 0 bare calls. THREE NEW ENTRIES. Two were verified PRE-EXISTING before filing, which is the point — neither is introduced by #818, and saying so is what keeps the next reader from "fixing" a regression that is not one: - g-same-named-branch-declarations-bind-to-the-last-definition (MED). Sibling branches declaring one name emit BOTH definitions and bind EVERY call to the last, silently. PA-verified pre-existing on the lone-if= oracle, so #818 brings the chain to parity with an already-defective oracle. Direction AT THIS SHAPE is loud->silent (base threw ReferenceError), which is why it is filed rather than shrugged at. No server body leaked in any duplicate-name shape tested. The scoping question underneath is the SAME one g-if-chain-all-arms-run-at-module-init asks — rule once, not twice. - g-call-expression-interpolation-in-if-chain-branch-renders-empty (MED). PA-verified on merged main with a TOP-LEVEL fn, i.e. outside the fix's surface. _scrml_boot does querySelector + _scrml_render_value BEFORE _scrml_nav_rewire(document) inserts the branch, so el is null and the render is a silent no-op. A CELL interpolation in the same position works — which is why the #811/#818 class sweeps missed it. It is an ORDERING defect, not a collection one. - g-types-check-baseline-never-refreshed-for-ast-if-chain (LOW). RELAYED, NOT PA-MEASURED, and the entry says so. Two independent agents concur on 9->10 TS7016, but tsc is absent from this checkout and types-gate.ts correctly refuses to fall back or skip — "a gate that passes without running is worse than no gate", its own words. So no unverified .d.ts was landed on someone else's number. Re-measure before acting. REVIEW FLOOR: markers for #817 and #818. ⛑ THE ARC'S DURABLE FINDING — three instruments were tested rather than trusted, and two FAILED. (1) The dev agent's first corpus differential reported 1021 files differing and it invalidated its own run: the base tree had been built by deleting `.git`, one of chunk-namespace.ts's PROJECT_ROOT_MARKERS, so every chunk token hashed an absolute path; re-run gives 0 of 7408. (2) Its security overlap sweep did NOT bite on this bug — the leak shape is body-in-client AND no server.js, so there is nothing to overlap — found by pointing it at a deliberately-leaking build, getting "clean", and writing a second source-anchored checker. (3) The leak guard was ABSENCE-ONLY: the base column satisfied it by making the function vanish, so "absent from the client" meant nothing until a POSITIVE limb required the body present on the SERVER. All three found by adversarial construction, none by inspection. master-list.md carries only the @generated recent-sessions regen. Minor drift noted, not chased: that block's own header says it is derived from the `wrap(s…)` commits, and it has just indexed a `maps(...)` one.
bryanmaclee
added a commit
that referenced
this pull request
Sep 3, 2026
…reen while wrong (#824) Ran concurrently with S396-peter throughout. Five rulings given, four code arcs landed, the review floor drained twice to zero, maps refreshed. ONE ARC HELD on a ruling, worktree retained. ⚑ THE SESSION'S REAL OUTPUT IS NOT THE LANDINGS. Nine separate checks read green or authoritative while being wrong, and every one was caught by RUNNING something rather than by remembering. Three were my own claims. TWO WERE CAUGHT BY GATES I DID NOT WRITE. Three were agents' own instruments, found by those agents. RULINGS · the trailing-`else` question — direction stands, and the reported "inverted ruling" was MY OWN mis-description: §17.6.4 has always said a missing `else` is valid. I relayed a hand-off's framing into the boot report without opening the section. · the `~` arm-body question — limb (a) ratified, limb (c) BANKED as dpa-040, not closed. · 2a / 2b / 2c — the runAnchored fix (sequenced), the dev-root auth gate (limb b), and the tracking-job sequence with its first step folded in. · SPLIT the dev-auth arc when its §52.13 half turned out to require a second decider. LANDED #815 the §17.6.2 value-form sugar binds its result at a binding site — it bound null forever. #818 a branch-declared function is ROUTED before it is COLLECTED; closing the client half alone put a `server fn` BODY into client.js. #822 18 conformance assertions read as coverage and checked nothing. ⚑ MY BRIEF WAS WRONG — a naive `continue` deletion would have reddened 62 count:0 ABSENCE assertions — and the agent deviated with a stated reason. Only 2 of the 18 were covered elsewhere; 16 were entirely unguarded. #823 `scrml dev` served a protected document unauthenticated at `/`. The fix is a DELETION: two serving paths become one. #816 #819 #820 continuity + filings; #817 the overdue wrap-6c maps refresh, which corrected three premises in my own concurrently-dispatched brief. ⚑ HELD, NOT LANDED — the `~` build, worktree RETAINED at agent-ac264a1015c0da19d @ c2ad6f49. Four fix rounds, four adversarial passes, 7 SPEC loci reconciled. Blocked on bryan's revert-vs-press-on for the READ half, whose widening PA-verifiably DELETES A DOM LIFT (base emits _scrml_lift/createTextNode, the branch pushes into a dead array, exit 0). Resume the agent; do not re-dispatch. FINDINGS WORTH CARRYING · SUPPRESSING A SIGNAL SUPPRESSES WHATEVER RODE ON IT — three instances, one of them my own instruction. The `tracking` job's routine red concealed a REAL §52.13 assertion failing on Linux (compiler/tests/commands/ runs in NO blocking job on any platform). A knowingly-red assertion placed FIRST in a test turned the four after it into dead code that still read as coverage. And I instructed `test.failing` on that test — which passes when the body fails for ANY reason, so it would have MASKED A LEAK. The agent's formulation is the keeper: a mechanism that makes a red acceptable also makes a red invisible. · A FIX THAT NEEDS A SECOND DECIDER IS THE FORK RULE SAYING NO. Three rounds found three distinct divergences between the dev pre-gate and the resolution loop; the split then CLOSED a dev/prod divergence rather than opening one. · A REVIEW FINDING WAS FALSIFIED RATHER THAN FILED — the first time this session verification prevented a FABRICATED finding instead of catching a missed one. The corpus IS gated; corpus-bridge.test.js reaches it from inside the gated root. · TWO SHARED-DOC CONCURRENCY HAZARDS, both caught by machinery: conflicting @generated gap counts (resolved by regenerating from the merged population — the union, not a pick), and duplicate delta-log sequence numbers with peter (caught by the cloud gate's step 14; a duplicate makes the flogence bridge DROP the second entry from the digest). · BASE-DRIFT nearly reverted landed work FOUR times. · EVERY ONE of the five agent deviations from my instructions this session was correct. WRAP STEPS: hand-off rewritten (S396-peter's rotated to handOffs/hand-off-282.md, his live items carried) · changelog block · delta-log [2040]-[2045], sequence gate PASS · review floor 6 OWED -> 0 · inbox: TWO items deliberately left unarchived because both await bryan (the E-ROUTE-004 fork and the ~11-day-old FSP Initialize deliberation), both summarised in the hand-off · suite 30945 pass / 54 fail — ONE FEWER than base, the §52.13 assertion · worktrees: four landed swept, one retained · maps refreshed to 2d8dd8c, watermark verified via state.ts not by reading the file · @generated + facts gates PASS.
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.
Maps-only (
.claude/maps/, 13 files). The overdue wrap step 6c refresh.S393 skipped 6c for context, and scheduled nav-map regeneration was removed from CI at S310 (a ruled cost decision —
cloud-maps.yml:58), so the PA is the only thing that refreshes these. They were 25 commits stale across every dispatch this session, each of which had to carry a "treat map claims as hypotheses" caveat.Watermark verified, not assumed
All 13 files
2ec2ce3a→ad7b65dc. The instrument that actually parses line 3 readmaps: 25 commits behind HEADbefore andmaps: currentafter — that, not the file content, is the check that matters, because this step has crashed post-write before and left the stamp stale while the file looked written.Three premises in my own dispatch brief were wrong
All three re-verified by execution rather than taken on the agent's report:
compiler/src/codegen/ast-if-chain.jscompiler/src/ast-if-chain.js— src root; that path does not existaea652c7) created it; #811 closed ten more walks onto itThe live if-chain dispatch was sent these mid-flight — plus one the refresh surfaced that my brief had missed and that matters more than the other three:
symbol-table.ts:10642is a deliberately TOTALObject.keyswalk that already reachesbranches[].element. Routing it through the shared enumerator would narrow a currently-correct site. It looks like an unclosed member of the class and is not one.The routing correction from this session is landed
New Task-Shape Routing row + invariant 84: an if-as-expression at a binding site is lowered in
emit-logic.ts, reached via thelet-decl/const-decldispatch throughnode.ifExpr— not in the three emitters the gap entry'slocus=searched:named. Invariant 83 carries the §18.5-vs-§17.6.1 split (shared leaf predicate, deliberately unshared shape rule).Non-compliance — the headline is the scan population, not the docs
docs/audits/(20 docs, 2.0 MB) has never been in any scan population across 13 passes. Two self-declare superseded and still sit live; one cites SPEC at 27,945 lines against 37,647, so its section anchors anchor nothing.docs/changes/has since grown to 713 dirs).known-gaps.mdcitescollapseIfChainsatast-builder.js:18885. PA-verified — that line islet i = 0;; the function is at:18871.ast-builder.jsis byte-identical since the watermark the entry itself names, so the citation was wrong at its own watermark.One claim is labelled RELAYED-UNVERIFIED in all three maps rather than published as measured:
matchin a derived cell. The mapper's reproducer used anasIssubject andE-TYPE-025fired before codegen, so it could not confirm it. Left honest rather than asserted.🤖 Generated with Claude Code
https://claude.ai/code/session_019eHiNS6uvnGPFz55fzinNJ