--- enabled: false touches: [crates/layout/src/generated/**, crates/generation/**, docs/model-first-cost.md, docs/rig-capacity.md, roadmap.md, corpus/**] depends-on: [] --- # Draw a large free batch from the rig for the width equation seam The committed candidate for the width-equation seam (`crates/layout/src/generated/width.rs` header line, `model_0`, `claude-opus-5`, 132/227 on the shared 227-case corpus that `crates/harness/src/cases.rs` scores the width, margin and percentage seams against) already closes every category inside its own stated scope: `WidthAuto`, `FillAvailable`, `MarginAutoLeft`, `MarginAutoRight`, `MarginAutoBoth`, `OverConstrained`, `ExplicitWidth`, `MinMaxClamp` and `MinExceedsMax` all sit at 100% (`roadmap.md` → "Phase 1 — Engine bootstrap" step 4). What is left uncovered — `BoxSizingBorderBox` 7/14, `CollapseNegative` 15/21 (both incidental, since a width-only candidate never resolves box-sizing conversion or margin collapsing) and the `NestingDepth` 9/20 device-pixel rounding gap (`docs/firefox-app-units.md`, outside the width seam scope) — is not something a width-equation candidate is designed to touch. Despite that, one unlanded hand-run batch already found more headroom than the design-scope accounting predicts: a free 32-candidate draw through the rig gateway (`qwen3.8-flash-next`, run inside `.worktrees/rig-provisioning`, not yet merged to `main`) admitted a candidate at 140/227 — 8 cases above 132/227 — 14 of 32 compiled, zero regressions, 7m49s wall. That result has not landed on `main`; the candidate committed here is still the 132/227 one from `claude-opus-5`. This track runs the same free-hardware batch shape against the width seam on `main`, so any improvement is captured through the ordinary admission gate rather than living only in that hand-run worktree, whether the result ties, exceeds, or falls short of the unlanded 140/227 candidate. The model endpoint and keys are read from the environment, and the binaries do not load `.env` themselves. Before every run: `set -a; source .env; set +a` in the worktree (`.env` is a symlink installed by `tracks.json`). Never print or commit any value from it. `NEV_MODEL_URL` names the rig gateway; confirm it answers (`curl` its models list with the bearer key, output discarded) before drawing, and if it does not, record that in the handoff and stop rather than switching provider: `NEV_PROVIDER` stays unset for this track (the rig path), never `anthropic`. Unlike `absolute_real_model_run`, `real_model_run` — the binary for the width seam itself, unsuffixed since it is the original of the four — draws one batch and exits: it carries no internal `improved_any_category` loop or stop condition to preserve. Run it once for this spec; a further free batch after that is a manual rerun, not something this spec repeats automatically. Steps, each as `cargo run --release -p generation --bin `: 1. `ground_truth_cache` and `generation_loop` if `corpus/ground-truth/` and `corpus/regression-set.json` are not present in this worktree (they are gitignored and do not survive worktree removal); confirm the two seeded-wrong candidates in `generation_loop.rs` are still rejected. 2. `NEV_MODEL=qwen3.8-flash-next NEV_CANDIDATES=32 NEV_CONCURRENCY=32 real_model_run`. If the batch beats the committed 132/227 (`admit::beats_committed`), the binary writes the winner into `crates/layout/src/generated/width.rs` verbatim -- including the candidate-crate import line (`use layout::width::{...}`), which does not compile inside the `layout` crate. Every candidate committed here so far (`width.rs`, `absolute.rs`, `float.rs`) needed that one line rewritten by hand to `use crate::width::{...}` before `cargo build --workspace` passed; do the same rewrite here before the gate below, and confirm the header line and `width.provenance.json` still name the score `real_model_run` printed. 3. Record, in `docs/model-first-cost.md` → "Batch scores and token totals": candidates compiled of drawn, null-content replies, best score, per-category tally, prompt and output tokens (the rig path reports them), and wall-clock. Add a row to `docs/rig-capacity.md` → "Measured — real batches through the gateway" for this 32-candidate width batch shape. The committed candidate changes only through `crates/generation/src/admit.rs` `beats_committed`: a candidate scoring strictly above the committed score on the same 227-case corpus, committed byte for byte (after the import-line fix above) as `crates/layout/src/generated/width.rs` with the header line naming candidate, model and score, and `width.provenance.json` beside it. Anything not strictly higher is reported, not committed. Write the outcome into `docs/model-first-cost.md` as a short subsection beside the width-equation narrative: the best per-category tally from the free batch against the committed 132/227 tally, and one sentence on whether the free rig batch closed any part of `BoxSizingBorderBox`, `CollapseNegative` or `NestingDepth`, or only ties or falls short of the 140/227 candidate already found by hand in the unlanded worktree. Either outcome is worth recording, since this is the first time width headroom above 132/227 is captured through the ordinary admission gate on `main` rather than by a hand-run worktree. `roadmap.md` → "Phase 1 — Engine bootstrap" step 4 gets one line pointing at it. `cargo test --workspace` must pass. `fragment_check` on the seeded-random recipe corpus (`cargo run --release --bin fragment_check -p layout -- --random`) must still report at least 216/227; a committed candidate that lowers it is reported, not kept.