Aetheria/CLAUDE.md
Meta Vens c6430c93e4 Make AetherDb the agent's data tool in project doctrine
Missing catalog or save capabilities are added to AetherDb as commands,
not written as scratch projects, loose scripts or byte readers. Records
the serializer options and the CultLib pin gate an agent hits on first use.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 00:08:34 +02:00

1.6 KiB

Aetheria agent doctrine

Data tooling: AetherDb

tools/AetherDb is the agent's tool for reading and writing Aetheria's CultCache stores (GameData/Aetheria.cc, run.cc, player.cc). The simulation lives in Aetheria.Shared (the headless build of Assets/Scripts/ServerShared) and needs no Unity; Unity is only the shell for graphics and input.

  • When a task needs a catalog or save capability AetherDb lacks (authoring or cloning designs, setting fields, fixtures for a play smoke, a query), add it to AetherDb as a command. Do not write a scratch console project, a loose .cs script, a Python or PowerShell reader of the .cc bytes, or a Unity editor script instead. Loose scripts were retired in 9f9149bd because they ran against stale schemas.
  • A command dry-runs by default and writes only with apply, validates with CultRecordRefs.Validate and commits in one CultCache.Commit batch, like the existing migrations in tools/AetherDb/Program.cs.
  • Deep copies of records use CultCache's own options, CultDocumentMessagePackSerialization.OptionsFor(typeof(ItemData).Assembly); MessagePack's standard options cannot serialise CultMath types or CultRecordRef.
  • The headless build refuses to compile unless CultLib is a clean checkout at the revisions pinned in Directory.Build.props (Directory.Build.targets enforces it). When F:\Projects\CultLib is elsewhere, point CULTLIB_ROOT and CULTMATH_ROOT at detached worktrees of those revisions; never move the shared checkout.
  • CultCache Studio is the operator's GUI over the same files. It is not an agent path.