Skip to content

Session handover — 2026-07-21 pt2

Instrument-hardening + Slice-6 tooling session, in service of the one remaining Slice-6 blocker: Cathal's ship/needs-polish/hold labels. Four tasks, in the order the owner set them (1 → 2 → 3 → 4), each landed with a validate/selftest; nothing deployed (all local — the corpus is a calibration exercise, zero production writes).

Where to look

  • known-issues — four entries moved:
  • the null-axis composite bug (bluestars entry) is marked FIXED 2026-07-21; the redundant "SECOND instance" paragraph is deleted (bug fixed, cassidy's mesh status now lives in the prevalence entry).
  • Mesh prevalence is no longer "STILL UNMEASURED" — 3 of 41 (7.3%), measured by the pipeline's own section signal with controls; the portfolio-wide number stays open with a reopen trigger + a pending owner decision (segmenter slice vs manual-tier routing).
  • the https_.jpg URL-mangle is ROOT-CAUSED + FIXED (it was a crawl-stage bug in dom-pipeline, not transform-seed-images) with a corrected recovery note (--force crawl, not --force images).
  • a new labelling-harness note (the human-label step is now tooled) and a small note on a pre-existing red test (calibration-fit WCP anchor 82.1-vs-82.2 re-crawl drift — not a regression).
  • known-patterns — two durable entries added under Components/pipeline: "A composite from a SINGLE surviving axis is that axis, not a composite" (+ the null-vs-0 shape-shift) and "A nested/doubled Wix /media/ URL mangles when split on the FIRST /media/".
  • ADR-0009 — Slice 6 tracker row gains a dated note (labelling harness + composite fix); no decision changed, this is execution of the Slice-6 instrument.

What shipped

  • Task 1 — null-axis composite fix. composite() (lib/scorecard-gate.js) now returns null below 2 axes; a mesh 0-section site (S+G_det null, T alone) no longer banks a flattering 95.5/100 and holds honestly. lib/scorecard.js prints for a null composite. +4 gate-validate checks (64/64). Proof it doesn't touch the fit: both mesh sites already sit in feature-matrix.json#skipped on missingAxes, verified before composite is read.
  • Task 2 — labelling harness. scripts/make-label-sheet.mjs (18-check selftest) → calibration/labels.csv (seeded, host,verdict,reason, 15 SHIP candidates first) + calibration/review.html (per-site punch-list from the committed scorecards, live links, ship/needs-polish/hold export). Testing against the real scorecards caught two object-vs-number bugs the fixtures missed (matcherGap {count}, header.cta object value) — fixed + locked.
  • Task 3 — mesh prevalence. scripts/measure-mesh-prevalence.mjs3 of 41 (7.3%) by the S-axis alignment (structural.pages[].rows), with positive+negative controls that pass. Memory project_mesh_prevalence_expectation updated with the measured number.
  • Task 4 — https_.jpg URL-mangle. Extracted lib/wix-media-ref.js#deriveWixMediaRef (last-/media/ split + protocol guard; byte-identical on normal URLs) + wix-media-ref.validate.mjs, wired into lib/dom-pipeline.js.

The honest parts

  • Nothing is deployed and no site was re-crawled. All four tasks are proven by validate suites + the committed corpus artifacts; the actual mesh scorecards and sreenanandcompany's seed live on EC2. The composite fix takes effect the next time those sites are scored on the box.
  • The mesh number is a corpus SAMPLE, not the portfolio. 7.3% of ~41 hand-picked team-built sites → order ~130 of 1800 (CI ~45–350). The portfolio-wide count needs the full crawl. It is enough to retire "n=2 edge case", not enough to size the segmenter slice.
  • The URL-mangle fix targets the demonstrable mechanism (nested/doubled URL → exactly https_.jpg); confirming it resolves sreenanandcompany specifically needs a box re-crawl. If that site's real URL is a different nesting shape, the new guard skips it loudly (un-migratable) rather than 403-ing — no silent ship either way.
  • calibration-fit.validate.mjs is red on clean HEAD (WCP anchor 82.1 vs a hard-coded 82.2 — 0.1 re-crawl drift). Unrelated to this session's changes; filed as a test-maintenance nit.
  • svco's header.cta miss (the second task-4 item) was left for the box — a capture/data issue, incidental (svco is already media-footer-deferred). The review sheet independently surfaces it.

Next

  1. Cathal's labels — open calibration/review.html, label the 15 SHIP candidates (needs-polish/hold the rest for negatives), save to calibration/labels.csv. This is now the sole remaining Slice-6 blocker.
  2. fit-calibration → review the candidate → promote only if fitted:true and precision holds → wire the gate to pShipCut.
  3. Mesh decision — segmenter slice vs explicit manual-tier routing (owner call); portfolio-wide count at the full crawl.
  4. Box confirmations: --force crawl sreenanandcompany to confirm the URL-mangle fix + --force images; the svco CTA; regenerate the two mesh scorecards so their committed composites read null.
  5. Test nit: reconcile the calibration-fit WCP anchor (82.1 vs 82.2).