adapter-contract-testsJava / Spring Boot adapter contract tests — one abstract, vendor-neutral suite (TCK) per port, subclassed by every adapter (often with Testcontainers) so swapping a provider cannot change behaviour. Use when a port gains a new adapter or an adapter changes.
component-testsJava / Spring Boot component tests — boot the full context with a test profile, replace external collaborators with deterministic doubles, exercise the HTTP API end to end via TestRestTemplate. Use when adding a REST endpoint or use case.
golden-pathThe Java / Spring Boot golden path — the apply-order of the skills and the 24 non-negotiables every diff must satisfy. Use when planning a change (which skills, in which order), when validating a finished diff, and when reviewing a PR against the non-negotiables.
integration-testsJava / Spring Boot integration tests against real dependencies (DB, broker, object store, mocked HTTP) with Testcontainers, Surefire/Failsafe split, optional Pact contracts. Use when behaviour depends on real downstream semantics that component tests cannot prove.
quality-reviewJava / Spring Boot code review of a class, package or PR — SOLID, clean code, LEGO-brick packaging, testability anti-patterns, exception/logging/concurrency conventions, test quality and coverage — with concrete fixes. Use before opening a PR or when refactoring legacy code.
refactoring-playbookJava / Spring Boot step-by-step migrations — @Value to @ConfigurationProperties, type switches to Strategy + Handler, RestTemplate to RestClient/WebClient, hand-rolled retry to Resilience4j, @MockBean to boundary fakes. Use during a quality review or before a major version bump.
static-analysisJava / Spring Boot static analysis wired into Maven so violations break the build — Spotless, SpotBugs, Error-Prone, NullAway, Checkstyle, Sonar profile. Use when a repo is created or a lint, format or analysis rule is added or fails.
unit-testsJava / Spring Boot JUnit 5 + Mockito unit tests — positive, negative and edge cases, every error branch, methodName_condition_expectedResult naming, Jacoco and PIT gates. Use when a class is created or changed in src/main/java, or coverage is below the threshold.