MathMasterHTML is a browser-native algebra training game built around active runtime pages in src/pages/. The gameplay runtime is script-tag driven, served over HTTP, and organized around the shared panel and symbol-rain contracts documented in the plan files.
npm install
npm startOpen http://localhost:8000/game.html?level=beginner after the server starts.
src/pages/index.html: main landing pagesrc/pages/level-select.html: level selection pagesrc/pages/game.html: active gameplay page
src/scripts/display-manager.jsowns panel sizing and compact/mobile classification.- Compact mobile console clearance is exposed through
body.console-compact-clearance; Panel A and Panel B dimensions should not be overridden to make room for the floating console. - Console and symbol-choice touch latency is handled with CSS
touch-actionplus primary-pointer activation, while programmaticclick()paths remain valid for tests and assistive tooling. - Symbol rain mobile targeting resolves against live
#symbol-rain-containerbounds and touch coordinates instead of stale panel-only geometry. - Problem content lives under
src/assets/problems/Assets/as runtime JSON. service-worker.jshandles offline and update behavior.- Use an HTTP server;
file://is not supported for runtime assets.
npm run verify: repo health and policy checksnpm run typecheck: TypeScript checks for the configured script subsetnpm test: full Playwright runnpm run test:competition:smoke: fast competition smoke lanenpm run test:perf:gate: performance smoke gatenpm run test:manual: manual launch reminder for the beginner game page
Plan Genesis.md: runtime architecture and engineering source of truthPlan Beta.md: roadmap and execution prioritiesPlan Alpha.md: product, UX, and design rulesJOBCARD.md: rolling work log
npm run verifynpm run typechecknpx playwright test tests/console-interactions.spec.js tests/game-portrait-device-contract.spec.js tests/symbol-rain.mobile.spec.js --reporter=list