Quarkus
Use this as the entrypoint skill for Quarkus work in any kind of project.
Use decision tree below to find the right domain, then load detailed references.
Decision Tree
What do you need?
├─ Dependency injection (CDI / ArC)
│ └─ dependency-injection
├─ Application configuration (.properties, profiles, config mapping)
│ └─ configuration
├─ REST and HTTP APIs
│ └─ web-rest
├─ Templates and server-side rendering (Qute)
│ └─ templates
├─ OpenAPI and API contract documentation
│ └─ openapi
├─ Databases, ORM, migrations, data access
│ ├─ Standard JPA / Hibernate ORM usage
│ │ └─ data-orm
│ ├─ Panache entities and repositories for simpler CRUD/data access
│ │ └─ data-panache
│ ├─ Schema migrations and database evolution with Flyway
│ │ └─ data-migrations
│ └─ Advanced Hibernate ORM features: multiple persistence units, multitenancy, caching, extension points
│ └─ data-orm-advanced
├─ Event streaming and asynchronous messaging channels
│ ├─ Is the event crossing a service/process boundary?
│ │ └─ YES -> messaging
│ └─ NO (in-process only)
│ ├─ Need clustering or non-blocking event loop behavior
│ │ └─ YES -> vertx-event-bus
│ └─ Want portability and type safety
│ └─ YES -> cdi-events
├─ Communicating with external APIs, communication between services
│ ├─ Need asynchronous delivery, replay, or broker-managed fan-out
│ │ └─ messaging
│ ├─ Need synchronous request/response calls
│ │ └─ service-communication
│ │ ├─ Shared protobuf contract and HTTP/2 streaming fit well
│ │ │ └─ service-communication-grpc
│ │ └─ Standard HTTP/JSON or simpler interoperability matters more
│ │ └─ service-communication-rest
├─ Authentication, authorization, identity providers
│ ├─ Need core Quarkus security concepts, RBAC, built-in auth mechanisms, or custom policies
│ │ └─ security-core
│ ├─ Protect endpoints with OpenID Connect
│ │ ├─ Inbound bearer tokens, browser login redirects, or hybrid OIDC apps
│ │ │ └─ security-oidc
│ │ └─ Outbound token acquisition, refresh, exchange, or propagation to downstream services
│ │ └─ security-oidc-client
│ ├─ Need JWT verification or token building without full OIDC integration
│ │ └─ security-jwt
│ ├─ Need username/password identity stores backed by JPA, JDBC, or LDAP
│ │ └─ security-identity-providers
│ ├─ Need passkeys or WebAuthn flows
│ │ └─ security-webauthn
│ └─ Need to test secured applications
│ └─ security-testing
├─ Logging, health, metrics, traces
│ ├─ Need help choosing signals, management exposure, or local observability stack
│ │ └─ observability
│ ├─ Logging configuration, JSON logs, MDC, and log shipping
│ │ └─ observability-logging
│ ├─ Liveness/readiness/startup probes and Health UI
│ │ └─ observability-health
│ ├─ Metrics, Micrometer registries, and Prometheus/OTLP export
│ │ └─ observability-metrics
│ └─ Distributed tracing, propagation, and OpenTelemetry
│ └─ observability-tracing
├─ Native image, jars, and container packaging
│ └─ native-and-packaging
│ ├─ Need a native build, closed-world metadata, native SSL, or native-only runtime behavior
│ │ └─ native-image
│ ├─ Need JVM artifact shape decisions: `fast-jar`, `uber-jar`, `mutable-jar`, layout, or re-augmentation
│ │ └─ packaging-jars
│ └─ Need container image packaging: Jib, Docker, Podman, OpenShift, Buildpacks, tags, push, or base images
│ └─ packaging-containers
├─ Testing
│ └─ Start with the feature module you are testing (for example `security-testing` or `native-image`)
└─ Dev mode, CLI, build plugins
└─ tooling
General guidelines
- Quarkus resolves much of its framework wiring at build time, so expect many integration mistakes to fail during build or startup rather than deep at runtime.
- Align all extension versions through the Quarkus platform BOM.
- Start with the smallest extension set, then add only what the feature needs.
- Never skip writing high-level integration tests and prefer them opposed to unit testing individual components. Only write unit tests when they are actually beneficial, e.g. implementing methods with complex logic
1---2name: quarkus-23description: Guides Quarkus development across REST APIs, CDI dependency injection, Hibernate ORM, Panache, configuration, OpenAPI, templates, messaging, security, observability, packaging, and tooling. Use when building Quarkus applications, adding endpoints or clients, configuring datasources or OIDC, debugging build or runtime issues, or choosing extensions.4license: MIT5---6
7# Quarkus
8
9Use this as the entrypoint skill for Quarkus work in any kind of project.
10Use decision tree below to find the right domain, then load detailed references.
11
12## Decision Tree
13
14```
15What do you need?
16├─ Dependency injection (CDI / ArC)
17│ └─ dependency-injection
18├─ Application configuration (.properties, profiles, config mapping)
19│ └─ configuration
20├─ REST and HTTP APIs
21│ └─ web-rest
22├─ Templates and server-side rendering (Qute)
23│ └─ templates
24├─ OpenAPI and API contract documentation
25│ └─ openapi
26├─ Databases, ORM, migrations, data access
27│ ├─ Standard JPA / Hibernate ORM usage
28│ │ └─ data-orm
29│ ├─ Panache entities and repositories for simpler CRUD/data access
30│ │ └─ data-panache
31│ ├─ Schema migrations and database evolution with Flyway
32│ │ └─ data-migrations
33│ └─ Advanced Hibernate ORM features: multiple persistence units, multitenancy, caching, extension points
34│ └─ data-orm-advanced
35├─ Event streaming and asynchronous messaging channels
36│ ├─ Is the event crossing a service/process boundary?
37│ │ └─ YES -> messaging
38│ └─ NO (in-process only)
39│ ├─ Need clustering or non-blocking event loop behavior
40│ │ └─ YES -> vertx-event-bus
41│ └─ Want portability and type safety
42│ └─ YES -> cdi-events
43├─ Communicating with external APIs, communication between services
44│ ├─ Need asynchronous delivery, replay, or broker-managed fan-out
45│ │ └─ messaging
46│ ├─ Need synchronous request/response calls
47│ │ └─ service-communication
48│ │ ├─ Shared protobuf contract and HTTP/2 streaming fit well
49│ │ │ └─ service-communication-grpc
50│ │ └─ Standard HTTP/JSON or simpler interoperability matters more
51│ │ └─ service-communication-rest
52├─ Authentication, authorization, identity providers
53│ ├─ Need core Quarkus security concepts, RBAC, built-in auth mechanisms, or custom policies
54│ │ └─ security-core
55│ ├─ Protect endpoints with OpenID Connect
56│ │ ├─ Inbound bearer tokens, browser login redirects, or hybrid OIDC apps
57│ │ │ └─ security-oidc
58│ │ └─ Outbound token acquisition, refresh, exchange, or propagation to downstream services
59│ │ └─ security-oidc-client
60│ ├─ Need JWT verification or token building without full OIDC integration
61│ │ └─ security-jwt
62│ ├─ Need username/password identity stores backed by JPA, JDBC, or LDAP
63│ │ └─ security-identity-providers
64│ ├─ Need passkeys or WebAuthn flows
65│ │ └─ security-webauthn
66│ └─ Need to test secured applications
67│ └─ security-testing
68├─ Logging, health, metrics, traces
69│ ├─ Need help choosing signals, management exposure, or local observability stack
70│ │ └─ observability
71│ ├─ Logging configuration, JSON logs, MDC, and log shipping
72│ │ └─ observability-logging
73│ ├─ Liveness/readiness/startup probes and Health UI
74│ │ └─ observability-health
75│ ├─ Metrics, Micrometer registries, and Prometheus/OTLP export
76│ │ └─ observability-metrics
77│ └─ Distributed tracing, propagation, and OpenTelemetry
78│ └─ observability-tracing
79├─ Native image, jars, and container packaging
80│ └─ native-and-packaging
81│ ├─ Need a native build, closed-world metadata, native SSL, or native-only runtime behavior
82│ │ └─ native-image
83│ ├─ Need JVM artifact shape decisions: `fast-jar`, `uber-jar`, `mutable-jar`, layout, or re-augmentation
84│ │ └─ packaging-jars
85│ └─ Need container image packaging: Jib, Docker, Podman, OpenShift, Buildpacks, tags, push, or base images
86│ └─ packaging-containers
87├─ Testing
88│ └─ Start with the feature module you are testing (for example `security-testing` or `native-image`)
89└─ Dev mode, CLI, build plugins
90 └─ tooling
91```
92
93## General guidelines
94
95- Quarkus resolves much of its framework wiring at build time, so expect many integration mistakes to fail during build or startup rather than deep at runtime.
96- Align all extension versions through the Quarkus platform BOM.
97- Start with the smallest extension set, then add only what the feature needs.
98- Never skip writing high-level integration tests and prefer them opposed to unit testing individual components. Only write unit tests when they are actually beneficial, e.g. implementing methods with complex logic