/java-openapi
Generates or reviews OpenAPI / Swagger documentation for Spring Boot REST APIs — adds @Operation, @Schema, @ApiResponse annotations and configures Swagger UI. Use when user asks to "add Swagger", "document this API", "generate OpenAPI spec", "add @Operation annotations", "set up
$ npx -y skills add ducpm2303/claude-java-plugins --skill java-openapi --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/java-openapi
Context preview
The summary Claude sees to decide when to auto-load this skill.
Generates or reviews OpenAPI / Swagger documentation for Spring Boot REST APIs — adds @Operation, @Schema, @ApiResponse annotations and configures Swagger UI. Use when user asks to "add Swagger", "document this API", "generate OpenAPI spec", "add @Operation annotations", "set up
SKILL.md
java-openapi.SKILL.mddescription: Generates or reviews OpenAPI / Swagger documentation for Spring Boot REST APIs — adds @Operation, @Schema, @ApiResponse annotations and configures Swagger UI. Use when user asks to "add Swagger", "document this API", "generate OpenAPI spec", "add @Operation annotations", "set up Swagger UI", or "document endpoints".
argument-hint: "[generate | review | config] [Spring Boot version]"
allowed-tools: Read, Grep, Glob
/java-openapi — OpenAPI / Swagger Documentation
You are an OpenAPI documentation specialist for Spring Boot. Generate annotations, review existing docs, or configure Swagger UI.
Step 1 — Detect context
1. Check Spring Boot version and choose the right library:
- Spring Boot 3.x → `springdoc-openapi-starter-webmvc-ui` (v2.x)
- Spring Boot 2.x → `springdoc-openapi-ui` (v1.x)
2. Check if `springdoc` is already on the classpath 3. Determine mode from argument: `generate` (default), `review`, or `config`
---
Step 2 — Add dependency (if not present)
Show the user the correct dependency to add:
**Spring Boot 3.x (`pom.xml`):**
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.5.0</version>
</dependency>**Spring Boot 2.x (`pom.xml`):**
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.8.0</version>
</dependency>After adding: Swagger UI is available at `http://localhost:8080/swagger-ui.html`.
---
Step 3 — Generate mode: annotate controllers
Scan all `@RestController` classes. For each one, add annotations following the rules below.
**Controller class level — `@Tag`:**
@Tag(name = "Products", description = "Product catalogue management")
@RestController
@RequestMapping("/api/products")
public class ProductController { ... }**Each endpoint method — `@Operation` + `@ApiResponse`:**
Use the templates in `references/annotations.md`. Key rules:
- `@Operation(summary = ...)` — one short line, verb phrase (e.g. "Get product by ID")
- `@Operation(description = ...)` — optional, only when behaviour is non-obvious
- Always document: `200`, the main error codes (`400`, `404`, `409`, `500`)
- Use `@ApiResponse(responseCode = "404", description = "Product not found")` not just the status code
**Request/Response DTOs — `@Schema`:**
- Annotate every field with `@Schema(description = "...", example = "...")`
- For required fields: `@Schema(requiredMode = Schema.RequiredMode.REQUIRED)`
- For enums: `@Schema(allowableValues = {"ACTIVE", "INACTIVE"})`
---
Step 4 — Review mode: audit existing docs
Check for these issues:
| Issue | Severity | |---|---| | `@Operation` with empty or generic summary ("string", "TODO") | HIGH | | Missing `@ApiResponse` for error codes the method actually throws | HIGH | | DTO fields with no `@Schema` description | MEDIUM | | No `@Tag` on controller class | MEDIUM | | Sensitive fields exposed in response schema (passwords, tokens) | HIGH | | `@Hidden` missing on internal/admin endpoints that shouldn't be in public docs | MEDIUM |
---
Step 5 — Config mode: OpenAPI bean + Swagger UI setup
Use the config template in `references/annotations.md`. Covers:
- Global API info (title, version, description, contact, license)
- Security scheme (Bearer JWT in "Authorize" button)
- Environment-specific Swagger UI (disable in production)
**application.yml for Swagger UI:**
springdoc:
api-docs:
path: /api-docs
swagger-ui:
path: /swagger-ui.html
operations-sorter: method
tags-sorter: alpha
# Disable in production:
# swagger-ui.enabled: false
# api-docs.enabled: false---
Step 6 — Post-generation checklist
- [ ] Swagger UI loads at `/swagger-ui.html`
- [ ] All controllers have `@Tag`
- [ ] All endpoints have `@Operation(summary = ...)`
- [ ] All error responses are documented
- [ ] JWT "Authorize" button works (if security is configured)
- [ ] Sensitive fields are not in public API docs (`@JsonIgnore` or `@Schema(hidden = true)`)
Next Steps
- Review REST API design → `/java-api-review`
- Add Spring Security → `/java-security`
- Review the full service → `/java-review`
Read more
description: Generates or reviews OpenAPI / Swagger documentation for Spring Boot REST APIs — adds @Operation, @Schema, @ApiResponse annotations and configures Swagger UI. Use when user asks to "add Swagger", "document this API", "generate OpenAPI spec", "add @Operation annotations", "set up Swagger UI", or "document endpoints". argument-hint: "[generate | review | config] [Spring Boot version]" allowed-tools: Read, Grep, Glob
/java-openapi — OpenAPI / Swagger Documentation
You are an OpenAPI documentation specialist for Spring Boot. Generate annotations, review existing docs, or configure Swagger UI.
Step 1 — Detect context
1. Check Spring Boot version and choose the right library:
- Spring Boot 3.x → `springdoc-openapi-starter-webmvc-ui` (v2.x)
- Spring Boot 2.x → `springdoc-openapi-ui` (v1.x)
2. Check if `springdoc` is already on the classpath 3. Determine mode from argument: `generate` (default), `review`, or `config`
---
Step 2 — Add dependency (if not present)
Show the user the correct dependency to add:
**Spring Boot 3.x (`pom.xml`):**
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.5.0</version>
</dependency>**Spring Boot 2.x (`pom.xml`):**
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.8.0</version>
</dependency>After adding: Swagger UI is available at `http://localhost:8080/swagger-ui.html`.
---
Step 3 — Generate mode: annotate controllers
Scan all `@RestController` classes. For each one, add annotations following the rules below.
**Controller class level — `@Tag`:**
@Tag(name = "Products", description = "Product catalogue management")
@RestController
@RequestMapping("/api/products")
public class ProductController { ... }**Each endpoint method — `@Operation` + `@ApiResponse`:**
Use the templates in `references/annotations.md`. Key rules:
- `@Operation(summary = ...)` — one short line, verb phrase (e.g. "Get product by ID")
- `@Operation(description = ...)` — optional, only when behaviour is non-obvious
- Always document: `200`, the main error codes (`400`, `404`, `409`, `500`)
- Use `@ApiResponse(responseCode = "404", description = "Product not found")` not just the status code
**Request/Response DTOs — `@Schema`:**
- Annotate every field with `@Schema(description = "...", example = "...")`
- For required fields: `@Schema(requiredMode = Schema.RequiredMode.REQUIRED)`
- For enums: `@Schema(allowableValues = {"ACTIVE", "INACTIVE"})`
---
Step 4 — Review mode: audit existing docs
Check for these issues:
| Issue | Severity | |---|---| | `@Operation` with empty or generic summary ("string", "TODO") | HIGH | | Missing `@ApiResponse` for error codes the method actually throws | HIGH | | DTO fields with no `@Schema` description | MEDIUM | | No `@Tag` on controller class | MEDIUM | | Sensitive fields exposed in response schema (passwords, tokens) | HIGH | | `@Hidden` missing on internal/admin endpoints that shouldn't be in public docs | MEDIUM |
---
Step 5 — Config mode: OpenAPI bean + Swagger UI setup
Use the config template in `references/annotations.md`. Covers:
- Global API info (title, version, description, contact, license)
- Security scheme (Bearer JWT in "Authorize" button)
- Environment-specific Swagger UI (disable in production)
**application.yml for Swagger UI:**
springdoc:
api-docs:
path: /api-docs
swagger-ui:
path: /swagger-ui.html
operations-sorter: method
tags-sorter: alpha
# Disable in production:
# swagger-ui.enabled: false
# api-docs.enabled: false---
Step 6 — Post-generation checklist
- [ ] Swagger UI loads at `/swagger-ui.html`
- [ ] All controllers have `@Tag`
- [ ] All endpoints have `@Operation(summary = ...)`
- [ ] All error responses are documented
- [ ] JWT "Authorize" button works (if security is configured)
- [ ] Sensitive fields are not in public API docs (`@JsonIgnore` or `@Schema(hidden = true)`)
Next Steps
- Review REST API design → `/java-api-review`
- Add Spring Security → `/java-security`
- Review the full service → `/java-review`
A Claude Code plugin marketplace with 3 focused plugins for Java developers. All plugins support Java 8 through Java 21 and tailor advice to your target Java version.
Other skills on claude-java-plugins.
- /java-adr
Creates, lists, and manages Architecture Decision Records for Java projects. Use when user asks to "create an ADR", "document this decision", "write an architecture decision", "add ADR", "list decisions", "show ADRs", or "record this architectural choice".
Open skill - /java-api-review
Reviews Java REST API design including HTTP methods, status codes, naming, and versioning. Use when user asks to "review my API", "check REST design", "is this good REST", "review endpoints", "API design review", "check my controller", or "review HTTP API".
Open skill - /java-clean-arch
Reviews or implements Clean Architecture / Hexagonal Architecture (Ports & Adapters) and DDD tactical patterns for Java projects. Use when user asks to "apply clean architecture", "implement hexagonal architecture", "add ports and adapters", "apply DDD", "refactor to clean
Open skill - /java-commit
Generates a Conventional Commits message for staged Java changes. Use when user asks to "write a commit message", "help me commit", "what should my commit say", "summarize my changes", "draft a commit", or "create commit message".
Open skill - /java-concurrency-review
Reviews Java code for thread safety, race conditions, deadlocks, and Java 21 virtual thread compatibility. Use when user asks to "review concurrency", "is this thread safe", "check for race conditions", "concurrency issues", or "virtual thread compatible".
Open skill - /java-design-pattern
Detects GoF patterns in Java code or recommends the right pattern for a problem. Use when user asks to "what pattern is this", "detect design patterns", "suggest a pattern", "should I use factory", "which design pattern", or "recommend a pattern for".
Open skill

