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>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user