Built from main at 1d902a0 on 2026-11-14

OpenAPI/AsyncAPI

Two formats recognised by intent: a YAML or JSON file whose top-level key is openapi (or swagger, the 2.0 name) is an OpenAPI description, one whose key is asyncapi an AsyncAPI description. The files stay YAML or JSON, the Data format's. A CI job works with the ecosystem when it runs spectral, redocly, vacuum, swagger-cli or the AsyncAPI CLI, or the stoplightio/spectral-action action.

schema-validation

CI lints the description against its specification: spectral (spectral lint, with a ruleset in .spectral.yaml, which it does nothing without; or stoplightio/spectral-action), redocly (redocly lint; redocly.yaml), vacuum (vacuum lint), swagger-cli validate, openapi-generator-cli validate; for AsyncAPI, spectral or asyncapi validate.

static-analysis

The same linters: a lint of an API description is its validation and its analysis at once.

schema-declared

Every description declares its specification version (openapi, or asyncapi) and its own (info.version). A Swagger 2.0 description (swagger: "2.0") warns: OpenAPI 3.0 superseded it.

schema-examples

The description's examples are checked against their schemas by spectral (oas3-valid-media-example, oas3-valid-schema-example, in spectral:oas; the AsyncAPI ruleset's example rules), redocly (no-invalid-media-type-examples) or vacuum, or for real by contract tests: schemathesis run (or st run), dredd. Warns when CI checks none.

schema-compatibility

CI checks an OpenAPI description for breaking changes against the main branch's: oasdiff breaking <base> <revision> (oasdiff diff and changelog only report), the oasdiff/oasdiff-action/breaking action with its base and revision, or openapi-diff with --fail-on-incompatible. Warns when CI checks nothing. The AsyncAPI CLI's diff reports breaking changes without failing on them, so AsyncAPI is not asked.

Not judged

The other checks have no tool for a description and are skipped.