java-adr
Creates, lists, and manages Architecture Decision Records for Java projects. Use when user asks to "create an ADR", "document…
Use when the user asks to add resilience patterns, handle service failures, implement circuit breaker, retry, rate limiter, bulkhead, or timeout in a Spring Boot project using Resilience4J.
Claude Code
$ npx -y skills add ducpm2303/claude-java-plugins --skill java-resilience --agent claude-code
Codex
$ npx skills add ducpm2303/claude-java-plugins --skill java-resilience -a codex -y
Cursor
$ npx skills add ducpm2303/claude-java-plugins --skill java-resilience -a cursor -y
Gemini CLI
$ npx skills add ducpm2303/claude-java-plugins --skill java-resilience -a gemini-cli -y
GitHub Copilot
$ npx skills add ducpm2303/claude-java-plugins --skill java-resilience -a github-copilot -y
OpenCode
$ npx skills add ducpm2303/claude-java-plugins --skill java-resilience -a opencode -y
Windsurf
$ npx skills add ducpm2303/claude-java-plugins --skill java-resilience -a windsurf -y
name: java-resilience description: Use when the user asks to add resilience patterns, handle service failures, implement circuit breaker, retry, rate limiter, bulkhead, or timeout in a Spring Boot project using Resilience4J. version: 1.0.0 authors: [java-plugins contributors] tags: [java, spring-boot, resilience4j, circuit-breaker, retry, rate-limiter, bulkhead, timeout] allowed-tools: [Read, Glob, Grep, Edit, Write]
Detect the existing setup, then apply the correct pattern.
Check `pom.xml` or `build.gradle`:
Check Java version: Java 17+ enables records for fallback DTOs; Java 8+ supported throughout.
---
User asks to review existing Resilience4J config. Check for:
---
User asks to add a circuit breaker to protect a downstream call.
1. Add dependency (see `references/patterns.md` → Setup) 2. Configure in `application.yml` — set `sliding-window-size`, `failure-rate-threshold`, `wait-duration-in-open-state` 3. Annotate the method with `@CircuitBreaker(name = "serviceName", fallbackMethod = "fallback")` 4. Write the fallback method — same return type, extra `Throwable` parameter 5. Expose circuit breaker health: `management.health.circuitbreakers.enabled=true` 6. Add event listener to log state transitions (CLOSED→OPEN→HALF_OPEN)
Version note:
---
User asks to add automatic retry for flaky remote calls.
1. Configure retry in `application.yml` — `max-attempts`, `wait-duration`, `exponential-backoff-multiplier` 2. Set `ignore-exceptions` for non-retryable errors (validation errors, 4xx responses) 3. Set `retry-exceptions` explicitly (e.g. `IOException`, `TimeoutException`) 4. Annotate with `@Retry(name = "serviceName", fallbackMethod = "fallback")` 5. For HTTP clients: check response status before retrying — use `retryOnResultPredicate` to retry on 5xx, not 4xx 6. Warn if stacking with `@CircuitBreaker` — retry fires first, circuit breaker wraps it; set `retry.max-attempts` lower than circuit breaker `sliding-window-size`
---
User asks to limit how often a method can be called (outgoing rate limiting or incoming API protection).
1. Configure `limit-for-period` (requests per window), `limit-refresh-period`, `timeout-duration` 2. Annotate with `@RateLimiter(name = "serviceName", fallbackMethod = "fallback")` 3. For incoming API protection: place on controller method or use a filter 4. For outgoing: place on the service/client method calling the downstream
---
User asks to limit concurrent calls to isolate failures (prevent thread starvation).
Two types — choose based on context:
Configure `max-concurrent-calls` and `max-wait-duration` (semaphore) or pool size (thread pool). Annotate with `@Bulkhead(name = "serviceName", type = Bulkhead.Type.SEMAPHORE)`.
---
User asks to add a timeout to a method.
1. Use `@TimeLimiter` for reactive/async methods (returns `CompletableFuture` or `Flux`/`Mono`) 2. For blocking methods: use `@CircuitBreaker` with `slowCallDurationThreshold` instead 3. Configure `timeout-duration` in `application.yml` 4. `@TimeLimiter` requires the method to return `CompletableFuture<T>` — wrap synchronous calls if needed
---
For **review mode**: list findings as `[CRITICAL] / [HIGH] / [MEDIUM] / [LOW]` with file:line references.
For **implementation modes**: show exact Maven/Gradle snippet, full `application.yml` config block, and complete annotated Java example. State minimum Spring Boot version where relevant.
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.
Creates, lists, and manages Architecture Decision Records for Java projects. Use when user asks to "create an ADR", "document…
Reviews Java REST API design including HTTP methods, status codes, naming, and versioning. Use when user asks to "review my API",…
Reviews or implements Clean Architecture / Hexagonal Architecture (Ports & Adapters) and DDD tactical patterns for Java projects.…
Generates a Conventional Commits message for staged Java changes. Use when user asks to "write a commit message", "help me…
Reviews Java code for thread safety, race conditions, deadlocks, and Java 21 virtual thread compatibility. Use when user asks to…
Detects GoF patterns in Java code or recommends the right pattern for a problem. Use when user asks to "what pattern is this",…
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.