ccff2fdbf2bdc5928f4a2b5743fcdf3c87866992
The repo lives on a Gitea server and CI/CD is a long way off, so .github/workflows/content-build.yml never ran. A workflow nobody executes is worse than none: it read as a safety net that wasn't there. Removing it moves the `--check` gate somewhere real. It is now enforced by tools/content_build/tests/test_real_content.py, which runs check() against the live bible under pytest — so the gate is a test you actually run, not a job that never fired. The world-building skill's verify step now says plainly that nothing runs these for you, and adds the client suite to the checklist: content/world/ is a CLIENT INPUT (content_db.gd loads it, test_content_db.gd asserts on it), so a content change can break the client. That is exactly what the Duncarrow purge did, and with no CI there is nothing else to catch it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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%