claude (duplicate_chess) 8039a8b364 build: set vite base to /duplicate/ for sub-path hosting
Hosted under chess.sethpc.xyz/duplicate/ as a third game-mode card on
blind_chess. With base='/', Vite emitted absolute /assets/... URLs that
would fall through the Caddy /duplicate/* handler and 404 against the
blind_chess Fastify backend. Setting base='/duplicate/' keeps every asset
fetch inside the static handler.
2026-05-19 18:07:23 -04:00

Duplicate Chess

A local, single-operator browser sandbox for duplicate chess — a four-player chess variant invented by Andrew Freiberg. Four players (North, South, East, West) and four boards (NW, NE, SW, SE); each player controls one colour on two boards and must play the identical move on both. A captured piece leaves a frozen "ghost" twin on the player's other board.

This tool puts all four boards on one screen as a rotated "compass", enforces the synchronized-move coupling, renders ghosts, shows the move-legality intersection, and detects the endgame.

Develop

pnpm install
pnpm dev      # run the dev server
pnpm build    # production build
pnpm test     # run the engine test suite (vitest)

pnpm exec svelte-check --tsconfig ./tsconfig.json typechecks the Svelte/TS code.

Design

See docs/superpowers/specs/2026-05-19-duplicate-chess-design.md for the full design, and docs/superpowers/plans/2026-05-19-duplicate-chess-sandbox.md for the build plan.

This is v1 — a local sandbox. Networked multiplayer, AI opponents, and a free position editor are explicitly out of scope (see the spec, §7).

S
Description
Local browser sandbox for duplicate chess — a four-player coupled-board chess variant
Readme 166 KiB
Languages
TypeScript 67.4%
Svelte 31.2%
HTML 0.8%
CSS 0.4%
JavaScript 0.2%