From 39066900773e7857faf2d02e7ed51b71d219d97d Mon Sep 17 00:00:00 2001 From: godosa Date: Tue, 6 Oct 2026 23:39:36 +0200 Subject: godosa-engine: initial public history --- CLAUDE.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 CLAUDE.md (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..e8ee1b2 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,24 @@ +# CLAUDE.md — godosa-engine + +Shared engine library for Avalonia + Silk.NET games. Terse everywhere. +Private notes (tasks, specs, catalog) are kept outside this repo; never add them here (see `.gitignore`). + +## Rules +- Lib knows no game: no game types, game names, env var names or settings classes. The game passes values in + or implements a small interface (`IAudioMix`, key-target `Func`, env var name via `Configure`). +- `Godosa.Core` = pure .NET, tested. `Godosa.Desktop` / `Godosa.Audio` / `Godosa.Gamepad` = Avalonia+GL, OpenAL, SDL glue. +- `public` for anything a game uses. Warnings are errors. Package versions only in + `Directory.Packages.props`, equal to the games' (Avalonia 12.1.2, all Silk.NET 2.23.0). +- New tests mutation-checked: `scripts/mutate.sh` = KILLED. +- Breaking API is allowed: the games adapt when they take the update. + +## Build / test (≈ 10 s) +`dotnet build Godosa.slnx` (0 warnings) · `dotnet test Godosa.slnx` · `python3 -m unittest discover -s scripts -p 'test_*.py'`. +From a game: its solution includes the lib projects, so its `dotnet test` runs the lib tests too. + +## Git +- Branch `master`. Games use this repo as the submodule `lib/godosa-engine`. +- Work in a git worktree on a branch (`.worktrees/`), not in the main tree; ff-merge to `master` when green. + +## Where +`src/Godosa.*` · `scripts/` · `docs/notes/`. -- cgit