Core game built in a day — engine, backend API, web frontend
Single milestone commit shipped the product-agnostic game engine, an AI opponent with difficulty tiers, a versioned FastAPI backend, and a Next.js web frontend — plus dev-workflow slash commands.
The first real build of Ki Clash landed in one milestone commit (labeled "Phases 1-3" — the original prototype numbering, not the later May rebuild), followed by a few dev-workflow chores.
What shipped
Game engine. Core game logic lives in app/core/game_engine/ (engine.py, outcome_matrix.py, types.py), kept product-agnostic per the core-module separation rule.
AI opponent. Shipped with difficulty tiers as separate strategy implementations: app/core/ai_opponent/easy.py, medium.py, and hard.py over a shared base.py.
Backend API. A versioned FastAPI surface with auth, games, and players endpoints (app/api/v1/endpoints/), backed by SQLAlchemy models (match, player, round, turn) and an initial Alembic migration (a67ac29dd885_initial_tables.py). Domain logic was separated into services (game_service.py, player_service.py) sitting between the API layer and the models. Guest/JWT auth was included from the start (app/core/auth/jwt_handler.py, guest_auth.py).
Web frontend. A Next.js/TypeScript frontend with game UI components (GameBoard, ActionCard, KiMeter, MatchHUD, TurnReveal), a useGame hook, and an api.ts client.
Tests, deploy, and docs. Engine and AI opponent tests (tests/core/test_game_engine.py, tests/core/test_ai_opponent.py), deployment scaffolding (Dockerfile, docker-compose.yml), and product docs (spec.md, architecture.md, tasks.md) were all part of the same milestone commit.
Dev workflow
cd2cf0cadded a task-pipeline rule toCLAUDE.md: complete one task → commit before the next.0d089daand6ca53e8set up and then refined the/tutorslash command for read-only, structured code explanations.1672de1added the/shipslash command and updated/tutorwith an English-coaching style, plus a web README and gitignore.
Commits
0512942— feat: implement game engine, backend API, and web frontend (Phases 1-3)cd2cf0c— docs: add task pipeline rule to CLAUDE.md0d089da— chore: add /tutor slash command for read-only code explanations6ca53e8— docs: improve tutor slash command with structured explanation format1672de1— chore: add ship command and update tutor with English coaching style