rust-source-of-truth.md: add the "two-path divergence" rule to the canonical content store section. Content reaches the sim two ways — in-game (GDScript DataLoader reads JSON at runtime, projection.rs:41) and headless (Rust falls back to a compile-time include_str!/hardcode copy, dispatch.rs:410). A balance constant hardcoded in a crate is both a Rail-2 violation and a silent second copy that drifts from the JSON — and headless is where the AI trains. Rule: grep public/resources + public/games/**/data for a JSON home before adding a numeric balance const; if it exists, LOAD it (OnceLock+include_str!, never std::fs in shared sim code). References the p3-28 ContentRegistry endgame. p3-28: add the matching "Rail-2 verify gate (enforcement)" acceptance bullet — tools/check-no-rust-hardcoded-content.py + a verify step to catch the next hardcode, best landed alongside the ContentRegistry. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| agents | ||
| hooks | ||
| instructions | ||
| plans | ||
| projects/-var-home-lilith-Code--projects--magic-civilization/memory | ||
| skills/finish-game-1 | ||
| worktrees | ||
| launch.json | ||
| settings.json | ||
| settings.local.json | ||