Files
claude (blind_chess) a6de43edc1 feat: implement and deploy blind_chess MVP
- pnpm workspace: shared/server/client packages
- Server: Fastify+ws, chess.js, FSM (touch-move + hierarchy),
  per-player view filter, zod validation, rate limiting, grace-window
  disconnect handling
- Client: Svelte 5 + Vite, click-to-move board, moderator panel,
  promotion/draw dialogs
- Shared: protocol types, ModeratorText enum, geometricMoves helper
  (provably zero opponent-info leak)
- 43 tests pass (21 shared, 22 server incl. 4 real-WS integration)
- Deploy: CT 690 on node-241 (192.168.0.245), systemd-managed,
  Caddy block for chess.sethpc.xyz
- Live at https://chess.sethpc.xyz

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:20:18 -04:00

2.6 KiB

Handoff: blind_chess Kickoff (2026-04-28)

What was done

Project scaffolded per ~/bin/CREATE_PROJECT.md:

  • ~/bin/blind_chess/ directory created
  • .claude/handoffs/ initialized (this is the first entry)
  • GITEA_API.md symlinked to ~/bin/GITEA_API.md
  • IDEA.md created with empty template (Seth populates manually before next session)
  • DECISIONS.md created from local template
  • CLAUDE.md created with minimal stub pointing at IDEA.md as source of truth

No code, no repo, no deploy target yet. Project is in pure ideation.

Current State

  • Phase: ideation, pre-IDEA.md
  • Repo: none
  • Branch: n/a
  • What's running: nothing

Next Steps (ordered)

1. Read IDEA.md first. Seth has populated it manually with the project brief between this session and the next. It is the authoritative source for what blind_chess is and what it should do. Do not skip — CLAUDE.md's "Project Identity" section is intentionally empty and will be filled in after IDEA.md is read.

2. Update CLAUDE.md. Distill IDEA.md into:

  • A real one-line tagline (replace "Tagline TBD")
  • A one-paragraph "Project Identity" section (stable, won't change session-to-session)
  • Initial entries in "Current State" if any decisions emerged from IDEA.md (e.g., language choice, deploy target)

3. Capture early decisions in DECISIONS.md. Anything Seth committed to in IDEA.md (language, framework, deployment, naming, scope boundaries) goes into DECISIONS.md under Architecture or Implementation. Format: YYYY-MM-DD: <decision> — <why>. Include rejected options under "Deferred / Rejected".

4. Brainstorm before building. If IDEA.md leaves architecture or approach open, do not jump to implementation. Use the superpowers:brainstorming skill — explore intent and design first. Get Seth's confirmation on direction before code.

5. Decide on Gitea repo. The scaffold's optional step 6 (git init + Gitea push) was skipped. Once direction is clear, propose creating a Gitea repo via the gitea CLI:

cd ~/bin/blind_chess
git init
gitea create blind_chess
gitea remote blind_chess
echo "GITEA_API.md" >> .gitignore
git add -A && git commit -m "init: scaffold project" && gitea push

Open Questions

  • None yet — IDEA.md will surface these.

Notes for the next session

  • Project name spelled blind_chess (underscore, not hyphen). Convention in ~/bin/ is hyphen, but underscore was Seth's explicit choice — likely for Python module compatibility. Don't auto-rename.
  • Inherits all global homelab conventions from ~/bin/CLAUDE.md. No need to duplicate them here.