# thoughts.md ## Current Status - Scaffold complete: `charactergarden/` folder structure created per spec section 9 - Core contracts defined in `app/src/types.ts`: Entity, Action, Verb, ValidationResult, StateChange, GameEvent, Turn, Belief, Summary - `docker-compose.yml` created; ollama service gated behind `--profile llm` (not required for MVP) - `.env` created with defaults - Nothing is implemented yet — no logic, no database, no server ## Current Architecture Decisions - App: Node.js + Fastify + TypeScript - Frontend: React + Vite + TypeScript - Database: better-sqlite3 (synchronous, no ORM) - Ollama is optional; system must work without it (per section 14) - `Event` type renamed `GameEvent` in code to avoid collision with the DOM `Event` global ## Next Steps 1. Implement Truth Engine (`app/src/truthEngine.ts`) — pure validation, no I/O 2. Add SQLite schema + db module (`app/src/db.ts`) with the 5 tables from section 7 3. Implement App service / turn flow (`app/src/index.ts`) per section 6 4. Add Fastify route `POST /turn` that executes the full pipeline 5. Stub LLM adapter (`app/src/llmAdapter.ts`) with a fallback parser ## Open Questions - Should room/location be an Entity attribute or a separate entity type? - What is the initial world state for the MVP (1–2 rooms, ≤3 characters)? ## Session Notes - 2026-04-23: Project started. Scaffold and type contracts created. No logic yet.