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 <name>:
ground_truth_cacheandgeneration_loopifcorpus/ground-truth/andcorpus/regression-set.jsonare not present in this worktree (they are gitignored and do not survive worktree removal); confirm the two seeded-wrong candidates ingeneration_loop.rsare still rejected.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 intocrates/layout/src/generated/width.rsverbatim -- including the candidate-crate import line (use layout::width::{...}), which does not compile inside thelayoutcrate. Every candidate committed here so far (width.rs,absolute.rs,float.rs) needed that one line rewritten by hand touse crate::width::{...}beforecargo build --workspacepassed; do the same rewrite here before the gate below, and confirm the header line andwidth.provenance.jsonstill name the scorereal_model_runprinted.- 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 todocs/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.