The 2D repair panel retires -- every fault is a wrench job on the real
car in the real shed now. Gearbox and gasket open with DIAGNOSIS: three
lit warning lights, one honest, the code reader pointing at it through
its cracked screen ("D!IV!TR!IN"); a wrong pick costs quality and makes
every nut in the job run a turn longer (penalty_turns feeds _need() and
the HUD torque arc).
The gearbox is the hero job. Without a hoist you drag the 60 kg box out
by hand and hold the steady ring so it doesn't land on you; with the
Cashies crane it's the ceremony -- hook the chain, pump it out -- and
the tier-3 gantry winch hooks itself up. The gasket job is the full
rite: bonnet, head bolts, old gasket out (mind the mayonnaise), seat
the new one square, torque the head IN the window, coolant back in.
Tool tiers: every line goes Cashies -> Supercheap -> SNAP-OFF
PROFESSIONAL (buy again to upgrade, garage shows [T2] UP $N). Tiers are
felt, not read: sockets scale turns 1.6x down to 0.5x and widen the
torque window 0.8 to 1.3 rad; the tier-2 compressor's RATTLE GUN
converts non-torque nut twists into BRRRT clicks (windows keep the hand
skill -- guns strip); ramps cut jacking 10 clicks to 3; the fluids
shelf speeds pours; the SNAP-OFF tablet skips diagnosis outright.
Pre-tier saves read as tier 1.
Workmanship reaches the strip: an 85+ gearbox rebuild raises box_limit
to 4 blown shifts, an 85+ gasket job lifts the overheat ceiling to
1.18. Both wired into the drag setup and asserted in the suite, which
now also covers tier upgrade/cap flow, wrong-then-right diagnosis, the
toolless 60 kg gearbox path, and a clean gasket run -- via one shared
driver that handles every verb including diagnose.
The := inference trap, visit four: indexing untyped const Arrays.
Typed the tables (Array[float]/Array[int]) so every index site infers.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>