# OS .DS_Store Thumbs.db # Editors .vscode/ .idea/ *.swp # Dependencies / build output # # NO TRAILING SLASH on node_modules, deliberately. `node_modules/` matches a directory and not a # SYMLINK of that name — so one pointing at a shared install was committed in v0.4.7, and because it # pointed at a path that does not exist, a fresh checkout had no TypeScript: `npm run typecheck` said # "tsc: not found" and 20 tests failed for a reason that had nothing to do with the code. node_modules dist/ dist-test/ build/ target/ __pycache__/ *.pyc # Claude Code's own state — session checkpoints and the git worktrees it works in. # # NOT ignored until now, so `git add -A` in the repo root would have staged # `.claude/worktrees/`: a whole second checkout of this repository, committed into itself. Nothing # in here is a source file and none of it should travel with the package. .claude/ # Env .env .env.local # Logs *.log # Generated replays — ANCHORED to the repo root on purpose. # # Unanchored, `replay*.html` also matched `src/web/replays.html`, which is a SOURCE file: the # website's replay viewer. It was therefore never committed, and a fresh clone was missing a page # the build copies unconditionally. Only the throwaway files this directory collects are ignored. /replay*.html # Playtest saves — somebody's game, attached to a bug report. # # ANCHORED, and with the README exempted: the directory has to exist and say what it is for, while # nothing that lands in it is ever committed. A save is a seed plus the moves made, it belongs to # whoever sent it, and it goes stale the moment the rules move. `public/replays/` is the place for # one that is worth publishing. /playtests/* !/playtests/README.md # The Jitsi harness is NOT scrubbed — four of its files carry a real domain and real # participant names (workspace AGENTS.local.md). Ignored so that a `git add -A` cannot sweep it # into a history that would be permanently exposed if this repo is ever made public. When it is # promoted in Phase 1, scrub it FIRST, then `git add -f tools/`. tools/