agentleFS
MindrallyMindrally/skills/quarkus/SKILL.md

quarkus

Skill275 starsChanged 38 days agoApache-2.0View on GitHub

Expert guidance for Quarkus framework development with Jakarta EE, MicroProfile, GraalVM native builds, and reactive programming patterns

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

25 rules. About 0 are common, 24 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈24

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write clean, efficient, and well-documented Java code using Quarkus best practices

    line 15
  2. Distinctive:

    Follow Jakarta EE and MicroProfile conventions, ensuring clarity in package organization

    line 16
  3. Distinctive:

    Use descriptive method and variable names following camelCase convention

    line 17
  4. Distinctive:

    Use Quarkus annotations (@ApplicationScoped, @Inject, @ConfigProperty) effectively

    line 23
  5. Distinctive:

    Use PascalCase for class names (e.g., UserResource, OrderService)

    line 29
  6. Distinctive:

    Use camelCase for method and variable names (e.g., findUserById, isOrderValid)

    line 30
  7. Very specific:

    Use ALL_CAPS for constants (e.g., MAX_RETRY_ATTEMPTS, DEFAULT_PAGE_SIZE)

    line 31
  8. Distinctive:

    Use Java 17 or later features when applicable (e.g., records, sealed classes, pattern matching)

    line 35
  9. Distinctive:

    Use Vert.x for event-driven or reactive programming patterns

    line 38
  10. Distinctive:

    Use @ConfigProperty for type-safe configuration injection

    line 43
  11. Distinctive:

    Use CDI annotations (@Inject, @Named, @Singleton, @ApplicationScoped)

    line 48
  12. Distinctive:

    Prefer constructor injection or method injection over field injection for better testability

    line 49
  13. Distinctive:

    Write unit tests using JUnit 5 and @QuarkusTest for integration tests

    line 54
  14. Distinctive:

    Use rest-assured for testing REST endpoints

    line 55
  15. Distinctive:

    Use @QuarkusTestResource for managing test dependencies

    line 57
  16. Distinctive:

    Use @CacheResult and @CacheInvalidate for caching strategies

    line 62
  17. Distinctive:

    Use Quarkus Security extensions (quarkus-oidc, quarkus-smallrye-jwt) for authentication and authorization

    line 68
  18. Distinctive:

    Use Quarkus logging subsystem with SLF4J or JUL bridging

    line 75
  19. Distinctive:

    Use MicroProfile Metrics for application metrics

    line 77
  20. Distinctive:

    Use proper log levels and structured logging

    line 79
  21. Distinctive:

    Use Quarkus OpenAPI extension (quarkus-smallrye-openapi) for API documentation

    line 83
  22. Distinctive:

    Use Quarkus Hibernate ORM with Panache for simplified data access

    line 89
  23. Distinctive:

    Use Flyway or Liquibase for database schema migration

    line 91
  24. Distinctive:

    Use Maven or Gradle with Quarkus plugins (quarkus-maven-plugin)

    line 96
  25. Distinctive:

    Follow RESTful API design principles

    line 103

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Quarkus

You are an expert in Java programming, Quarkus framework, Jakarta EE, MicroProfile, GraalVM native builds, Vert.x for event-driven applications, Maven, JUnit, and related Java technologies.

Code Style and Structure

  • Write clean, efficient, and well-documented Java code using Quarkus best practices
  • Follow Jakarta EE and MicroProfile conventions, ensuring clarity in package organization
  • Use descriptive method and variable names following camelCase convention
  • Structure your application with consistent organization (resources, services, repositories, entities, configuration)

Quarkus Specifics

  • Leverage Quarkus Dev Mode for faster development cycles
  • Use Quarkus annotations (@ApplicationScoped, @Inject, @ConfigProperty) effectively
  • Implement build-time optimizations using Quarkus extensions and best practices
  • Configure native builds with GraalVM for optimal performance

Naming Conventions

  • Use PascalCase for class names (e.g., UserResource, OrderService)
  • Use camelCase for method and variable names (e.g., findUserById, isOrderValid)
  • Use ALL_CAPS for constants (e.g., MAX_RETRY_ATTEMPTS, DEFAULT_PAGE_SIZE)

Java and Quarkus Usage

  • Use Java 17 or later features when applicable (e.g., records, sealed classes, pattern matching)
  • Utilize Quarkus BOM for dependency management
  • Integrate MicroProfile APIs (Config, Health, Metrics, OpenAPI)
  • Use Vert.x for event-driven or reactive programming patterns

Configuration and Properties

  • Store configuration in application.properties or application.yaml
  • Use @ConfigProperty for type-safe configuration injection
  • Rely on Quarkus profiles (dev, test, prod) for environment-specific configurations

Dependency Injection and IoC

  • Use CDI annotations (@Inject, @Named, @Singleton, @ApplicationScoped)
  • Prefer constructor injection or method injection over field injection for better testability
  • Leverage Quarkus Arc for compile-time CDI processing

Testing

  • Write unit tests using JUnit 5 and @QuarkusTest for integration tests
  • Use rest-assured for testing REST endpoints
  • Implement in-memory databases or Testcontainers for integration testing
  • Use @QuarkusTestResource for managing test dependencies

Performance and Scalability

  • Optimize for native image creation using quarkus.native.* properties
  • Use @CacheResult and @CacheInvalidate for caching strategies
  • Implement reactive patterns with Vert.x or Mutiny for non-blocking I/O
  • Employ database indexing and query optimization techniques

Security

  • Use Quarkus Security extensions (quarkus-oidc, quarkus-smallrye-jwt) for authentication and authorization
  • Integrate MicroProfile JWT for token-based security
  • Handle CORS configuration and security headers via Quarkus extensions
  • Implement proper input validation

Logging and Monitoring

  • Use Quarkus logging subsystem with SLF4J or JUL bridging
  • Implement MicroProfile Health checks for readiness and liveness probes
  • Use MicroProfile Metrics for application metrics
  • Integrate MicroProfile OpenTracing for distributed tracing
  • Use proper log levels and structured logging

API Documentation

  • Use Quarkus OpenAPI extension (quarkus-smallrye-openapi) for API documentation
  • Provide detailed OpenAPI annotations for resources and operations
  • Generate interactive documentation with Swagger UI

Data Access and ORM

  • Use Quarkus Hibernate ORM with Panache for simplified data access
  • Implement proper entity relationships and cascading
  • Use Flyway or Liquibase for database schema migration
  • Leverage Quarkus Reactive SQL clients for reactive database access

Build and Deployment

  • Use Maven or Gradle with Quarkus plugins (quarkus-maven-plugin)
  • Configure multi-stage Docker builds for optimized container images
  • Employ proper profiles and environment variables for different deployment targets
  • Optimize for GraalVM native image creation with reflection configuration

General Best Practices

  • Follow RESTful API design principles
  • Leverage Quarkus for microservices architecture with fast startup and minimal memory usage
  • Implement asynchronous and reactive processing for efficient resource usage
  • Adhere to SOLID principles for high cohesion and low coupling
  • Design for cloud-native deployment (Kubernetes, OpenShift)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.