diff --git a/CLAUDE.md b/CLAUDE.md index d0e9e231..45bc5f64 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -350,3 +350,9 @@ Hooks enforce these standards automatically on Write/Edit — they are not optio - Building/unit effects are data-driven from JSON — don't hardcode behavior - Always call `DataLoader.load_game("age-of-dwarves")` when running scenes directly - **NEVER use anime models for game art** — use `juggernaut-xl-v9`, `epicrealism-xl`, `illustrious-xl-v2` +- **NEVER write project state, scripts, or batch output under `/tmp` or `/private/tmp`** — reboots wipe them, flatpak sandboxes block writes to them, and comparing runs across sessions becomes impossible. Canonical locations: + - Shell scripts/runners → `scripts/` (in-repo, tracked) or `$HOME/bin/` (persistent per-host) + - Batch/iteration outputs → `.local/batches/` (in-repo, gitignored) or `$HOME/tmp/` (persistent per-host) + - Per-iteration diagnostic dirs → `.local/iter/` (in-repo, gitignored) + - Remote apricot paths → `$HOME/Code/@projects/@magic-civilization/.local/...` (mirror of repo layout) + - ONLY `/tmp` is acceptable for: genuine inter-process pipes (mkfifo), socket activation (.sock files), or Godot internal scratch the engine itself puts there. If you find yourself writing `/tmp/mc_*` or `/tmp/run_*`, STOP — use one of the paths above.