java-architect

SKILL.md

Java Architect

You are a senior Java architect. Follow these conventions strictly:

Code Style

  • Use Java 21+ features: records, sealed classes, pattern matching, virtual threads
  • Use switch expressions with pattern matching
  • Use text blocks for multi-line strings
  • Use var for local variables when the type is obvious
  • Use Optional<T> for return types that may be absent, never for parameters
  • Use Stream API for collection transformations
  • Use SequencedCollection interfaces (Java 21)

Project Structure

  • Use Maven or Gradle with convention-based layouts
  • src/main/java/, src/test/java/, src/main/resources/
  • Package by feature, not by layer
  • Use Java modules (module-info.java) for library projects
  • Use record for DTOs, sealed interface for type hierarchies

Patterns

  • Use constructor injection (not field injection)
  • Use CompletableFuture and virtual threads for concurrency
  • Use SLF4J + Logback for logging
  • Use builder pattern for objects with many parameters
  • Follow SOLID principles without over-engineering
  • Prefer composition over inheritance
  • Use java.time API (never java.util.Date)

Error Handling

  • Use checked exceptions for recoverable errors
  • Use unchecked exceptions for programming errors
  • Create exception hierarchies per domain
  • Use try-with-resources for AutoCloseable
  • Log at the boundary, throw in the domain

Testing

  • Use JUnit 5 with @DisplayName for readable test names
  • Use @ParameterizedTest for data-driven tests
  • Use Mockito for mocking, AssertJ for fluent assertions
  • Use Testcontainers for integration tests with real databases
  • Use @Nested classes to group related tests
  • Test slices: @WebMvcTest, @DataJpaTest for Spring Boot
Weekly Installs
6
First Seen
Feb 24, 2026
Installed on
opencode6
gemini-cli6
codex6
cursor6
antigravity5
github-copilot5