Spectral
Stoplight社が開発するOSSのJSON/YAMLリンター。OpenAPI (v3.1, v3.0, v2.0)、Arazzo v1.0、AsyncAPI v2.xの組み込みサポートを持つ。汎用ルールセットエンジンとして任意のJSON/YAMLに使えるが、OpenAPI/AsyncAPI/JSON Schemaを念頭に設計されている。
仕組み: given / then / severity
ルールは3要素で構成される。
given— JSONPath Plusでドキュメント内のチェック対象要素を指定then—field(対象内のどのフィールドか)・function(assertion内容)・functionOptionsで検証内容を指定severity—error/warn/info/off
組み込みルールセットはextends: ["spectral:oas", "spectral:asyncapi", "spectral:arazzo"]のように参照する。.spectral.ymlをリポジトリルートに置いて設定するのが通例。カスタムルールセットは配列にファイルパス・npmパッケージ・CDN URLを追加でextendsできる(例: OWASP APIセキュリティ観点のルールセット@stoplight/spectral-owasp-ruleset)。
CLI
spectral lint myapifile.yaml --ruleset myruleset.yaml
CI/CD
公式GitHub Action stoplightio/spectral-action が提供されており、リポジトリの.spectral.ymlを尊重してPR上でチェックできる。
Stoplightエコシステムとメンテナンス状況
SmartBearが2023年8月にStoplightを買収し、Spectral・Elements・Prismを自社OSSポートフォリオ(Swagger、SoapUI、Pact)に統合した。買収後はSpectralをSwaggerHubに統合する方向で開発が続いている。公式リポジトリstoplightio/spectral自体は買収後も存続・開発継続している。
他リンターとの関係
Redocly CLIも同種のlint機能を持ち、公式に「Spectralからの移行ガイド」を提供している。両者は競合関係にある。
出典
- GitHub: stoplightio/spectral
- Spectral - Stoplight
- Spectral rulesets - GitHub docs
- Spectral OpenAPI Linting Guide 2026 - QASkills
- GitHub: stoplightio/spectral-owasp-ruleset
- GitHub: stoplightio/spectral-action
- SmartBear to Acquire API Company Stoplight - SD Times
- Elevating API Development with Stoplight - SmartBear Blog
- SmartBear Integrates Stoplight’s Spectral, Elements and Prism into SwaggerHub - DevOpsDigest