What problem does it solve? Generic testing templates often describe patterns that do not match a repository's actual conventions, producing tests that fail or test the wrong things. This Skill encodes the real API testing pattern for this repo: launching the actual server as a subprocess and making real HTTP calls with requests, rather than using FastAPI's in-process TestClient. ## Core Features & Use Cases - Live subprocess test pattern: Launch the server via subprocess.Popen, wait for startup, make real HTTP requests, and always terminate in a finally block. - Architecture-aware assertions: Assert on presenter-shaped response bodies, respecting the AST-enforced rule that API routes never expose raw domain models. - Cache invalidation awareness: Account for ReadModelCache and DirtySet-driven invalidation when testing endpoints whose data depends on recently changed entity state. - Use Case: When adding a new endpoint under src/api/routes/, generate a test that picks a free port, starts the server, verifies the presenter-shaped JSON response, and cleans up the subprocess reliably. ## Quick Start Write a test for the /api/v1/state endpoint following this repo's live subprocess testing convention.