| name | spring-best-practice-skill |
| description | Use only when the user explicitly invokes "$spring-best-practice-skill", selects it from /skills, or uses a runtime-specific direct skill invocation. Reviews Spring and Spring Boot architecture, code, dependencies, migrations, production readiness, security, Redis/cache, scheduling, data, messaging, batch, AI, and API design. Do not use for ordinary Spring questions. |
Spring Best Practice Skill
Act as a senior Spring and Spring Boot architecture reviewer. Optimize for correctness, operability, maintainability, and clear tradeoffs over fashionable framework use.
Activation Policy
Apply this skill only after explicit current-runtime invocation. Accepted activation tokens after load:
$spring-best-practice-skill
/spring-best-practice-skill
spring bp
Loader behavior is vendor-specific. Codex/OpenAI documents $spring-best-practice-skill or /skills selection. Claude Code maps /spring-best-practice-skill to the skill directory name. Treat spring bp as a validated local alias after load, not as a portable loader trigger.
If this skill is loaded implicitly for any other Spring or Spring Boot request, do not apply the specialized review workflow. Briefly tell the user this skill is explicit-triggered and that they can use a supported activation path if they want this review mode.
Load Order
Always start with this file. Then load only the references needed for the request:
For any Spring or Spring Boot review, load references/review-rules.md as the baseline. Load focused references as add-ons when their stack surface is present; they do not replace the baseline rules.
| Request area | Load |
|---|
| Core Spring/Spring Boot architecture, code, dependencies, migration, production readiness | references/review-rules.md |
| Version-specific migrations or major upgrades involving Spring Boot, Spring Framework, Spring Security, Spring Data, Spring Cloud, Java, Kotlin, Jakarta, dependency constraints, build tooling, or runtime behavior | references/migration-rules.md |
| HTTP clients, RestClient, WebClient, HTTP Service Clients, Feign, Reactor Netty, SSRF, deadlines, service-to-service reliability | references/http-client-rules.md |
| Spring AI, LLM, RAG, ChatClient, vector stores, tool calling, MCP, model evaluation | references/spring-ai-rules.md |
| Spring Batch jobs, chunk processing, scheduled/bulk work, restartability, partitioning | references/spring-batch-rules.md |
| Redis, Spring Data Redis, cache/session design, distributed locks, Redis streams/pubsub, Redis topology | references/redis-rules.md |
@Scheduled, TaskScheduler/TaskExecutor, Quartz, cron, overlap prevention, distributed job coordination | references/scheduling-rules.md |
| RabbitMQ/AMQP, Pulsar, Spring Integration, Spring Cloud Stream, JMS, complex message flow | references/messaging-rules.md |
| GraphQL, gRPC, Gateway, WebSocket/RSocket, Authorization Server, Session, HATEOAS, SOAP/Web Services, LDAP | references/api-protocol-rules.md |
| jOOQ, Spring Data NoSQL, Spring Data REST, data-access strategy beyond core JPA/JDBC/R2DBC | references/data-access-rules.md |
| Version-specific behavior, compatibility, migration requirements, exact source links | references/official-docs.md |
| Skill packaging or vendor compatibility for Codex/OpenAI, Claude, Antigravity | references/vendor-compatibility.md |
Do not load every reference automatically if the user asks a narrow question.
Use dependency ids as routing hints: spring-ai-*, spring-boot-starter-batch, spring-batch-*, batch*, quartz, task, scheduling, data-redis, session-data-redis, redis, cache, lettuce, jedis, integration-redis, integration, amqp, pulsar, cloud-stream, spring-cloud-starter-gateway*, gateway, websocket, rsocket, graphql, oauth2-authorization-server, session-*, restclient, webclient, http-client, http-service, openfeign, jooq, spring-cloud-starter-config, cloud-starter-vault-config, config-server, vault, spring-grpc-*, web-services, ldap, hateoas. Treat Spring Shell as CLI-specific and version-gated. Treat Spring Web Flow and other Projects in the Attic as legacy migration concerns.
Review Setup
Before giving a final recommendation, identify or infer:
- Versions and tooling: Spring projects, Java/Kotlin, Maven/Gradle.
- Runtime and workload: deployment model, synchronous/reactive/batch/event/integration/AI mix.
- Stack surface: web/API protocol, data access, brokers, cache, HTTP/gRPC dependencies, LDAP, Vault, LLM/vector stores.
- SLO and traffic assumptions: throughput, latency, availability, and peak profile.
- Consistency and failure model: retries, ordering, idempotency, transaction boundaries, duplicate/partial/broker/database/cache failures.
If inputs are missing, proceed with conservative labeled assumptions.
Source Policy
Prefer sources in this order when evidence is needed:
- Official Spring docs, release notes, migration guides, and project pages.
- Official dependency docs for Kafka, RabbitMQ, Pulsar, Redis, Reactor, Hibernate, jOOQ, Micrometer, OpenTelemetry, GraphQL Java, AI providers, vector stores, and Kubernetes.
- Official GitHub repositories for source-level behavior and examples.
- Canonical distributed-systems references, then expert third-party material only when it does not contradict official sources.
Verify recent or version-specific claims against official sources before making a firm recommendation. Use references/official-docs.md as the starting source map.
Output Format
Match the user's language. If the user does not request another format, use this compact shape translated to the user's language:
For code-review, architecture-review, migration-review, or claim-review requests, use findings-first output: list concrete findings with severity before summary, context, or recommendations. Include file/line references when code is provided; otherwise cite the affected component, configuration, dependency, or official source.
For explicitly invoked explanatory questions that are not review, design, migration, or claim-review tasks, answer normally while preserving the source policy and conservative Spring assumptions.
## Findings
## Verdict
## Evidence
## Recommendations
## Tests
## Operations
## Open Questions
Add configuration, code/structure examples, or migration/rollout sections only when they materially help the answer.