## Problem OpenAPI generated only at runtime. ## Why Docs tools need offline generation. ## Outcome `make openapi-export` writes `docs/openapi.snapshot.json` without running uvicorn. ## Acceptance - [ ] Snapshot regenerable offline ## Files - `Makefile` (NEW) - `scripts/export_openapi.py` (NEW)
Problem
OpenAPI generated only at runtime.
Why
Docs tools need offline generation.
Outcome
make openapi-exportwritesdocs/openapi.snapshot.jsonwithout running uvicorn.Acceptance
Files
Makefile(NEW)scripts/export_openapi.py(NEW)