Skip to content

Session handover — 2026-07-21

chromeDisagree is adjudicated, fixed, and banked. The 07-20 session left chromeDisagree gating 33 of 38 corpus sites with an explicit UNTESTED-HYPOTHESIS that it was an instrument artifact. This session disproved that hypothesis by measurement, shipped all four real dimensions behind it, re-crawled the corpus, and moved the board from 2 → 15 SHIP (chromeDisagree 33 → 7). The 7 that remain are the deferred media-backed chrome cases; every fixable chrome disagreement is now zero. The brand-drift discipline check came back 0 of 23 — the determinism fix held across the re-crawl, so every verdict change is attributable to the chrome work.

Where to look

  • known-issues — the chromeDisagree block is the spine of the session. It carries: the adjudication (four dims — footer.bg 27 / header.layout 17 / header.cta 10 / header.bg 7 — not one artifact, with both sides of the probe checked); a per-dim shipped record with a proof table each (footer producer, inline-left routing, stacked-CTA slot, header-bg producer + text cascade); the transparentBlackRemnant veto narrowing (an obsolete parse-bug guard my producer surfaced); and the PAYOFF BANKED table (2→15, 33→7, 0 drift, 7 remaining = media).
  • known-patterns — two durable entries added: "A reference site can be blind to a whole defect class BY COINCIDENCE" (WCP's genuinely-white footer hid the footer producer gap for a month) and "A veto built to catch a PARSE bug false-fires once the value becomes measurable" (the transparentBlackRemnant lesson: grep every === SENTINEL rule when a producer makes a previously-impossible value possible).
  • ADR-0009 — Slice 3's inline-left "routing deferred" note is closed in place; a dated chrome-dims completion line added to the Slice 3 "Remaining" list. No decision changed — this is execution of the Slice 3 header dimension.
  • Commits (all on master, pushed): 9bae0ca (footer producer + adjudication) · 55176a8 (inline-left) · 52764f7 (header CTA) · a87f062 (header-bg + veto narrowing) · b77c5f0 (fleet re-crawl payoff + refreshed matrix/scorecards). Re-crawl log ~/recrawl.log on the box.

What shipped

  • footer.bg producerpickCoverBgEl in theme-extractor.js (coverage gates lifted from resolveSectionBg, not invented) → theme.jsonemitGlobalCss emits --footer-bg + a contrastingForeground-derived --footer-text only on a dark footer. The Wix <footer> is transparent; the fill is on a descendant. Proof: banesolicitors HOLD 91.4 → SHIP; references byte-identical.
  • header.layout inline-left — render-routing only (the classifier already emitted it, the seed already carried it; the block just had no branch). A third branch in header-wcp.astro between split and stacked, both existing branches byte-untouched. NO re-crawl. Proof: qconsulting 96.7 → SHIP, charlietaxi 94.1 → SHIP.
  • header.cta — a {hasCta && …} pill in the stacked-center branch (the 8 stacked sites had no CTA slot; the 2 inline sites were already covered). NO re-crawl. Proof: johnrochford 95.9 → SHIP; brianlarkin (stacked, no CTA) byte-identical.
  • header.bg producer + text cascadepickCoverBgEl generalised to header; --header-bg + a narrow --header-text cascade that recolours only top-level nav items (not dropdown-popover links). Proven two ways because the gate is blind to chrome text legibility: scorecard flip and an eyeballed render (shinners #000000: white nav, brand-red active, readable).
  • transparentBlackRemnant narrowed (owner-approved gate change) — the producer made genuinely-black chrome measurable, false-firing a veto meant for the old transparent-parsed-as-black bug. Narrowed to background only; zero impact on the existing matrix.
  • Fleet re-crawl + regen — 28 sites (23 with a live theme re-crawl, 5 render-only, 10 skipped as clean), 28/28 no failures; feature-matrix.json + 41 scorecards refreshed to the post-chrome state.
  • Repo hygiene — branch-then-merge to master, box drift (loose scp files at an old commit) reconciled via bundle; local + origin + box all at b77c5f0.

The honest parts

  • The 7 remaining chromeDisagree are deferred, not fixed — 5 media-backed footers + 2 media-backed headers. A hex can't express a media-backed chrome fill; closing them needs our lane to render a background image, a separate slice. Reopen trigger: a media-chrome render slice, or a site where it's the sole blocker worth the render work.
  • svco header.cta did not render (its Book Consultation→calendly CTA) — incidental, since svco is already media-footer-deferred, but it's a real small miss to chase in a later pass, filed in the known-issues payoff note.
  • The fleet fix is measured on LOCAL builds, not deployed — the corpus is a calibration exercise (zero production writes). No client site is live with the chrome work; there is no fleet-deploy machinery yet (ADR-0008 Slice 3 unbuilt). SHIP 15 is a machine verdict on local renders, not 15 live sites.
  • The composites barely moved on the 13 flips (banesolicitors 91.4→91.4) — correct, because chromeDisagree is a veto not an axis penalty; but it means the chrome work does not change the S/T/G_det distribution the Slice-6 fit will use, only which sites clear the gate.
  • emdash #1158 (the save race) checked — still open. Issue CLOSED upstream since 2026-06-29, not reopened; only activity since is our 07-18 comment; latest release 0.29.0 (07-10) predates our filing and touches nothing in the save path. Reopen trigger unchanged (a release touching the save/draft path, or #1158 reopened).

Next

  1. Cathal's labels — ship / needs-polish / hold per site. The corpus now has 15 machine-SHIP candidates (was 2, both veto-held), so a precision-first fit is finally possible — this is the blocking human input for Slice 6.
  2. fit-calibration → review the candidate → promote only if fitted:true and precision holds → wire the gate to pShipCut.
  3. Residual veto load, now correctly ranked on the post-chrome board: criticalSectionDropped, contentDestroyed, deadAssetRef — the sites that cleared chromeDisagree but still HOLD on one of these.
  4. Chrome tails: media-backed chrome (7 sites) and svco's CTA miss — small, deferred with triggers above.
  5. Smaller carry-overs from 07-20 still open: the null-axis composite bug (2 instances), mesh prevalence unmeasured, the transform-seed-images URL-mangle on sreenanandcompany.