chore(post-UAT): revive openapi-contract-testing plan after September 2026 UAT
The openapi-contract-testing plan (6 steps) was flipped to Deferred (post-UAT) on 2026-04-27 — APIs are still evolving pre-UAT and a strict contract gate would block iteration. This issue is the tracker so the plan does not disappear at archive time.
Why deferred
Pre-1.0 contract stability is undesired (.claude/docs/git-workflow.md — breaking changes are permitted pre-1.0 and documented in CHANGELOG). A breaking-change CI gate is premature until the SNAP UAT (September 2026) freezes the API surface for jurisdictions evaluating Canopy.
When to revive
Pick this back up the first time any of these become true:
- SNAP UAT entry passes (post-September-2026)
- A jurisdiction outside Georgia integrates against Canopy and depends on schema stability
- The first stable tag (1.0.0) is cut
- CI catches a real breakage that could have been caught by contract tests
Scope when revived
The plan's 6 steps:
- Set up
oasdiff(or equivalent) tooling - Add per-service OpenAPI dump command
- Generate baseline snapshots checked into
tests/openapi-baselines/ - CI job that diffs current OpenAPI against baseline and fails on breaking changes
- Documentation: how to update baselines on intentional breaks
- Roll out to all 12 services with utoipa decorators
References
- xref:plans/openapi-contract-testing.adoc[openapi-contract-testing plan] (all 6 steps — Deferred (post-UAT))
- xref:plans/archive/operational-infrastructure.adoc[operational-infrastructure plan]