java-resiliencelisted
Install: claude install-skill limited-grisaille833/claude-java-plugins
# Resilience4J Skill
Detect the existing setup, then apply the correct pattern.
## Step 1 — Detect setup
Check `pom.xml` or `build.gradle`:
- `resilience4j-spring-boot3` → Spring Boot 3.x (use `io.github.resilience4j:resilience4j-spring-boot3`)
- `resilience4j-spring-boot2` → Spring Boot 2.x
- `spring-cloud-starter-circuitbreaker-resilience4j` → Spring Cloud Circuit Breaker abstraction
- None present → offer to add (recommend `resilience4j-spring-boot3` for Boot 3.x)
Check Java version: Java 17+ enables records for fallback DTOs; Java 8+ supported throughout.
---
## Mode: `review`
User asks to review existing Resilience4J config. Check for:
- [ ] Circuit breaker thresholds are tuned — `slidingWindowSize`, `failureRateThreshold`, `waitDurationInOpenState` set explicitly (not defaults)
- [ ] `slowCallDurationThreshold` and `slowCallRateThreshold` configured — slow calls should also trip the breaker
- [ ] Fallback methods match the same signature as the guarded method (same return type + `Throwable` param)
- [ ] `@CircuitBreaker` and `@Retry` not stacked without `fallbackMethod` on the outer annotation — will swallow exceptions silently
- [ ] Retry has `ignoreExceptions` for business errors (e.g. `IllegalArgumentException`, `EntityNotFoundException`) — don't retry 4xx errors
- [ ] `RateLimiter` uses `limitForPeriod` appropriate for downstream SLA — not an arbitrary number
- [ ] Bulkhead `maxConcurrentCalls` sized against thread pool or reactive scheduler
- [ ] Actuator e