java-quarkus-development — Claude Code skill: setup and usage
Development guidelines for building Quarkus microservices. It directs the coding agent to handle reactive endpoints, Panache data access, and GraalVM native builds.
npx skills add Mindrally/skills --skill java-quarkus-development -a claude-codeWhat java-quarkus-development does
This skill guides coding assistants through Quarkus development patterns. It focuses on RESTEasy Reactive for HTTP APIs, paired with Mutiny for non-blocking execution. For persistence, the instructions direct the model toward Hibernate ORM with Panache using either the active record or repository pattern. Database migrations rely on Flyway or Liquibase.
Native image creation via GraalVM requires strict limits on reflection. The instructions explicitly enforce @RegisterForReflection only when needed, avoiding reflection-heavy structures that break ahead-of-time builds. Constructor injection remains the preferred CDI approach.
Application telemetry follows MicroProfile specifications. The agent writes readiness and liveness checks for Kubernetes probes, alongside Prometheus metrics export.
What it helps with
- Build reactive REST endpoints using Mutiny and RESTEasy Reactive
- Implement database models with Hibernate ORM with Panache
- Prepare Quarkus applications for GraalVM native image compilation
- Configure health probes and Prometheus metrics via MicroProfile
Example prompts for the agent
- Generate a reactive Quarkus endpoint for user registration with request validation
- Create a Product entity extending PanacheEntity with custom find queries
- Set up a multi-stage Dockerfile for a GraalVM native Quarkus image
How to install java-quarkus-development
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill java-quarkus-development -a claude-code2Manually: put the files in place
~/.claude/skills/java-quarkus-development/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/java-quarkus-development/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill java-quarkus-development -a codex2Manually: put the files in place
.agents/skills/java-quarkus-development/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill java-quarkus-development -a cursor2Manually: put the files in place
.cursor/skills/java-quarkus-development/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Mindrally/skills java-quarkus-development2Manually: put the files in place
.github/skills/java-quarkus-development/SKILL.md1Skills CLI (Vercel)
npx skills add Mindrally/skills --skill java-quarkus-development -a gemini-cli2Platform CLI
gemini skills install https://github.com/Mindrally/skills --path java-quarkus-developmentManually: put the files in place
.devin/skills/java-quarkus-development/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Mindrally/skills --skill java-quarkus-development -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about java-quarkus-development
How to install java-quarkus-development in Claude Code?
Run npx skills add Mindrally/skills --skill java-quarkus-development -a claude-code in your terminal. This imports the guidelines directly into your agent setup.
What does the java-quarkus-development skill do?
It provides coding guidelines for Quarkus, ensuring proper use of Panache, CDI bean discovery, and Mutiny primitives.
How does this skill handle GraalVM native image issues?
It instructs the agent to avoid reflection-heavy patterns and register necessary classes using @RegisterForReflection.
Source text
SKILL.md · Apache-2.0
--- name: java-quarkus-development description: Java Quarkus development guidelines for building cloud-native applications with fast startup, minimal memory footprint, and GraalVM native builds metadata: maintainer: Mindrally source: https://github.com/Mindrally/skills --- # Java Quarkus Development Best Practices ## Core Principles - Write clean, efficient, and well-documented Java code using Quarkus best practices - Focus on fast startup and minimal memory footprint via GraalVM native builds - Leverage Quarkus extensions for common functionality - Design for containerized and serverless deployments - Follow SOLID principles and microservices architecture patterns ## Development Workflow ### Quarkus Dev Mode - Use `quarkus dev` for rapid iteration with live reload - Leverage continuous testing during development - Use Dev UI for debugging and configuration inspection - Take advantage of Dev Services for local development ## Configuration ### Type-Safe Configuration - Use `@ConfigProperty` for type-safe configuration injection - Group related configs with `@ConfigMapping` interfaces - Validate configuration at startup - Document configuration properties ### Profile-Based Configuration - Use `%dev`, `%test`, `%prod` prefixes for environment-specific configs - Override configs via environment variables in production - Keep sensitive values out of source control - Use `.env` files for local development ## Dependency Injection ### CDI Annotations - Use `@Inject` for dependency injection - Use `@Named` to qualify implementations - Use `@Singleton`, `@ApplicationScoped`, `@RequestScoped` appropriately - Prefer constructor injection for required dependencies ### Bean Discovery - Understand Quarkus build-time bean discovery - Use `@IfBuildProfile` for conditional beans - Avoid reflection-heavy patterns for native builds ## REST API Development ### RESTEasy Reactive - Use `@Path`, `@GET`, `@POST`, etc. for endpoint definitions - Return proper HTTP status codes - Use `@Valid` for input validation - Implement exception mappers for consistent error responses ### Reactive Patterns - Use Mutiny for reactive programming - Leverage `Uni` and `Multi` for async operations - Combine reactive with imperative code where appropriate ## Data Access ### Hibernate ORM with Panache - Use Panache for simplified JPA patterns - Leverage Active Record or Repository patterns - Use `PanacheEntity` for entities with built-in operations - Implement custom queries with `find` and `list` methods ### Database Operations - Use Flyway or Liquibase for migrations - Configure connection pooling with Agroal - Use reactive database clients for non-blocking I/O ## Testing ### JUnit 5 Integration - Use `@QuarkusTest` for integration tests - Use `@QuarkusIntegrationTest` for native image tests - Leverage test profiles for different configurations ### REST Endpoint Testing - Use rest-assured for endpoint testing - Test both success and error scenarios - Verify response bodies and status codes - Test authentication and authorization ## Performance Optimization ### Native Image Optimization - Build native images with GraalVM for production - Test native builds regularly during development - Use `@RegisterForReflection` when needed - Minimize reflection usage ### Memory and Startup - Monitor memory usage in containers - Optimize for serverless cold starts - Use lazy initialization where appropriate ## Observability ### Health Checks - Use MicroProfile Health for liveness and readiness probes - Implement custom health checks for dependencies - Configure Kubernetes probes based on health endpoints ### Metrics - Use MicroProfile Metrics for application metrics - Export metrics in Prometheus format - Add custom metrics for business operations ### Distributed Tracing - Use OpenTracing/OpenTelemetry integration - Propagate trace context across services - Configure sampling appropriately for production ## Security - Use Quarkus Security extensions - Implement authentication with OIDC or JWT - Configure CORS for web clients - Validate and sanitize all inputs - Use HTTPS in production ## Containerization - Use Quarkus container image extensions - Build multi-stage Dockerfiles for native images - Configure resource limits appropriately - Use distroless or minimal base images
© Mindrally · Apache-2.0 · Mindrally/skills