java-architect — Claude Code skill for Java development
Build Spring Boot services, implement reactive endpoints, tune JPA queries, and configure OAuth2 or JWT security with a skill that guides implementation and testing.
npx skills add Jeffallan/claude-skills --skill java-architect -a claude-codeWhat java-architect does
java-architect guides Java development from reviewing the project structure to validating the finished implementation. It covers Spring Boot 3.x, Java 21 LTS, domain boundaries, service layers, repositories, and REST controllers. Separate reference files cover Spring Boot setup, WebFlux and Project Reactor, JPA optimization, Spring Security, and testing patterns.
For data access work, the skill recommends verifying queries and mappings with ./mvnw verify -pl <module>. Security tasks include configuring Spring Security, JWT validation, and access rules. After security changes, run ./mvnw verify; if tests fail, inspect the ordering of SecurityFilterChain beans and the token validation configuration.
The workflow also calls for Flyway or Liquibase migrations, API documentation with OpenAPI or Swagger, and a proper exception hierarchy. Reactive applications must avoid blocking code. Final checks use ./mvnw verify with Maven or ./gradlew check with Gradle, with a target test coverage of 85%.
What it helps with
- Separate domain logic from application infrastructure
- Implement reactive REST endpoints with Spring WebFlux
- Find N+1 issues and tune JPA queries
- Configure JWT authentication and Spring Security access rules
- Validate tests and coverage before closing a change
Example prompts for the agent
- Review my Spring Boot 3.x project and suggest domain boundaries based on Clean Architecture.
- Implement a reactive order endpoint with Spring WebFlux and add tests.
- Inspect the JPA queries for N+1 issues, fix the mappings, and run `./mvnw verify -pl <module>`.
How to install java-architect
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill java-architect -a claude-code2Manually: put the files in place
~/.claude/skills/java-architect/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/java-architect/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill java-architect -a codex2Manually: put the files in place
.agents/skills/java-architect/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill java-architect -a cursor2Manually: put the files in place
.cursor/skills/java-architect/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Jeffallan/claude-skills java-architect2Manually: put the files in place
.github/skills/java-architect/SKILL.md1Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill java-architect -a gemini-cli2Platform CLI
gemini skills install https://github.com/Jeffallan/claude-skills --path skills/java-architectManually: put the files in place
.devin/skills/java-architect/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Jeffallan/claude-skills --skill java-architect -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set61
The whole set →Similar
Questions about java-architect
How do I install java-architect in Claude Code?
Run npx skills add Jeffallan/claude-skills --skill java-architect -a claude-code. The skill file is located at ~/.claude/skills/java-architect/SKILL.md.
What does java-architect do?
It guides Spring Boot application development, reactive WebFlux endpoints, JPA query tuning, and Spring Security configuration. It also provides a workflow for architecture decisions and test verification.
What test coverage does java-architect target?
The target is 85%. Use ./mvnw verify with Maven or ./gradlew check with Gradle; if coverage falls short, inspect the JaCoCo report and add tests for uncovered branches.
Source text
SKILL.md · MIT
---
name: java-architect
description: Use when building, configuring, or debugging enterprise Java applications with Spring Boot 3.x, microservices, or reactive programming. Invoke to implement WebFlux endpoints, optimize JPA queries and database performance, configure Spring Security with OAuth2/JWT, or resolve authentication issues and async processing challenges in cloud-native Spring applications.
license: MIT
metadata:
author: https://github.com/Jeffallan
company: https://synergetic.solutions
version: "1.1.0"
domain: language
triggers: Spring Boot, Java, microservices, Spring Cloud, JPA, Hibernate, WebFlux, reactive, Java Enterprise
role: architect
scope: implementation
output-format: code
related-skills: fullstack-guardian, api-designer, devops-engineer, database-optimizer
---
# Java Architect
Enterprise Java specialist focused on Spring Boot 3.x, microservices architecture, and cloud-native development using Java 21 LTS.
## Core Workflow
1. **Architecture analysis** - Review project structure, dependencies, Spring config
2. **Domain design** - Create models following DDD and Clean Architecture; verify domain boundaries before proceeding. If boundaries are unclear, resolve ambiguities before moving to implementation.
3. **Implementation** - Build services with Spring Boot best practices
4. **Data layer** - Optimize JPA queries, implement repositories; run `./mvnw verify -pl <module>` to confirm query correctness. If integration tests fail: review Hibernate SQL logs, fix queries or mappings, re-run before proceeding.
5. **Security & config** - Apply Spring Security, externalize configuration, add observability; run `./mvnw verify` after security changes to confirm filter chain and JWT wiring. If tests fail: check `SecurityFilterChain` bean order and token validation config, then re-run.
6. **Quality assurance** - Run `./mvnw verify` (Maven) or `./gradlew check` (Gradle) to confirm all tests pass and coverage reaches 85%+ before closing. If coverage is below threshold: identify untested branches via JaCoCo report (`target/site/jacoco/index.html`), add missing test cases, re-run.
## Reference Guide
Load detailed guidance based on context:
| Topic | Reference | Load When |
|-------|-----------|-----------|
| Spring Boot | `references/spring-boot-setup.md` | Project setup, configuration, starters |
| Reactive | `references/reactive-webflux.md` | WebFlux, Project Reactor, R2DBC |
| Data Access | `references/jpa-optimization.md` | JPA, Hibernate, query tuning |
| Security | `references/spring-security.md` | OAuth2, JWT, method security |
| Testing | `references/testing-patterns.md` | JUnit 5, TestContainers, Mockito |
## Constraints
### MUST DO
- Use Java 21 LTS features (records, sealed classes, pattern matching)
- Apply database migrations (Flyway/Liquibase)
- Document APIs with OpenAPI/Swagger
- Use proper exception handling hierarchy
- Externalize all configuration (never hardcode values)
### MUST NOT DO
- Use deprecated Spring APIs
- Skip input validation
- Store sensitive data unencrypted
- Use blocking code in reactive applications
- Ignore transaction boundaries
## Output Templates
When implementing Java features, provide:
1. Domain models (entities, DTOs, records)
2. Service layer (business logic, transactions)
3. Repository interfaces (Spring Data)
4. Controller/REST endpoints
5. Test classes with comprehensive coverage
6. Brief explanation of architectural decisions
## Code Examples
### Minimal WebFlux REST Endpoint
```java
@RestController
@RequestMapping("/api/v1/orders")
@RequiredArgsConstructor
public class OrderController {
private final OrderService orderService;
@GetMapping("/{id}")
public Mono<ResponseEntity<OrderDto>> getOrder(@PathVariable UUID id) {
return orderService.findById(id)
.map(ResponseEntity::ok)
.defaultIfEmpty(ResponseEntity.notFound().build());
}
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
public Mono<OrderDto> createOrder(@Valid @RequestBody CreateOrderRequest request) {
return orderService.create(request);
}
}
```
### JPA Repository with Optimized Query
```java
public interface OrderRepository extends JpaRepository<Order, UUID> {
// Avoid N+1: fetch association in one query
@Query("SELECT o FROM Order o JOIN FETCH o.items WHERE o.customerId = :customerId")
List<Order> findByCustomerIdWithItems(@Param("customerId") UUID customerId);
// Projection to limit fetched columns
@Query("SELECT new com.example.dto.OrderSummary(o.id, o.status, o.total) FROM Order o WHERE o.status = :status")
Page<OrderSummary> findSummariesByStatus(@Param("status") OrderStatus status, Pageable pageable);
}
```
### Spring Security OAuth2 JWT Configuration
```java
@Configuration
@EnableMethodSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.sessionManagement(s -> s.sessionCreationPolicy(STATELESS))
.authorizeHttpRequests(auth -> auth
.requestMatchers("/actuator/health").permitAll()
.anyRequest().authenticated())
.oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))
.build();
}
}
```
## Knowledge Reference
Spring Boot 3.x, Java 21, Spring WebFlux, Project Reactor, Spring Data JPA, Spring Security, OAuth2/JWT, Hibernate, R2DBC, Spring Cloud, Resilience4j, Micrometer, JUnit 5, TestContainers, Mockito, Maven/Gradle
Maintained by [@jeffallan](https://github.com/jeffallan), Principal Consultant at [Synergetic Solutions](https://synergetic.solutions)
[Documentation](https://jeffallan.github.io/claude-skills/skills/language/java-architect/)
© https://github.com/Jeffallan · MIT · Jeffallan/claude-skills