# LANE F — Integration (Fable, the integrator)

Mission: everything between the lanes. Shell, core, contracts, QA gate, round instructions,
final eyeball. F is run by the coordinating session (Fable), not an Opus lane — lanes never
edit F territory: `web/index.html`, `web/js/boot.js`, `web/js/core/{rng,bus,flags}.js`,
`web/js/stub/**`, `tools/qa.sh`, `docs/LANES/ROUND*_INSTRUCTIONS.md`.

## Standing duties

- **Round loop:** read every lane's NOTES + progress + shots after a round; verify claims
  by booting the game (eyeball law applies to the integrator most of all); write
  `ROUND<N+1>_INSTRUCTIONS.md` with integrator decisions spelled out; banner the old round
  SUPERSEDED.
- **Shell wiring:** lanes offer factory snippets in NOTES (`### → Lane F`); F pastes into
  boot.js behind flags, updates the TECH flags table.
- **Contract referee:** world contract freeze, schema evolution, bus-event naming, budget
  arbitration (who spends the draw calls).
- **QA gate:** grow `tools/qa.sh` — each round's regressions become next round's gates
  (PROCITY pattern: selfchecks accumulate; keep it fast and dependency-free).
- **Stub parity:** `world_stub.js` must track the world contract exactly — it's the
  contract's executable spec and every lane's fallback.
- Integration passes: cross-lane bugs (dispose leaks at seams, event races, budget
  overruns) are F's to fix or assign.

## Verification duties

Boot matrix per round: default, `?stub=1`, `?localassets=0`, `?fly=1`, each `?lvl=`.
Zero console errors. DBG numbers recorded in `docs/progress/f-progress.md`. Screenshots
of integration state per round in `docs/shots/laneF/`.

## Ship duties (later)

Deploy to partly.party via `deploy-map` skill; `ship-check` before anything is exposed;
version tags on round completion (`v0.<round>`).
