review-spec-support
Skill29k starsChanged 6 days agoApache-2.0View on GitHub
Reviews a Swagger UI branch or PR that adds OpenAPI version support or a new OAS field (oas3x plugins) or standalone JSON Schema rendering, against the official specification rather than against the author's intent - checks that the PR holds one thing (basic support with parity only, or one feature or breaking change), that every in-scope field or keyword is implemented with the spec's type and semantics, that fields presented as new really are new, version gating (older versions unaffected), integration points (detection, pragma filter, isOAS3, renderer wiring, resolve strategy, preset, exports, config), dialect and schema URLs, and test quality, then reports findings with a spec citation each. Use for "review my OAS 3.x branch", "check this PR against the spec", "is this field implemented correctly", and as the fresh-context review gate of add-oas-support and add-json-schema-support, even if the user doesn't name this skill.
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 4 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 28
Treat the tracking doc as the author's claim, not as truth: its field map is one of the things under review.
- Very specific: line 47
JSON Schema: use ../add-json-schema-support/references/dialects.md for the draft's specification documents and meta-schemas.
- Distinctive: line 52
Every finding later quotes a row or sentence from this phase.
- Distinctive: line 59
Run the mechanical checks and turn their output into findings:
- Very specific: line 72
Read ../add-oas-support/references/review-lessons.md first.
- Distinctive: line 110
Use this structure; include only sections with findings, and number findings so the author can reply to each.
- Very specific: line 142
Every finding cites a spec section (URL with anchor) and quotes the row or sentence it relies on.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Review Spec Support
A reviewer that knows only the spec, the version and the branch. It's meant to run in a fresh subagent so that it doesn't inherit the author's assumptions: the reviews of OAS 3.2 found fields that were "new" only in the author's head, features wired for the parent version but not the new one, and tests that passed without exercising the change.
The defect classes this review hunts are listed, with the evidence for each, in
../add-oas-support/references/review-lessons.md. Read it before Phase 3.
Inputs
Infer what you can and state what you inferred at the top of the report. Ask only when running interactively and something can't be inferred.
| Input | Default source |
| Kind | OAS version (src/core/plugins/oas3x in the diff) or JSON Schema draft (a JSON Schema plugin, ADD-JSON-SCHEMA-*.md) |
| Version or draft | branch name, plugin name, tracking doc |
| Branch and base | current branch, main |
| Scope | the PR's rows of the tracking doc (ADD-OAS-*.md / ADD-JSON-SCHEMA-*.md) if one exists; otherwise every field the diff touches |
Treat the tracking doc as the author's claim, not as truth: its field map is one of the things under review.
Phase 1: The Spec, Independently
Build your own list of what the version requires before reading the implementation.
- OAS: diff the version's latest patch against its parent's (list the files with
https://api.github.com/repos/OAI/OpenAPI-Specification/contents/versions):
It reads both versions' Fixed Fields tables and listsnode .claude/skills/add-oas-support/scripts/diff-spec-versions.mjs {parent x.y.z} {x.y.z}NEW,REMOVED,CHANGED-TYPE,CHANGED-REQUIREDandREVIEWrows (a changed description, with added and removed value tokens). For each object in scope, read the rows in the raw markdown (https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/versions/{x.y.z}.md) to quote them, and triage theREVIEWrows yourself. Record per field: name, type (including allowed values and formats), required, status, and whether a parent-version document keeps its meaning (breaking or not). - JSON Schema: use
../add-json-schema-support/references/dialects.mdfor the draft's specification documents and meta-schemas. Keywords come from the vocabulary meta-schemas (2019-09 on) or the single meta-schema, and their shape and meaning from the specification text.
Every finding later quotes a row or sentence from this phase. A finding without a quote from the spec is not admissible: drop it or mark it as a question.
Phase 2: The Implementation Map
git diff --stat {base}...HEADand the full diff ofsrc/,test/,README.md,docs/,flavors/.- Run the mechanical checks and turn their output into findings:
Without a tracking doc, write a minimal field map of the in-scope rows from Phase 1 into a file outside the repository and run the coverage script on it.node .claude/skills/add-oas-support/scripts/check-plugin-conventions.mjs --base {base} node .claude/skills/add-oas-support/scripts/verify-urls.mjs --diff {base} node .claude/skills/add-oas-support/scripts/check-field-coverage.mjs {tracking-doc} --plugin {plugin dir} --scope "PR {n}" - For each in-scope field, find where it's read (selector or component) and where it renders or affects a request.
Phase 3: Checks
Read ../add-oas-support/references/review-lessons.md first. For OAS, also keep
../add-oas-support/references/integration-points.md open; for JSON Schema,
../add-json-schema-support/references/renderer-architecture.md.
- 3.0 PR scope. The PR holds one thing: basic support implements no
NEWrow (parity with the parent version only, proven by parity specs); a feature PR implements one feature (rows grouped only when they can't ship apart) and no unrelated refactor or fixture rewrite. Compare the diff with the tracking doc's PR plan; a second feature is a finding ("split into its own PR"). - 3.1 Field set. Every in-scope NEW / CHANGED-TYPE / MOVED field of Phase 1 is implemented, and
nothing presented as new (code comments, plugin header, PR text, tracking doc) is
INHERITED from the parent. Fields the author marked
deferred/outhave a reason that holds. - 3.2 Semantics. The implementation matches the spec's type and wording: value shape
(map vs array vs object), allowed values, defaults, case sensitivity, MUST/MUST NOT rules,
interactions with existing fields (inheritance from the Path Item,
$refsiblings). - 3.3 Version gating. New behaviour runs only for the new version: factories, not hand-written guards; no changes to shared constants that older versions read. An older version document has a test proving it's unaffected. For a breaking change (major), both a parent-version and a new-version document render with their own meaning.
- 3.4 Integration points. Each applicable item of the integration-points list is done,
for the new version and not only for the parent: detection,
isOAS3widening, pragma filter and layout props, renderer wrappers, after-load routing, resolve strategy inresolveandresolveSubtree, preset order,SwaggerUI.plugins, config defaults with docs and React props, README. JSON Schema: detection excludes OAS documents, the dialect instance doesn't take the OASfnoverrides. - 3.5 URLs. Dialect and schema ids match the spec text and
https://spec.openapis.org/oas/(OAS) or the meta-schema$id(JSON Schema); anchors exist. - 3.6 Tests. Unit tests for detection and selectors (including the gated-off case); Playwright specs that execute Try-it-out for request-changing features and assert the request; fixtures containing every in-scope field; new tests in TypeScript and picked up by the runner.
- 3.7 Code shape. Wrap rather than copy; no cross-plugin imports; no dead selectors or
wrappers; memoized selectors; data read from
specJsonWithResolvedSubtreeswhere it may be behind a$ref.
Phase 4: Report
Use this structure; include only sections with findings, and number findings so the author can reply to each.
## Spec Support Review: {OAS x.y.z | JSON Schema {draft}} on {branch}
Inputs: {kind, version, base, scope, tracking doc} ({inferred from ...})
### Verified correct
- {what was checked and holds, with the spec row}
### Findings
| # | Class | File:line | Problem | Spec says | Source |
|---|-------|-----------|---------|-----------|--------|
| 1 | 3.1 field set | src/core/plugins/oas3Y/index.js:42 | header lists Info.summary as new in 3.Y | 3.1.0 Info Object already has `summary` | {URL}#info-object |
### Script results
- check-plugin-conventions: {n} errors, {n} warnings ({codes})
- verify-urls: {n} broken, {n} unverified
- check-field-coverage: {n} rows, {n} with gaps
### Questions
- {things that need the author's intent; no spec quote}
### Summary
| Class | Findings |
|-------|----------|
| 3.0 PR scope | n |
| 3.1 Field set | n |
| ... | |Every finding cites a spec section (URL with anchor) and quotes the row or sentence it relies
on. Findings the scripts produced cite the script code (DIALECT, CROSS-IMPORT, ...) instead.
Trending
More talk lately.about the whole repository
Who's talking about swagger-api/swagger-ui
- Devoxx“Generate client stubs & document your REST-API using Swagger & Spring by Johannes Fiala”YouTube · Nov 11, 2015 · 45k views
- Ryan Hay“What is an Operator? Kubernetes & OpenShift Operators Explained.”YouTube · Nov 8, 2020 · 24k views
- Jorge Cardona“Crear Api Rest JaxRs 2.1, Maven, Swagger, Git”YouTube · Jun 4, 2020 · 3.1k views
- Thales Bento“Laravel 9 - Api Sanctum + documentação Swagger Php [Parte 2]”YouTube · Jan 28, 2023 · 2.6k views
- IngSystemCix“Cómo Estructurar un Proyecto PHP Puro como un PRO (Sin Frameworks)”YouTube · Aug 23, 2025 · 830 views
The biggest 5 of 75 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 75
Talked about on Stack Overflow, GitHub, YouTube, Bluesky and the web (75 times).
On Stack Overflow · 30
- May 16, 2016Swagger: map of <string, Object>66 votes
- Jul 10, 2015Can Swagger autogenerate its yaml based on existing express routes?63 votes
- Nov 28, 2015Swagger UI - How can I expand all the operations by default?59 votes
- Mar 16, 2017How to refer to enclosing type definition recursively in OpenAPI / Swagger?41 votes
- Jul 18, 2017Swagger UI - " TypeError: Failed to fetch" on valid response32 votes
25 more on Stack Overflow
- Jan 23, 2017Multi-level (nested) tagging in Swagger UI28 votes
- May 20, 2015How to send Authorization header with a request in Swagger UI?24 votes · 4 answers
- Aug 29, 2018What is the difference between SwaggerUIBundle, and SwaggerUi23 votes · 2 answers
- Nov 24, 2018What is the difference between SwaggerUIBundle, and SwaggerUi18 votes
- Sep 16, 2017How to run swagger-ui with local code changes AND my own swagger.json?18 votes · 8 answers
- Apr 30, 2019Disable "Try It Out" in Swagger17 votes · 5 answers
- Sep 2, 2022Could not resolve pointer: /components/schemas when nested model and custom schema Ids16 votes
- Dec 10, 2018How to generate a static html file from a swagger documentation?14 votes
- Oct 16, 2019Generate static docs with swagger13 votes
- May 30, 2020How to add Header with Authorization for springdoc-openapi endpoint calls11 votes
- Feb 1, 2018How to open Swagger-ui from vert.x11 votes
- Dec 1, 2017Cutomize Swagger UI ASP.NET Core Web API11 votes · 3 answers
- Aug 2, 2017Converting Swagger specification JSON to HTML documentation11 votes
- Apr 7, 2015How to integrate swagger-ui in my application11 votes
- Apr 24, 2018Swagger UI add curl custom parameters10 votes
- Mar 1, 2018Issue Using Custom Index.Html in Swagger / Swashbuckle for .NET Core10 votes · 2 answers
- Aug 2, 2020springdoc-openapi-ui OAuth 2.0 Authorization Code flow with PKCE9 votes
- Jun 9, 2020CSRF Support in springdoc-openapi swagger-ui9 votes
- Aug 7, 2017swagger: is ' Could not render this component, see the console' an error message or can it be ignored7 votes
- Jun 29, 2016Swagger Yaml schema definition for object without a fixed property list7 votes
- Jul 2, 2015Adding Basic Authorization for Swagger-UI7 votes
- Feb 21, 2015How to define a map in swagger?7 votes
- Apr 23, 2021OpenAPI swagger UI is not responding for large response6 votes
- Jan 18, 2021Weird "Could not resolve reference: undefined Not Found" messages in Swagger UI 36 votes
- Jul 14, 2016customize swagger-ui by adding a simple sidebar in the html6 votes · 1 answer
On GitHub · 28
- Oct 26, 2023📌 Pin Swagger UI version to 5.9.0 temporarily to handle a bug crashing it in 5.9.1 — fastapi/fastapi15 reactions · 5 comments
- Nov 11, 2025Add support for OpenAPI 3.2 — domaindrivendev/Swashbuckle.AspNetCore10 reactions · 5 comments
- Apr 3, 2021⬆️ Upgrade OpenAPI from 3.0.2 to 3.1.0 — fastapi/fastapi10 reactions · 10 comments
- Sep 10, 2017Fixes #1129 - allOf fix for $$ref values — swagger-api/swagger-client7 reactions · 3 comments
- Mar 4, 2021Remove Google fonts in Swagger UI — api-platform/core5 reactions
23 more on GitHub
- Oct 8, 2019Bump swagger-ui depdency — springfox/springfox5 reactions · 6 comments
- Mar 30, 2020Expose Swagger-UI in addition to API spec — paperclip-rs/paperclip3 reactions · 9 comments
- Aug 12, 2021webpack5: Add Buffer polyfill — backstage/backstage2 reactions · 2 comments
- May 27, 2021add tags and path sorting, add related docs — fastapi/fastapi2 reactions · 3 comments
- Jul 22, 2020📌 Pin Swagger UI — fastapi/fastapi2 reactions · 6 comments
- Apr 7, 2017WIP(swagger-ui): Upgrade to v3 — strongloop/loopback-component-explorer2 reactions · 20 comments
- Oct 26, 2026build(deps): Bump org.webjars:swagger-ui from 5.33.2 to 5.34.0 in /brewdeck-api — JuanMelendres/brewdeck1 reaction · 5 comments
- Oct 26, 2026Bump org.webjars:swagger-ui from 5.33.2 to 5.34.0 in the documentation group — dharamcodes/template-spring-boot-4.x.x1 reaction · 2 comments
- Oct 22, 2026build(deps): bump the production group with 7 updates — nox-pie/RU-Lost-Found1 reaction · 3 comments
- Oct 19, 2026build(deps): Bump org.webjars:swagger-ui from 5.33.1 to 5.33.2 in /brewdeck-api — JuanMelendres/brewdeck1 reaction · 4 comments
- Oct 19, 2026Bump org.webjars:swagger-ui from 5.33.1 to 5.33.2 in the documentation group — dharamcodes/template-spring-boot-4.x.x1 reaction · 2 comments
- Oct 18, 2026build(deps): bump the ui-package-dependencies group in /pkg/webui with 3 updates — ethpandaops/buildoor1 reaction
- Oct 15, 2026build(deps): bump the production group across 1 directory with 8 updates — nox-pie/RU-Lost-Found1 reaction · 2 comments
- Oct 13, 2026build(deps): bump org.webjars:swagger-ui from 5.32.15 to 5.33.1 in /brewdeck-api — JuanMelendres/brewdeck1 reaction · 5 comments
- Oct 8, 2026build(deps): bump the production group with 6 updates — nox-pie/RU-Lost-Found1 reaction · 3 comments
- Aug 17, 2026fix: swagger UI rendering issue after upgrade to 5.32.12 — fingerprintjs/openapi1 reaction · 3 comments
- Jul 27, 2026chore(deps): Bump swagger-ui-react from 5.32.9 to 5.32.11 in /frontend — kscius/Mock-API-Studio1 reaction
- Jul 20, 2026chore(deps): Bump swagger-ui-react from 5.32.8 to 5.32.9 in /frontend — kscius/Mock-API-Studio1 reaction
- Jul 6, 2026chore(deps): bump swagger-ui-react from 5.32.4 to 5.32.8 — smmariquit/comsci-1281 reaction · 1 comment
- Apr 28, 2026fix(swagger-ui-build): harden curl download against transient CDN failures — juhaku/utoipa1 reaction
- Mar 17, 2022Bump swagger-ui-dist from 3.20.7 to 4.1.3 — jmcarp/flask-apispec1 reaction · 1 comment
- Apr 5, 2021feat: resolve external value — swagger-api/swagger-client1 reaction · 11 comments
- Sep 1, 2016fix generator for swagger_model when no property required — richhollis/swagger-docs1 reaction · 4 comments
On YouTube · 10
- Nov 11, 2015Generate client stubs & document your REST-API using Swagger & Spring by Johannes Fiala — Devoxx45k views · 22 comments
- Nov 8, 2020What is an Operator? Kubernetes & OpenShift Operators Explained. — Ryan Hay24k views · 37 comments
- Jun 4, 2020Crear Api Rest JaxRs 2.1, Maven, Swagger, Git — Jorge Cardona3.1k views · 10 comments
- Jan 28, 2023Laravel 9 - Api Sanctum + documentação Swagger Php [Parte 2] — Thales Bento2.6k views · 18 comments
- Aug 23, 2025Cómo Estructurar un Proyecto PHP Puro como un PRO (Sin Frameworks) — IngSystemCix830 views · 3 comments
5 more on YouTube
- Jul 29, 2021Swagger API documentation tutorial for beginners | Intro to API documentation with Swagger — Coding from experience822 views
- Nov 5, 2019Stripe's $35B valuation in 8 years - How a tech startup reaches billion-dollar valuation? — QuanticDev617 views · 1 comment
- Aug 16, 2024GitHub - swagger-api/swagger-ui: Swagger UI is a collection of HTML, JavaScript, and CSS assets t... — GitHub Daily Trend AI Podcast236 views
- Oct 6, 2018Swagger UI Quickstart - Silence is Golden — Macovin107 views
- Jul 4, 2025swagger-api/swagger-ui - Gource visualisation — Gourcer11 views
On Bluesky · 6
- Jul 3, 2025📦 swagger-api / swagger-ui ⭐ 27,588 (+37) 🗒 JavaScript Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically… — @github-trending.bsky.social3 likes and reposts
- Oct 2, 2025📦 swagger-api/swagger-ui v5.29.2 Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful… — @throwable.bsky.social2 likes and reposts
- Sep 18, 2026📦 swagger-api / swagger-ui ⭐ 29,011 (+34) 🗒 JavaScript Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically… — @github-trending-js.bsky.social1 likes and repost
- Oct 10, 2025📦 swagger-api/swagger-ui v5.29.4 Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful… — @throwable.bsky.social1 likes and repost
- Jun 10, 2025📦 swagger-api/swagger-ui v5.24.1 Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful… — @throwable.bsky.social1 likes and repost
1 more on Bluesky
- Apr 4, 2025📦 swagger-api/swagger-ui v5.20.6 Swagger UI is a collection of HTML, Javascript, and CSS assets that dynamically generate beautiful… — @throwable.bsky.social1 likes and repost
On the web · 1
- Nov 17, 2023swaggerui package - github.com/mwmahlberg/swagger-ui — pkg.go.dev
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- swagger-api/swagger-editor★ 9.5ksame name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- add-json-schema-supportSkill
- add-oas-supportSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

