One file owns the court: beats.js, PROJECT.md (né HANDOFF), and tests gate the build

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-11 13:23:27 +02:00
1 parent 05930f0877
commit c122745390
11 files changed
+362 -231

No files matched your search

+12
View File
@@ -0,0 +1,12 @@
# Splatter Tennis — session rules
1. **Read `PROJECT.md` first** — 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.
2. **`node test.js` must 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.
3. **Mode transitions live in `beats.js` only** (duel/horde/boss/changeover). One mode owns the
court; every `start*` refuses while another mode runs. A new mode starts there and refuses there.
4. **Every push deploys** (Coolify → splatter-tennis.wuwi.one). Bump `main.js?v=N` in index.html on
every push or phones keep the old build. New top-level files must be added to the Dockerfile COPY.
5. **Zero dependencies, no build step, no framework.** This is a settled decision — solve it with
what is already in the repo.