profile-java-server-architecturelisted
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