aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/CLAUDE.md
diff options
context:
space:
mode:
authorgodosa <godosa@godosa.eu>2026-10-06 23:39:36 +0200
committergodosa <godosa@godosa.eu>2026-10-06 23:39:36 +0200
commit39066900773e7857faf2d02e7ed51b71d219d97d (patch)
treeffab8e4ddd971626776c3b1f4ce1da2c186c2187 /CLAUDE.md
downloadgodosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.tar.gz
godosa-engine-39066900773e7857faf2d02e7ed51b71d219d97d.zip
godosa-engine: initial public history
Diffstat (limited to 'CLAUDE.md')
-rw-r--r--CLAUDE.md24
1 files changed, 24 insertions, 0 deletions
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/<topic>`), not in the main tree; ff-merge to `master` when green.
+
+## Where
+`src/Godosa.*` · `scripts/` · `docs/notes/`.