Skip to content

maps(S395): wrap-6c refresh 2ec2ce3a → ad7b65dc — and three premises in my own brief were wrong - #817

Merged
bryanmaclee merged 1 commit into
mainfrom
maps/s395-wrap-6c
Sep 2, 2026
Merged

maps(S395): wrap-6c refresh 2ec2ce3a → ad7b65dc — and three premises in my own brief were wrong#817
bryanmaclee merged 1 commit into
mainfrom
maps/s395-wrap-6c

Conversation

@bryanmaclee

Copy link
Copy Markdown
Owner

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 2ec2ce3aad7b65dc. 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 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:

# I wrote Actual
1 compiler/src/codegen/ast-if-chain.js compiler/src/ast-if-chain.js — src root; that path does not exist
2 #811 extracted the helper #805 (aea652c7) created it; #811 closed ten more walks onto it
3 "ten walks" ≈ the consumer count "ten walks" is #811's delta, not the consumer count

The 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:10642 is a deliberately TOTAL Object.keys walk that already reaches branches[].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 the let-decl/const-decl dispatch through node.ifExprnot 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 — 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.
  • 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, same class as the locus error above: known-gaps.md 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.

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.

🤖 Generated with Claude Code

https://claude.ai/code/session_019eHiNS6uvnGPFz55fzinNJ

…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
bryanmaclee merged commit 5e1d40f into main Sep 2, 2026
2 of 3 checks passed
@bryanmaclee
bryanmaclee deleted the maps/s395-wrap-6c branch September 2, 2026 12:24
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.
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