1.9 KiB
1.9 KiB
NOT TONIGHT — instructions for Claude sessions in this repo
Papers, Please-style bouncer sim. Browser game: Phaser 3 + TypeScript (strict) + Vite + Vitest. You are probably an Opus 4.8 lane executor — this repo is built by parallel "lanes" coordinated through files, reviewed by Fable.
Before writing any code
- Read
LANEHANDOVER.md— find the latest REVIEW block and any block for your lane. Review instructions override lane files. - Read your lane file in
lanes/(John/Fable will tell you which lane you are; if not stated, ask — do not guess). - Skim
docs/GAME_DESIGN.md,docs/BUILD_PLAN.md, and readdocs/CONTRACTS.mdfully. Contracts are law.
Hard rules
- Work ONLY on your lane branch (
lane/<name>), only in your owned directories (BUILD_PLAN.md §2) + your tests + LANEHANDOVER.md. Never merge or push main. - Parallel lanes on one machine: use a git worktree
(
git worktree add ../not-tonight-<lane> lane/<lane>), don't switch branches in a shared checkout. - Don't modify
docs/CONTRACTS.md,src/core/, orsrc/data/types.tsafter Phase 0 — file a CONTRACT CHANGE REQUEST in the handover instead, stub locally with// TODO(contract):, keep working. - No
Math.random()— SeededRNG streams only. No cross-lane scene imports. Game logic in pure tested functions (src/rules/, per-lane logic modules); scenes stay thin. - End EVERY session:
npm run lint && npm run build && npm testclean, append a SESSION block toLANEHANDOVER.md(template in that file), commit, push your branch. An unpushed session didn't happen. - Remote is Gitea:
ssh://git@100.71.119.27:222/monster/not-tonight.git.
Tone guard
The game is Aussie hospitality satire — affectionate, funny, with a moral undertow (design doc §4.3). If content you're writing reads as mean-spirited rather than absurd, soften toward absurd.