9de8ee40b302dd5952d8208bb9c46f441426e15a
The rules a character is made of, with no screen attached. Races, callings and skills become static tables in code; blurbs stay content (hand-written, like items/), so the content BOM stops blocking the engine. The sheet stores only what was rolled or chosen and derives the rest — one source of truth, and the M5 level curve becomes a function change rather than a migration. Creation is seeded. The creation Dictionary carries a seed, not a stat block: construct reconstructs the RNG and rolls the attributes itself, so the same seed yields an identical character and the UI cannot inject a number. §10's seeding argument, applied where the races spec says it first matters. 3d6 with a hard floor of 8. Straight 3d6 puts a ~9% chance on a primary the +3 pool cannot rescue — a Hedge-Mage with a -1 MAG modifier is not grit, it is the "fine" §7 forbids, paid for twenty hours. Lands the two migrations the races spec said to do at M4 and not silently: class_id -> calling_id (the contract should say what the world says) and a required race_id, so api/app/prompts.py can render "a beastfolk cutpurse" instead of "a sellsword". Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QYa9u7Kdxv5gX4AnwWexy8
coc-rpg
AI-driven single-player, party-based fantasy RPG. Godot 4 client, FastAPI proxy, AI as Dungeon Master.
Read CLAUDE.md first — project charter and working agreement. It is the source of truth. If code disagrees with it, the charter wins until the charter is changed.
The one rule
Code owns state. AI owns text. (charter §2)
Repo layout
/client Godot 4.7 game client (GDScript) — ALL game state, ALL game rules
/docs Client-specific docs (scenes, input, combat wiring)
/api FastAPI proxy — auth, metering, prompt routing, logging (charter §4)
/docs API-specific docs (endpoints, model routing, deploy)
/prompts Role prompts — source code, versioned, reviewed (charter §5, §16)
/content Authored game data — quests, NPC knowledge lists, fallback text
/quests Story skeletons and quest definitions
/npcs Per-NPC knowledge lists (charter §6 — "the whole design")
/fallback Authored degraded-DM text for every AI surface (charter §13)
/docs Cross-cutting docs — roadmap, ADRs, planning affecting both sides
/adr Architecture Decision Records
The three processes (charter §4)
client (GDScript) ──HTTP──▶ api (FastAPI) ──▶ Replicate / Ollama
The client holds no API key, ever. It knows one base URL and a set of role endpoints. It sends game state, receives text.
Description
Languages
Text
100%