Spectral is a good document linter and it is free. It is also the ceiling: a ruleset can only ever ask questions the document can answer about itself.
Karate runs its own deterministic rulepack and then grades the execution evidence behind the document, into a ship verdict and a maturity level.
The Short Version
Conversion onto an engine whose rules can also read your coverage graph. Shipping this quarter.
Existing Spectral or vacuum output ingested as evidence rather than discarded. Shipping this quarter.
Rules that read your coverage graph and contract-test results, graded into a verdict. Available today.
Side by Side
| Capability | Karate | Spectral |
|---|---|---|
| Lints an OpenAPI document | Yes | Yes |
| Custom rulesets | Yes | Yes, and widely adopted |
| Severity, JSON pointer and line on findings | Yes | Yes |
| Deterministic, no model in the result | Yes | Yes |
| Was this operation ever called by a run | Yes, from the coverage graph | Not answerable from a document |
| Is this operation claimed by a requirement | Yes | Not answerable from a document |
| Did anything but a mock ever answer it | Yes | Not answerable from a document |
| Scored dimensions and a ship verdict | Five dimensions, three verdicts | Findings list |
| Named API maturity level | Six levels | Not in scope |
The rows where Spectral reads "not answerable from a document" are not shortcomings of the ruleset. The answers are simply not in the file, at any quality of rule.
Choosing
The honest summary: a document linter establishes that your API is well described. Nothing about a well-described API tells you it is exercised, and that is the gap the grade exists to close.