Session handover — 2026-07-18¶
A strategy session that ended with the corpus actually running. An independent structural evaluation (two blind reviews — deep-reasoner + Codex — plus two code fact-sweeps, synthesised in-session) surfaced the lane incoherence; Cathal resolved it same-day (CMS worker fleet is the sole ship lane); the corpus vehicle was scoped, built, positive-controlled and fed its first two blind sites before close. The emdash save-race repro was also finally filed upstream.
Where to look¶
- ADR-0013 (Proposed — promotion is Cathal's call; pointer notes into ADR-0003/0008/0009 + the CLAUDE.md line fix deliberately wait for acceptance, per its checklist). CMS fleet = sole ship lane; static assembler demoted to internal tooling (its launch-gated deferrals void); Slice 6 corpus re-specced to score the CMS render; self-service confirmed a product promise.
- scope-2026-07-18-cms-batch-runner
— the slice, Step-0 recipe (headless local tenant via
emdash seed -dagainst miniflare's sqlite), the three traps, the runbook. All done-criteria met except the EC2 re-run. scripts/run-cms-batch.mjs— the runner.calibration/corpus-hosts.txtseeded with 3 sites.- known-issues — NEW: the Wix mesh-generation
segmentation gap (first blind finding; prevalence is the reopen number);
Slice 6 entry gains the vehicle re-spec + first blind scores; header
fast-follow #3 (
inline-left) trigger FIRED; the save-race entry records the upstream filing (#1158 comment). - known-patterns — new entry: "A local HTTP probe is only as honest as the PORT'S OWNER" (the quick-spike workerd interception; responder-identity assertion now in the runner).
What shipped¶
- The structural evaluation. Verdict: A-grade craft, C-grade allocation;
both blind reviewers independently ranked the same top risks (uncalibrated
gate, blocked self-service, unproven provisioning, lane divergence, 2-site
polish loop, Woo-lane dilution). The actionable core became ADR-0013 + this
slice. Residue not yet adopted (owner's call, from the synthesis): a
production-readiness ladder separate from fidelity; "no new bounded dimension
without corpus evidence" as a scope-gate; a validate/CI pass for the
producer layer (matchers/transformer have zero coverage; no test runner);
Woo-lane quarantine behind a written trigger + portfolio segmentation tally;
a housekeeping session (dead assembler generations,
.tmpsediment, stale README, known-patterns split). - The batch runner (
scripts/run-cms-batch.mjs): 13 stages, resumable, loud-continue, committed-seed protection, responder-identity assertion, zero production writes by construction. Positive control exact: local serve of WCP scores S 82.1 / T 100 / G 84.4 → 87.2 HOLD(videoDebt) — the deployed baseline to 0.1.batch-scorecardconsumes its output (2 sites, 0 skipped). - First blind results (criterion b — 3/3 unattended):
salttherapysolutions.ie 89.7 (S 87.8 — a never-seen site above τ_ship on
axes; held by
chromeDisagree= exactly the known unroutedinline-leftheader, +videoDebt/deadAssetRef) and sweeneyofwexford.ie 33.3 (S=0, honest: old-generation mesh markup has no<section>elements — segmentation gap, not an instrument bug). - The
.ieconvention lifted (owner direction):domainFor(site)inresolve-site.mjsreads a new"domain"descriptor field (fallback<site>.iekeeps descriptor-less flows byte-identical — regression-checked); threaded throughwix-api/transform-seed-images/emit-theme-css; both reference descriptors carry explicit domains; runner synthesizes local-only descriptors with fake D1 ids + first-label collision guard. - emdash intelligence: emdash is Cloudflare's own OSS product (launched 2026-04-01) — upstream-longevity risk down. 0.29.0 (current latest) touches nothing in the save path; #1158 was closed before the 0.28.1 repro, so the repro comment (filed from DCathal, sanitized — no business context) is the correction upstream needs. Draft deleted per its own instruction.
The honest parts¶
- ADR-0013 is Proposed — nothing in 0003/0008/0009 was edited; if the decision shifts at review, only the new files move.
- The impostor-port detour cost two rebuilds before the port owner was checked — banked as the known-patterns entry and as two hard assertions in the runner.
- The runner's identity sentinel passes on chrome alone (sweeneyofwexford proved it) — it is an anti-interception check, not a content check.
- salttherapysolutions'
videoDebtmay partly be the Wix API key's site-access restriction (images need no API; videos do) — unverified; widen the key before reading corpus video-debt numbers as capture debt. builds/artifacts for the two new sites (incl. their committed theme.json) live only on this box until the EC2 port.
Next — corpus BEFORE fixes (owner's call, 2026-07-18, and it matches the¶
evaluation's own "no new dimension work without corpus evidence" rule)¶
- Prepare the vehicle, not fixes: widen the Wix API key's site access
(account-side — NOT a fix: without it every corpus site's
videoDebtconflates "capture debt" with "key couldn't see the site", contaminating the very issue list the corpus exists to produce); EC2 port + re-run the positive control there (or accept an overnight run on the Windows box); promote/amend ADR-0013 when reviewed (the corpus can run on Proposed). - Run the whole 30–50-site corpus (Cathal picks: team-built, spread verticals, a few expected-failures; tally e-commerce/booking while picking — it prices the Woo lane and the booking question). Measure everything, fix nothing mid-run.
- Fix from the aggregated ranked list — inline-left (trigger already fired), the mesh-generation gap, and whatever else surfaces, ordered by how many sites each fix closes, not by discovery order. Only a defect that breaks MEASUREMENT itself may jump the queue (none currently does — even the mesh gap scores honestly).
- Watch #1158 for an upstream response; re-run the 2-trial repro on any release touching the save path.
- The evaluation residue list above, as bandwidth allows.