diff --git a/CLAUDE.md b/CLAUDE.md index b88c081..b148f8a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,12 +27,19 @@ inventor's own point is that it cannot be understood from prose alone. ## Current State -- **Phase:** spec complete; implementation not started. -- **Repo:** `git.sethpc.xyz/Seth/duplicate_chess`. -- **Deploy target:** n/a — runs locally (`pnpm dev`). +- **Phase:** v1 **implemented and merged to `main`** — the engine and the compass + UI are complete. Not yet manually browser-tested. +- **Repo:** `git.sethpc.xyz/Seth/duplicate_chess` (`main`). +- **Deploy target:** n/a — runs locally (`pnpm install && pnpm dev`). - **Stack:** Vite + Svelte 5 + TypeScript, `chess.js`. Single package; engine in - `src/engine/` (pure, DOM-free, vitest-tested), UI in `src/lib/`. -- **Next:** implementation plan via the writing-plans skill, then build. + `src/engine/` (pure, DOM-free; 27 vitest tests passing), UI in `src/lib/`. +- **Commands:** `pnpm dev` (run) · `pnpm build` · `pnpm test` (engine) · + `pnpm exec svelte-check --tsconfig ./tsconfig.json` (typecheck). +- **Known follow-ups (not blocking):** interactive browser test still pending (a + human task — `svelte-check` + manual is the design, see spec §8); history scrubbing + is view-only whereas spec §4.3 says truncate-on-move (deviation — confirm which to + keep); `deserialize` trusts the `player` field on replay; move log has no round + numbers. See the latest handoff in `.claude/handoffs/`. ## Conventions