sickn33/agentic-awesome-skills/openapi-spec-generator
Claude Code and agent skill by sickn33/agentic-awesome-skills
- community
Checking that the SKILL.md file is still in the repository.
Generate complete, production-ready OpenAPI 3.x and Swagger 2.0 specifications from natural language descriptions, code, or partial specs.
Install
npx vskill@latest install sickn33/agentic-awesome-skills/openapi-spec-generatorSKILL.md
OpenAPI / Swagger Specification Generator
When to Use
Use when extracting or drafting OpenAPI/Swagger descriptions from actual routes, models, requirements or an existing specification. State unconfirmed behavior separately rather than inventing a complete production contract.
Generate complete, valid OpenAPI 3.x or Swagger 2.0 specifications from descriptions, code, or partial specs.
Version and completeness boundaries
This tree does not bundle the named reference/security-schemes.md or common-patterns.md files. Use available inline guidance and current version-specific specification, not fabricated reference contents. Skeletons below are incomplete until every reference/security scheme is defined; never label them validated as-is. OpenAPI 3.1 nullability uses JSON Schema types/unions rather than 3.0 nullable. Do not invent status codes, auth, examples or required fields just to fill the checklist; distinguish observed contract from proposed design. Limit/disable remote reference fetching when validating untrusted specs. See OpenAPI 3.1.
Workflow
Step 1 — Gather Context
Before writing any YAML/JSON, ask (or infer from context) the following:
| Question | Why it matters | |
|---|---|---|
| OpenAPI 3.x or Swagger 2.0? | Different info, servers/host, components/definitions structure | |
| Output format: YAML or JSON? | YAML default unless user specifies JSON | |
| What does this API do? | Sets info.title, info.description, tags | |
| List of endpoints (or code to extract from)? | Core paths object | |
| Authentication type(s)? | securitySchemes — see reference | |
| Common data models or entities? | components/schemas / definitions | |
| Any existing partial spec to extend? | Merge rather than overwrite |
If the user provides code (Express routes, FastAPI, Django URLs, Spring controllers, etc.), extract endpoints automatically — do not ask what the user already told you.
Step 2 — Build the Spec
Follow the structure guide for the chosen version. Always produce a complete, valid spec — never leave placeholder comments like # TODO: add schema.
OpenAPI 3.x Skeleton
Swagger 2.0 Skeleton
Step 3 — Schemas and Models
- Always use `$ref` for any schema used in more than one place.
- Include
exampleorexampleson every schema and response body. - Mark required fields with the
requiredarray. - Use
nullable: true(OAS 3.0) orx-nullable: true(Swagger 2.0) for optional nullable fields. - Prefer
formatkeywords:int32,int64,float,date,date-time,uuid,email,uri,byte,binary.
Common schema patterns:
Step 4 — Security Schemes
Read reference/security-schemes.md for detailed patterns. Quick reference:
| Scheme | OAS 3.x type | Notes | |
|---|---|---|---|
| Bearer JWT | http, scheme bearer | Most common for REST APIs | |
| API Key (header) | apiKey, in header | e.g. X-API-Key | |
| API Key (query) | apiKey, in query | Avoid — leaks in logs | |
| OAuth 2 | oauth2 | Use flows to define grant types | |
| Basic Auth | http, scheme basic | Only over HTTPS | |
| OpenID Connect | openIdConnect | Provide openIdConnectUrl |
Apply security globally at the root and override per-operation only where it differs (e.g., public endpoints use security: []).
Step 5 — Parameters
Path parameters — always required: true:
Query parameters — document defaults and enums:
Headers — include X-Request-ID, correlation IDs, etc. as common parameters defined under components/parameters.
Step 6 — Response Codes
Always include at minimum:
| Code | When | |
|---|---|---|
200 | Successful GET, PUT, PATCH | |
201 | Successful POST that creates a resource | |
204 | Successful DELETE (no body) | |
400 | Validation / bad request | |
401 | Missing or invalid auth | |
403 | Authenticated but not authorized | |
404 | Resource not found | |
409 | Conflict (duplicate, state mismatch) | |
422 | Unprocessable entity (semantic errors) | |
429 | Rate limited | |
500 | Internal server error |
Use $ref to components/responses for 401, 403, 404, 429, 500 to avoid repetition.
Step 7 — Quality Checklist
Before delivering the spec, verify:
- [ ]
openapiorswaggerversion field present - [ ] Every path has at least one operation
- [ ] Every operation has
operationId(camelCase, unique) - [ ] Every operation has at least one
200/201/204response - [ ]
4xxand5xxresponses defined for all operations - [ ] All
$reftargets exist incomponents/ordefinitions/ - [ ] Required fields listed in
requiredarray for all request/response bodies - [ ] Security schemes defined AND applied
- [ ] At least one
exampleper schema or response body - [ ] Tags defined at root level to match operation tags
- [ ] No orphaned schemas (everything in
components/schemasis referenced)
Step 8 — Output
- Emit the complete YAML (or JSON) spec in a code block labeled
yamlorjson. - After the spec, provide a brief summary table of endpoints generated.
- Offer to:
- Export as
.yaml/.jsonfile - Validate against Spectral or swagger-parser
- Generate mock server config (Prism)
- Generate client SDK stubs (language of choice)
Extracting from Code
When the user provides source code, extract:
Express / Koa / Fastify (Node.js)
- Look for
.get(),.post(),.put(),.patch(),.delete()calls - Route params
:param→ path parameter{param} - Middleware like
authenticate→ note security requirement req.body,req.query,req.paramsusage → infer request schema
FastAPI / Flask (Python)
- Decorators:
@app.get(),@router.post(), etc. - Pydantic models → translate directly to JSON Schema
Query(),Path(),Body()→ map to parameter location
Spring Boot (Java)
@GetMapping,@PostMapping, etc.@PathVariable,@RequestParam,@RequestBody- DTO classes → schemas
Django REST Framework
ViewSetandRouter→ CRUD endpointsSerializerfields → schema properties
Rails
routes.rbresource routes → standard REST endpoints- Strong params → request body schema
Reference Files
reference/security-schemes.md— Detailed security scheme examples for all auth typesreference/common-patterns.md— Pagination, HATEOAS, problem+json, webhooks, file upload patterns
Read these when the user asks about a specific pattern or when generating complex auth/pagination setups.
After Completing the OpenAPI/Swagger Specification design
Once the OpenAPI/Swagger Specification output is delivered, ask the user:
"Would you like me to generate API test cases for this design? (yes/no)"
If the user says yes:
- Check if the API Test Case Generator skill is available in the installed skills list
- If the skill is available:
- Read and follow the instructions in the API Test Case Generator skill
- Use the specification output above as the input
- If the skill is NOT available:
- Inform the user: "It looks like the API Documentation skill isn't installed.
You can install it and re-run.
If the user says no:
- End the task here
Limitations
- Use this skill only when the task clearly matches its upstream source and local project context.
- Verify commands, generated code, dependencies, credentials, and external service behavior before applying changes.
- Do not treat examples as a substitute for environment-specific tests, security review, or user approval for destructive or costly actions.
Security
- Security scanPassed, 98 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/openapi-spec-generator/SKILL.md
Popularity
- Repository stars
- 47,056
- Repository forks
- 6,853
- 7-day trend score
- 54
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sickn33/agentic-awesome-skills/openapi-spec-generator)