From 1037ea2bf7f10abdda1c4f92eb7dd903ced4c509 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Wed, 4 Mar 2026 23:16:22 +0100 Subject: [PATCH] docs(meta): add testing preferences to CLAUDE.md Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 85ad78625..de4e61a1d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -61,6 +61,13 @@ The ticketing database (`settledreach.db`) lives in the **parent directory** sha | Doc search | `tooling/db/qdrant-search "query"` | `/docs-search` skill | | Doc index | `tooling/db/qdrant-index path/to/file.md` | `/docs-search` skill | +### Testing preferences + +- **Prefer live Gauntlet testing over mocks.** For visual tests and rendering verification, use the full client/server pipeline (`--test-mode` + `SR_LIVE=1`) instead of TestHarness mocks. The Gauntlet test world produces production-identical data. Mocks can mask rendering bugs by taking different code paths. +- **Gauntlet rooms are immutable.** Never modify existing rooms — new systems get new rooms. This ensures StableId determinism and fixture stability. +- Three test tiers: (1) Live server — highest fidelity, (2) MessagePack replay via `Protocol.decode_snapshot()` — for unreachable rooms, (3) TestHarness mock — for UI-only tests where fog data doesn't matter. +- `make fixtures-gauntlet` regenerates real server snapshot fixtures from the Gauntlet world. + ### File conventions - Decisions: domain files in `decisions/` (see `decisions/README.md` for index) - Decision IDs: `D-NNN` (confirmed), `Q-NNN` (open questions), `R-NNN` (rejected)