agentleFS
Sequela02Sequela02/canasta/skills/stack/spring-boot/SKILL.md

spring-boot

Skill0 starsChanged yesterdayMITView on GitHub

Implement or review Java/Spring backend services, transactions, persistence adapters, configuration, and operations, and route API, security, PostgreSQL, and testing work to their references and skills.

11 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use logging-patterns and jpa-patterns.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • DIL8654Skill

    logging-patterns

    Keep logs structured, correlated, low-noise, and safe for production support. Use when adding operational logging, reviewing observability, or improving diagnostics in .NET services.

    Also in 3 projects that use this

  • mstuder-slalomSkill

    jpa-patterns

    JPA/Hibernate patterns for entity design, relationships, query optimization, transactions, auditing, indexing, pagination, and pooling in Spring Boot.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. 0 are common, 17 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 17

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the platform deliberately.

    line 8
  2. Distinctive:

    Use the repository's installed versions for implementation.

    line 16
  3. Distinctive:

    Prefer platform components the repository has already adopted, such as an adopted platform component, over building a parallel one.

    line 39
  4. Distinctive:

    Prefer a modular monolith, with its boundaries enforced by ArchUnit or Spring Modulith in CI.

    line 49
  5. Distinctive:

    Delete compatibility paths after their documented consumer or migration window ends.

    line 51
  6. Distinctive:

    Prefer constructor injection, immutable configuration, records for transport DTOs and small values, sealed types only when the closed …

    line 56
  7. Very specific:

    Use typed, validated @ConfigurationProperties.

    line 59
  8. Distinctive:

    Prefer focused Boot starters and Boot-managed dependency versions.

    line 61
  9. Very specific:

    Use Spring MVC and RestClient for ordinary blocking services.

    line 63
  10. Distinctive:

    Use virtual threads only for compatible blocking I/O workloads.

    line 65
  11. Distinctive:

    Treat preview features as opt-in experiments unless the repository explicitly enables and tests them.

    line 68
  12. Distinctive:

    Keep JPA entities in infrastructure and map them to domain models.

    line 73
  13. Distinctive:

    Keep transactions narrow. Never hold a database transaction open across a slow remote call without a demonstrated consistency design.

    line 76
  14. Distinctive:

    Use Flyway or the repository's owned migration tool.

    line 80
  15. Distinctive:

    Never put secrets, tokens, personal data, or unbounded identifiers in labels.

    line 86
  16. Distinctive:

    Keep wrapper, toolchain, CI, builder image, runtime image, and docs aligned.

    line 87
  17. Distinctive:

    Run focused compilation/tests first, then repository quality and build gates.

    line 88
  18. Distinctive:

    When platform files change, verify the container image and startup path.

    line 89
  19. Distinctive:

    Do not claim migration readiness without testing API contracts, persistence, security, migrations, runtime packaging, and the affected …

    line 90

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Spring Boot Backend

Use the platform deliberately. Do not turn a version bump into an architectural rewrite or encode exact patch versions in this skill.

Relevant Evidence

  1. Inspect the build or runtime configuration needed by the change. Toolchain upgrades need wrapper, dependency, image, and CI evidence; ordinary service edits can reuse the established platform context.
  2. Use the repository's installed versions for implementation. Take target versions only from an explicit upgrade request or a written project standard.
  3. Read references/platform-and-architecture.md for runtime selection, modernization, modules, and framework rules.
  4. Read references/persistence-and-operations.md for JPA/SQL selection, transactions, integrations, and observability.
  5. Load the related skills below only when the change crosses their contracts.

Related Skills

WorkLoad
PostgreSQL schema, SQL, indexes, locks, query plans, Flyway data migration, database upgradepostgres
REST resource design, DTOs, errors, pagination, compatibility, OpenAPI, API versioningreferences/api-contracts.md
Authentication, authorization, tenant isolation, cookies/tokens, CSRF/CORS, secrets, abuse controlssecurity-scope-review with its Spring backend reference
Unit, architecture, slice, integration, contract, migration, container, or regression testsreferences/testing.md, with tdd for test-first discipline
Domain model, glossary, bounded contexts, deciders, invariantsdomain-modeling
Module boundaries and dependency directionarchitecture-review
Behavior-preserving cleanuprefactor
Stripe integrationStripe's official integration guidance; keep domain orchestration in the backend boundary

A new authenticated endpoint with a schema change needs Spring, API, security, PostgreSQL, and testing guidance; a pure domain invariant needs none of them. Prefer platform components the repository has already adopted, such as an adopted platform component, over building a parallel one.

Architecture Invariants

  • Domain purity, bounded contexts and deciders follow domain-modeling. In Spring, domain code carries no Spring, JPA, Jackson, HTTP, or migration annotations, and application services own transaction boundaries.
  • Adapters translate transport and persistence models instead of exposing JPA entities or infrastructure exceptions as public contracts.
  • Prefer a modular monolith, with its boundaries enforced by ArchUnit or Spring Modulith in CI.
  • Delete compatibility paths after their documented consumer or migration window ends.

Spring And Java Posture

  • Prefer constructor injection, immutable configuration, records for transport DTOs and small values, sealed types only when the closed hierarchy is real, and exhaustive handling for domain states.
  • Use typed, validated @ConfigurationProperties; fail closed for security, authority, and governance configuration.
  • Prefer focused Boot starters and Boot-managed dependency versions. Pin only with an evidenced compatibility or security reason.
  • Use Spring MVC and RestClient for ordinary blocking services. Do not mix Reactor into a blocking JDBC request path without an end-to-end need.
  • Use virtual threads only for compatible blocking I/O workloads. Protect scarce downstream resources with explicit concurrency limits and validate behavior with JFR, metrics, and load evidence.
  • Treat preview features as opt-in experiments unless the repository explicitly enables and tests them.

Persistence And Side Effects

  • Keep JPA entities in infrastructure and map them to domain models.
  • Choose JPA for aggregate persistence and routine transactional access; use explicit SQL or jOOQ for query-heavy/read-model work only where adopted.
  • Keep transactions narrow. Never hold a database transaction open across a slow remote call without a demonstrated consistency design.
  • Make retries, idempotency, outbox/event publication, and observable failure states explicit for external side effects.
  • Use Flyway or the repository's owned migration tool; never production DDL auto-generation.

Runtime And Verification

  • Expose meaningful health, readiness, metrics, traces, and structured logs. Never put secrets, tokens, personal data, or unbounded identifiers in labels.
  • Keep wrapper, toolchain, CI, builder image, runtime image, and docs aligned.
  • Run focused compilation/tests first, then repository quality and build gates.
  • When platform files change, verify the container image and startup path.
  • Do not claim migration readiness without testing API contracts, persistence, security, migrations, runtime packaging, and the affected production path.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.