ai-observability
Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor…
Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type strategies, compatibility rules, and deprecation handling.
Claude Code
$ npx -y skills add rrezartprebreza/spring-boot-skills --skill api-versioning --agent claude-code
Codex
$ npx skills add rrezartprebreza/spring-boot-skills --skill api-versioning -a codex -y
Cursor
$ npx skills add rrezartprebreza/spring-boot-skills --skill api-versioning -a cursor -y
Gemini CLI
$ npx skills add rrezartprebreza/spring-boot-skills --skill api-versioning -a gemini-cli -y
GitHub Copilot
$ npx skills add rrezartprebreza/spring-boot-skills --skill api-versioning -a github-copilot -y
OpenCode
$ npx skills add rrezartprebreza/spring-boot-skills --skill api-versioning -a opencode -y
Windsurf
$ npx skills add rrezartprebreza/spring-boot-skills --skill api-versioning -a windsurf -y
name: api-versioning description: > Use when versioning Spring MVC or WebFlux APIs in Spring Boot 3 / Spring Framework 6. Covers explicit URL, header, and media-type strategies, compatibility rules, and deprecation handling.
Boot 3 does not provide Boot 4's built-in mapping `version` attribute. Choose one explicit strategy and keep it consistent: URL segments, a request header, or media-type parameters.
For a public API, `/api/v1/orders` and `/api/v2/orders` are usually the clearest choice. If URLs must remain stable, resolve a request header at the web boundary and route to versioned handlers. Do not hide version selection in business services or duplicate it across filters and controllers.
@RestController
@RequestMapping("/api/v1/orders")
class OrderV1Controller {
@GetMapping("/{id}")
OrderV1 get(@PathVariable UUID id) { ... }
}Document supported versions in OpenAPI, define a removal policy, and return a consistent error for unsupported versions. Add `Deprecation`, `Sunset`, and `Link` headers through a response advice or filter when retiring a version.
Keep version-specific DTOs and controllers thin. Map both versions to the same application use case, and do not copy domain logic into each version. Add contract tests for every supported version and verify content negotiation if using media types.
Production-grade Claude Code and Codex skills for Spring Boot developers
Use when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor…
Use when introducing or correcting grouped Spring Boot configuration, typed property binding, validation, profiles or secret…
Use when packaging a Spring Boot 3 application as an OCI image or GraalVM native executable. Covers buildpacks, layered images,…
Use when evolving aggregate invariants, value objects or domain events in an existing DDD-style Spring Boot 3 application, or…
Use when implementing Kafka, RabbitMQ, Pulsar, or JMS producers and consumers in Spring Boot 3. Covers event contracts,…
Use when creating database migrations, schema changes, seed data, or any SQL that modifies database structure. Covers Flyway…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.