Three.js QA Release
Prove the app or game works as its user encounters it and that the production
build is shippable.
Read ../../references/verification-policy.md first. Do not start browser,
Playwright, canvas, screenshot, diagnostics, release-preview, or mobile work
without approval for that scope.
Read By Need
- Core QA, responsive behavior, performance, evidence, and release:
references/qa-release-checklists.md.
- Screenshot baselines or visual regression:
references/visual-test-harness.md.
- Game-only scripted play, difficulty, fairness, or softlocks:
references/game-playtest-bot.md.
Default Minimum
Without additional approval, run only the policy's automatic minimum: the
smallest build/typecheck gate, focused existing non-browser tests, and local
asset/import-path checks. Fix owned failures, then state that extended browser
QA was not run and offer a concrete desktop QA pass.
Approved Desktop QA Workflow
- Confirm the approved scope, then start the intended dev or production
preview.
- Capture console, page, and relevant network errors.
- Verify nonblank canvas pixels and the approved active desktop view.
- Exercise the primary user journey and changed risky paths.
- Test loading, empty, unsupported, and error states when applicable.
- Check desktop UI fit, input cancellation, and resize.
- If audio changed, verify gesture unlock, decode/load, triggers, loops,
cleanup, mute, and volume.
- Add deterministic screenshot baselines only when separately approved;
otherwise record that they were not run.
- Run canvas diagnostics, profiling, production-preview checks, or game bot
playtests only when the user approved those checks.
- Record commands, artifacts, issues, and remaining risks.
After desktop QA, offer mobile as a separate second step. Do not infer mobile
approval from desktop approval.
Canvas Inspector
After canvas-inspector approval, run from the target project so its
@playwright/test and pngjs dependencies are used:
node <this-skill-dir>/scripts/inspect-threejs-canvas.mjs --url http://127.0.0.1:5188
Add --mobile, --state <name>, and --seed <n> as needed. The JSON
contains canvas metrics and renderer-budget comparisons. Blank/error conditions
exit nonzero.
The game scaffold creator copies this canonical inspector into generated games,
so they remain self-contained without duplicated source.
Approved Release Workflow
- Inspect scripts, Vite
base, public assets, and deployment assumptions.
- Gate debug UI, verbose logging, and test helpers.
- Run production build and preview.
- Recheck desktop/mobile interaction and asset paths in built output.
- Review bundle size, large assets, and third-party asset notices.
- Report deployment commands and residual risks.
Final Response
Lead with pass/fail. Include commands, URL, primary journey or game loop,
controls, screenshots/artifacts, issues, canvas/performance evidence, visual
harness and game-bot decisions when relevant, deployment notes, and risks.
Always disclose extended browser QA that was not run and whether mobile still
requires approval.
1---2name: threejs-qa-release3description: Verify and release Three.js apps and games through primary-journey QA, desktop/mobile visual checks, canvas metrics, visual regression, optional game bot playtests, production previews, and release-risk reporting.4---56# Three.js QA Release78Prove the app or game works as its user encounters it and that the production9build is shippable.1011Read `../../references/verification-policy.md` first. Do not start browser,12Playwright, canvas, screenshot, diagnostics, release-preview, or mobile work13without approval for that scope.1415## Read By Need1617- Core QA, responsive behavior, performance, evidence, and release:18 `references/qa-release-checklists.md`.19- Screenshot baselines or visual regression:20 `references/visual-test-harness.md`.21- Game-only scripted play, difficulty, fairness, or softlocks:22 `references/game-playtest-bot.md`.2324## Default Minimum2526Without additional approval, run only the policy's automatic minimum: the27smallest build/typecheck gate, focused existing non-browser tests, and local28asset/import-path checks. Fix owned failures, then state that extended browser29QA was not run and offer a concrete desktop QA pass.3031## Approved Desktop QA Workflow32331. Confirm the approved scope, then start the intended dev or production34 preview.352. Capture console, page, and relevant network errors.363. Verify nonblank canvas pixels and the approved active desktop view.374. Exercise the primary user journey and changed risky paths.385. Test loading, empty, unsupported, and error states when applicable.396. Check desktop UI fit, input cancellation, and resize.407. If audio changed, verify gesture unlock, decode/load, triggers, loops,41 cleanup, mute, and volume.428. Add deterministic screenshot baselines only when separately approved;43 otherwise record that they were not run.449. Run canvas diagnostics, profiling, production-preview checks, or game bot45 playtests only when the user approved those checks.4610. Record commands, artifacts, issues, and remaining risks.4748After desktop QA, offer mobile as a separate second step. Do not infer mobile49approval from desktop approval.5051## Canvas Inspector5253After canvas-inspector approval, run from the target project so its54`@playwright/test` and `pngjs` dependencies are used:5556```bash57node <this-skill-dir>/scripts/inspect-threejs-canvas.mjs --url http://127.0.0.1:518858```5960Add `--mobile`, `--state <name>`, and `--seed <n>` as needed. The JSON61contains canvas metrics and renderer-budget comparisons. Blank/error conditions62exit nonzero.6364The game scaffold creator copies this canonical inspector into generated games,65so they remain self-contained without duplicated source.6667## Approved Release Workflow68691. Inspect scripts, Vite `base`, public assets, and deployment assumptions.702. Gate debug UI, verbose logging, and test helpers.713. Run production build and preview.724. Recheck desktop/mobile interaction and asset paths in built output.735. Review bundle size, large assets, and third-party asset notices.746. Report deployment commands and residual risks.7576## Final Response7778Lead with pass/fail. Include commands, URL, primary journey or game loop,79controls, screenshots/artifacts, issues, canvas/performance evidence, visual80harness and game-bot decisions when relevant, deployment notes, and risks.81Always disclose extended browser QA that was not run and whether mobile still82requires approval.