Governance & Lint
A Spectral-style, governance-as-code policy gate over your contract: naming consistency, date-time and enum hygiene, required-field correctness, example coverage, ownership and lifecycle, plus cross-environment policy drift — each finding actionable, each rule enforceable.
6 active finding(s) across 2 categories, under 9 enforced policies.
- Naming consistencypass
Path casing, parameter & property naming, and collection plurality follow one convention.
- Date-time modellingpass
Temporal fields use a proper date / date-time format, not free-form strings.
- Enum governancepass
Enums use one casing style, declare defaults, and resolve nullability.
- Required-field correctnesspass
Path parameters and write bodies declare required fields accurately.
- Example coverage5
Operations and schemas ship usable examples for docs and test data.
- Lifecycle & deprecationpass
Deprecated endpoints carry a sunset notice; lifecycle is coherent.
- Ownership & inventorypass
Every API and endpoint has a named owner — no shadow / orphan surface.
- Cross-environment policypass
Auth mode and key-enforcement are consistent across environments.
- Business-rule governance1
Mutating / error paths are governed by behavioural scenarios, not just schema.
- lowSchema ships no examplegov.examples.schema-no-example
Schema "OrderItem" (7 fields) has no example payload. Without examples, docs are harder to read and test-data generation is guesswork.
Fix: Add a representative `example` to "OrderItem" — it doubles as documentation and a scenario / mock seed.Pain-point#17#39 - lowSuccess response has no examplegov.examples.operation-no-example/orders
POST /orders returns 201 but ships no response example. Consumers cannot see the expected shape without calling the live API.
Fix: Attach at least one example to the success response of POST /orders (a Data Pack or generated mock can seed it).Pain-point#17 - lowSuccess response has no examplegov.examples.operation-no-example/orders/{id}
GET /orders/{id} returns 200 but ships no response example. Consumers cannot see the expected shape without calling the live API.
Fix: Attach at least one example to the success response of GET /orders/{id} (a Data Pack or generated mock can seed it).Pain-point#17 - lowSuccess response has no examplegov.examples.operation-no-example/orders/{id}
PATCH /orders/{id} returns 200 but ships no response example. Consumers cannot see the expected shape without calling the live API.
Fix: Attach at least one example to the success response of PATCH /orders/{id} (a Data Pack or generated mock can seed it).Pain-point#17 - lowSuccess response has no examplegov.examples.operation-no-example/orders/{id}/fulfill
POST /orders/{id}/fulfill returns 202 but ships no response example. Consumers cannot see the expected shape without calling the live API.
Fix: Attach at least one example to the success response of POST /orders/{id}/fulfill (a Data Pack or generated mock can seed it).Pain-point#17
- medium3 mutating endpoint(s) have no behavioural scenariogov.business.mutation-no-scenario
Schema validation does not capture business rules — which input yields which status code or downstream effect. These mutating endpoints have no scenario: POST /orders, PATCH /orders/{id}, POST /orders/{id}/fulfill.
Fix: Author at least one scenario (happy-path + a validation/error path) per mutating endpoint so business behaviour is governed, not just the schema shape.Pain-point#6#5#8