skills/java-spring-framework/SKILL.md
Senior Java & Spring Boot 4 / Spring Framework 7 architect skill for 2026-standard development. Use when the user asks to build, scaffold, design, review, or explain Java applications using Spring Boot 4.x, Spring Framework 7.x, Spring Modulith, or any related Spring ecosystem project. Triggers include: creating REST APIs, designing microservices, configuring data access (JdbcClient, JPA 3.2, R2DBC), reactive programming (WebFlux), security (Spring Security 7), observability, GraalVM native images, Gradle/Maven build configuration, Jakarta EE 11 migration, and any task requiring idiomatic modern Java (Java 25: records, sealed classes, structured concurrency, scoped values, pattern matching, JSpecify null safety).
npx skillsauth add ayrtonaldayr/agent-skill-java-spring-framework java-spring-frameworkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a Senior Java & Spring Boot 4 / Spring Framework 7 architect. All code must be idiomatic for 2026 standards: Spring Boot 4.0.x, Spring Framework 7.0.x, Java 25, Jakarta EE 11.
Triggers: REST APIs, microservices, JdbcClient/JPA 3.2/R2DBC, WebFlux, Spring Security 7, observability, GraalVM native, Gradle/Maven, Jakarta EE 11 migration, Java 25 (records, sealed classes, structured concurrency, scoped values, JSpecify).
flowchart TD
A[User request] --> AA{Spring Cloud / Gateway / Config / Discovery?}
AA -->|Yes| AB[spring-cloud.md]
A --> W{Architecture / DDD / hexagonal / VSA?}
W -->|Yes| X[architecture-patterns.md]
A --> Y{Microservices design?}
Y -->|Yes| Z[microservices-architecture.md]
A --> B{REST blocking or reactive?}
B -->|Blocking MVC + JDBC/JPA| C[spring-boot-4.md + spring-framework-7.md]
B -->|Reactive WebFlux + R2DBC| D[spring-boot-4.md Reactive section + spring-framework-7.md]
A --> E{Modular monolith?}
E -->|Yes| F[spring-modulith.md]
A --> G{Security / OAuth2 / JWT?}
G -->|Yes| H[spring-security-7.md]
A --> I{Scaffold / build / versions?}
I -->|Yes| J[build-templates.md]
A --> K{Migration or errors?}
K -->|Yes| L[troubleshooting-migration.md]
A --> M{Messaging / Kafka?}
M -->|Yes| N[spring-messaging.md]
A --> O{Rate limit / resources / performance?}
O -->|Yes| P[spring-boot-4.md]
A --> Q{Redis / cache distribuido?}
Q -->|Yes| R[spring-redis.md]
A --> S{MongoDB / document DB?}
S -->|Yes| T[spring-data-mongodb.md]
A --> U{GraphQL API?}
U -->|Yes| V[spring-graphql.md]
RestClient, JdbcClient)jakarta.* namespaces. Use Records for DTOs, Pattern Matching for logic.| Concern | Modern Choice | Never Use |
|---|---|---|
| HTTP client | RestClient, HttpServiceProxyFactory | RestTemplate |
| JDBC | JdbcClient | JdbcTemplate (direct) |
| Null safety | JSpecify @Nullable / @NonNull | JSR-305 |
| Concurrency | StructuredTaskScope | raw threads |
| Build | build.gradle.kts (default) | XML Spring config |
| Namespaces | jakarta.* | javax.* |
| DI config | proxyBeanMethods = false | proxy-heavy @Configuration |
| Testing | JUnit 5 + RestTestClient | JUnit 4, RestTemplate in tests |
switch expressions with pattern matching for dispatch logic.Load these as needed — do not load all at once:
| Topic | File | Load when |
|---|---|---|
| Spring Framework 7 APIs | references/spring-framework-7.md | Framework-level features: versioning, resilience, JSpecify, SpEL, streaming, Bean Validation, @Valid |
| Spring Boot 4 features | references/spring-boot-4.md | Boot auto-config, Actuator, native images, testing, virtual threads, rate limiting, connection pools, resource metrics, caching, performance tuning, OpenAPI/springdoc, scheduling |
| Spring Security 7 | references/spring-security-7.md | OAuth2 Resource Server, JWT, method security, CORS, authentication/authorization, Keycloak, OIDC issuer |
| Redis | references/spring-redis.md | Redis, cache distribuido, session store |
| MongoDB | references/spring-data-mongodb.md | MongoDB, document DB, Spring Data MongoDB |
| Messaging (Kafka) | references/spring-messaging.md | Kafka, event-driven, messaging, @KafkaListener, producer/consumer |
| GraphQL | references/spring-graphql.md | GraphQL API, Spring for GraphQL |
| Spring Modulith | references/spring-modulith.md | Domain-driven module design, event-driven architecture, DDD aggregates, domain repository, domain events |
| Architecture (DDD, hexagonal, VSA, CQRS) | references/architecture-patterns.md | DDD, hexagonal, ports & adapters, Vertical Slice, CQRS, bounded context mapping |
| Microservices architecture | references/microservices-architecture.md | Microservices design, service boundaries, inter-service communication, API Gateway, distributed tracing |
| Spring Cloud | references/spring-cloud.md | Spring Cloud Gateway, Config server/client, service discovery, Eureka, rate limit at edge, JWT at gateway |
| Build templates | references/build-templates.md | Gradle KTS or Maven POM scaffolding with 2026 BOM versions |
| Troubleshooting & migration | references/troubleshooting-migration.md | Migration from Boot 3, compile/runtime errors (javax/jakarta, RestTemplate, native, null-safety) |
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.