What to build
A conformance gate that checks the running API actually behaves the way its spec now claims.
The existing export drift gate proves the committed spec matches springdoc output, and oasdiff proves changes are non-breaking — but nothing checks that a malformed body really returns 400, that an unknown id really returns 404, or that no undeclared status codes escape. Once the specs declare their error contract, that becomes checkable.
Read-only operations are fuzzed on pull requests, so the gate is fast and deterministic and never writes. The full suite, including mutations, runs on a schedule and files issues rather than blocking a merge — property-based fuzzing of write paths against a real database is where flakiness comes from, and a flaky gate gets ignored.
Acceptance criteria
Blocked by
- The three service error-contract trackers
What to build
A conformance gate that checks the running API actually behaves the way its spec now claims.
The existing export drift gate proves the committed spec matches springdoc output, and
oasdiffproves changes are non-breaking — but nothing checks that a malformed body really returns 400, that an unknown id really returns 404, or that no undeclared status codes escape. Once the specs declare their error contract, that becomes checkable.Read-only operations are fuzzed on pull requests, so the gate is fast and deterministic and never writes. The full suite, including mutations, runs on a schedule and files issues rather than blocking a merge — property-based fuzzing of write paths against a real database is where flakiness comes from, and a flaky gate gets ignored.
Acceptance criteria
agents-apiwrite fuzzing never runs against a live clusterBlocked by