feat(who): add character dossier system for staged fact disclosure

Pre-researched dossiers (37 JSON files, DE+EN) replace the old
personality strings as the source of truth for the Who guessing game.
A strong cloud LLM (Gemini 2.5 Flash) generates structured facts per
character — voice, values, achievements, anecdotes, relationships,
forbidden-early-words, and three-stage hints — so the small runtime
model (gemma3:4b) gets only what it needs per turn instead of raw
personality text that leaks the identity immediately.

- dossier-types.ts: Zod schema + TS types for CharacterDossier
- dossier-loader.ts: boot-time loader with validation + coverage report
- generate-who-dossiers.ts: one-shot generator script (Google Gemini
  or local mana-llm fallback, idempotent, --force/--id flags)
- 37 dossier JSON files in data/dossiers/

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-10 17:40:16 +02:00
parent 734f149596
commit e77ae5d5eb
41 changed files with 5613 additions and 1 deletions

View file

@ -10,5 +10,5 @@
"rootDir": "src",
"types": ["bun-types"]
},
"include": ["src/**/*.ts"]
"include": ["src/**/*.ts", "scripts/**/*.ts"]
}