Files
duplicate_chess/CLAUDE.md
T
claude (duplicate_chess) 9611c0ae0e init: scaffold duplicate_chess project and design spec
Local browser sandbox for "duplicate chess" — a four-player coupled-board
chess variant invented by Andrew Freiberg. Scaffold per CREATE_PROJECT.md
plus the approved design spec from this session's brainstorming.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 00:08:50 -04:00

2.1 KiB

Duplicate Chess

Local browser sandbox for "duplicate chess" — a four-player coupled-board chess variant.

Start Here

Read the latest handoff first: .claude/handoffs/ (most recent file). It has session state, in-progress work, and ordered next steps.

Then check IDEA.md for the project brief, DECISIONS.md for settled choices, and docs/superpowers/specs/2026-05-19-duplicate-chess-design.md for the full design.

Project Identity

A digitization of "duplicate chess," a four-player chess variant invented by Andrew Freiberg (Seth's father — also the inventor of the blind-chess variant behind the sibling blind_chess project). 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 algebraic move on both. A captured piece leaves a frozen, capturable "ghost" twin on the player's other board. Every individual board always remains a legal game of orthodox chess.

This project is a local, single-operator sandbox/visualizer: one screen, all four boards, an engine that enforces the synchronized-move coupling, renders ghosts, and detects the endgame. Its purpose is to let the variant be seen and studied — the 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).
  • 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.

Conventions

  • Inherits homelab conventions from ~/bin/CLAUDE.md (gitea CLI, conventional commits, .claude/handoffs/ for session state).
  • The engine (src/engine/) is DOM-free and the single source of truth for game state. The UI never computes legality itself.
  • Provisional endgame rules are marked PROVISIONAL in the spec — they are Claude's chosen defaults, not Andrew's rulings. Flag them if revisited.