← ClaudeAtlas

profile-java-server-architecturelisted

Opt-in profile. Opinionated Java server-side architecture conventions — Gradle on its latest stable version, latest stable Spring Boot, latest Java LTS, repositories return DTOs (never JPA entities) to upper layers, internal DTOs stay internal (API layer has its own request/response DTOs), and a strict Controller/Job → Facade → Service → Repository call chain with transactions owned by the facade. Only invoke when PROJECT_BRIEF.md's `## Profiles` section lists this skill by name. Do NOT auto-invoke on arbitrary Java or Spring work.
HaroldHormaechea/project-builder · ★ 5 · Data & Documents · score 77
Install: claude install-skill HaroldHormaechea/project-builder
# Profile — Java Server Architecture Opinionated conventions for Java server-side projects (typically Spring Boot backends). Apply only when `PROJECT_BRIEF.md` → `## Profiles` lists `profile-java-server-architecture`. ## Precedence `PROJECT_BRIEF.md` > this profile > model defaults. If the brief pins specific versions or contradicts any rule below, follow the brief and surface the conflict. If the brief is silent, this profile is authoritative. ## Rules ### 1. Build: Gradle, latest stable - Build tool is **Gradle**. No Maven, no mixed builds. - Use the **latest stable Gradle release** at scaffold time. Pin it in `gradle/wrapper/gradle-wrapper.properties`. - Prefer the **Kotlin DSL** (`build.gradle.kts`) for new projects for better IDE support. Groovy DSL is acceptable only when maintaining existing Groovy build scripts. - Use a **Gradle version catalog** (`gradle/libs.versions.toml`) to centralize dependency versions — no hand-pinning scattered across `build.gradle.kts`. - Ship the **Gradle Wrapper** (`./gradlew`) with the project. Never require a system-installed Gradle. ### 2. Spring Boot: latest stable - Use the **latest stable Spring Boot release** at scaffold time. - Declare the Spring Boot plugin in `build.gradle.kts`; let its BOM manage transitive versions. Do not hand-pin versions of libraries Spring Boot already manages. - Use Spring Boot autoconfiguration and conventions — do not duplicate what a starter already provides. - Prefer `spring-boot-starter-*` mod