--- description: Build + smoke-test the viewer: typecheck, production build, and a headless load of a sample asset to confirm perceived load < 3s. --- Run, in order, quoting real output: 1. Typecheck / lint (e.g. `npm run build` — Vite runs tsc + bundle). Must exit 0. 2. Production build artifact exists under `dist/`. 3. Headless load smoke: serve `dist/`, load a sample asset (server path) via Puppeteer/playwright OR a node script using the viewer, measure time-to-first-render. Assert < 3000ms perceived. 4. (If a local-file path exists) simulate a drop of a sample GLB and confirm load + revoke. Append timings to PROGRESS.md. If any step fails, do not mark the work done — report the failure output. Arguments: $ARGUMENTS — optional asset path or flag to skip headless (`--no-headless`).