30 lines
1.4 KiB
Markdown
30 lines
1.4 KiB
Markdown
# 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.
|