967 B
967 B
Splatter Tennis — session rules
- Read
PROJECT.mdfirst — it is the only planning document: how Oliver's feedback is handled, every invariant, every settled feel decision, what is open. Do not re-derive or contradict it. node test.jsmust pass before every commit. It is also a Dockerfile build stage, so a red suite blocks the deploy — but run it locally first. New state-machine behavior gets a test.- Mode transitions live in
beats.jsonly (duel/horde/boss/changeover). One mode owns the court; everystart*refuses while another mode runs. A new mode starts there and refuses there. - Every push deploys (Coolify → splatter-tennis.wuwi.one). Bump
main.js?v=Nin index.html on every push or phones keep the old build. New top-level files must be added to the Dockerfile COPY. - Zero dependencies, no build step, no framework. This is a settled decision — solve it with what is already in the repo.