{"owner":"quarkusio","repo":"quarkus","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md","AGENTS.md"],"skills":{"CLAUDE.md":"@AGENTS.md\n\n# Quarkus Coding Conventions\n\n## Skills\n\nWhen performing specific tasks, read the relevant skill file for detailed\nguidance before starting work:\n\n- **Writing build steps** — Read `.agents/skills/writing-build-steps/SKILL.md`\n  when creating or modifying `@BuildStep` methods, build items, or recorders.\n- **Writing tests** — Read `.agents/skills/writing-tests/SKILL.md`\n  when creating or modifying tests for Quarkus extensions.\n- **Working with config** — Read `.agents/skills/working-with-config/SKILL.md`\n  when creating or modifying `@ConfigMapping` configuration interfaces.\n- **Classloading and runtime-dev** — Read `.agents/skills/classloading-and-runtime-dev/SKILL.md`\n  when working with runtime-dev modules, conditional dependencies, or debugging classloading.\n- **Creating extensions** — Read `.agents/skills/creating-extensions/SKILL.md`\n  when creating a new extension or understanding the full module layout.\n- **Coding style** — Read `.agents/skills/coding-style/SKILL.md`\n  when unsure about formatting, naming, visibility, or logging conventions.\n- **Building and testing** — Read `.agents/skills/building-and-testing/SKILL.md`\n  when building, testing, or understanding Maven flags and build commands.\n- **Pull requests** — Read `.agents/skills/pull-requests/SKILL.md`\n  when preparing a pull request, writing commit messages, or choosing labels.\n- **Building docs** — Read `.agents/skills/building-docs/SKILL.md`\n  when building, previewing, or testing documentation changes locally.\n","AGENTS.md":"# Quarkus Coding Conventions\n\nEssential rules for working on the Quarkus codebase. Detailed guidance for\nspecific tasks is available in `.agents/skills/` — consult the relevant skill\nwhen performing that type of work.\n\n## General Principles\n\n- **Update documentation.** When changes affect user-facing behavior, config, or\n  APIs, update the relevant `.adoc` files in `docs/src/main/asciidoc/`.\n- **Add or update tests.** Bug fixes need a reproducer test. New features need\n  tests. Test in both JVM and native mode for non-trivial changes. Prefer\n  AssertJ for assertions.\n- **You are responsible for what you submit.** Validate all changes. Do not\n  submit AI-generated code without human oversight.\n\n## Project Structure\n\nQuarkus is a large multi-module Maven project:\n\n- `core/` — Core framework (builder, deployment, runtime, launcher)\n- `extensions/` — 200+ extensions (each has `runtime/` and `deployment/` modules)\n- `devtools/` — Maven/Gradle plugins, CLI\n- `independent-projects/` — Standalone sub-projects (ArC CDI, Qute, RESTEasy Reactive)\n- `integration-tests/` — Integration tests\n- `test-framework/` — JUnit 5 test utilities\n- `docs/` — Asciidoc documentation\n- `adr/` — Architecture Decision Records\n\n### Extension Module Layout\n\nEvery extension lives under `extensions/<name>/` with at minimum:\n\n- `runtime/` — Runtime classes, recorders, beans (`quarkus-<name>`)\n- `deployment/` — `@BuildStep` processors (`quarkus-<name>-deployment`)\n\nOptional modules: `runtime-api/`, `deployment-spi/`, `runtime-dev/`, `codegen/`, `cli/`, `codestart/`.\n\n**Deployment depends on runtime, NEVER the reverse.**\n\n## Classloading (Critical)\n\nQuarkus has a split classloading model — the #1 source of mistakes:\n\n- **Runtime code MUST NOT reference deployment classes.** Deployment modules are\n  not on the classpath at runtime. Violations cause `ClassNotFoundException`.\n- **Deployment code CAN reference runtime classes.**\n- **Recorders bridge the gap.** A `@Recorder` lives in the runtime module but is\n  invoked from deployment build steps — it generates bytecode that runs at runtime.\n\n## Build Commands\n\n```bash\n./mvnw -Dquickly                                                                          # Quick full build (skip tests/docs/native)\n./mvnw install -f extensions/<name>/                                                      # Build one extension\n./mvnw install -f core/ -DskipTests                                                       # Build core\n./mvnw verify -f extensions/<name>/ -Dtest-containers -Dstart-containers                  # Run extension tests\n./mvnw test -Dtest=MyTest -Dtest-containers -Dstart-containers                            # Run single test\n./mvnw verify -f integration-tests/<name>/ -Dtest-containers -Dstart-containers -Dnative  # Native tests\n```\n\nSet `MAVEN_OPTS=\"-Xmx4g\"`. Always use `install` (not just `compile`).\nIf you change a runtime module, rebuild its deployment module too.\n\n| Flag | Purpose |\n|------|---------|\n| `-Dquickly` | Skip tests, ITs, docs, native, validation |\n| `-Dnative` | Build and test native image |\n| `-DskipTests` | Skip unit tests |\n| `-Dincremental` | Only build changed modules |\n| `-Dtest-containers -Dstart-containers` | Auto-start containers for tests (always use when running tests) |\n\n**Do NOT run tests from multiple modules in parallel.** The Quarkus core\nrepository does not support parallel testing — there will be port conflicts.\nDo not use Maven's parallel build flags (`-T`, `-T1C`, `--threads`) when\nrunning tests, and do not launch multiple `./mvnw` test invocations\nconcurrently. Run test modules sequentially.\n\n**Do NOT use `-Dno-format`** to skip formatting checks. Formatting and\nimport sorting are applied automatically during compilation — there is no\nneed for a separate step. Let the build fix formatting for you.\n\n## Editing Rules\n\n- **Preserve existing comments.** When editing a section of code, keep all\n  existing comments that are not directly invalidated by your change. Never\n  drop comments from code you are not modifying.\n\n## Coding Style Essentials\n\n- 4-space indentation, enforced by `formatter-maven-plugin` — run\n  `./mvnw process-sources` to auto-format\n- **Never manually sort or reorder imports** — `impsort-maven-plugin` handles\n  import ordering automatically. Just add imports where needed; do not make\n  edits whose sole purpose is reorganizing imports.\n- Use **JBoss Logging** (`org.jboss.logging.Logger`), not SLF4J/JUL/Log4j\n- No `@author` tags, no wildcard imports\n- Naming: `<Feature>Processor.java`, `<Feature>Recorder.java`,\n  `<Description>BuildItem.java`, `<Feature>Config.java`\n- Package root: `io.quarkus.<extension-name>` (hyphens become underscores)\n- Use `@ConfigMapping` interfaces — legacy `@ConfigRoot` classes with\n  `@ConfigItem` are removed. New `quarkus.*` properties must always be\n  registered in a `@ConfigMapping`, even if read programmatically. See the\n  `working-with-config` skill for details.\n\n## On-Demand Skills\n\nDetailed guidance is available in `.agents/skills/` for specific tasks.\nConsult the relevant skill when you are about to do that type of work:\n\n| Skill | When to use                                                                           |\n|-------|---------------------------------------------------------------------------------------|\n| `writing-build-steps` | Creating or modifying `@BuildStep` methods, build items, or recorders                 |\n| `writing-tests` | Creating or modifying tests for Quarkus extensions                                    |\n| `working-with-config` | Creating or modifying `@ConfigMapping` configuration interfaces                       |\n| `classloading-and-runtime-dev` | Working with runtime-dev modules, conditional dependencies, or debugging classloading |\n| `creating-extensions` | Creating a new extension or understanding the full module layout                      |\n| `coding-style` | Code formatting, visibility, naming conventions, and logging                          |\n| `building-and-testing` | Maven build commands, flags, incremental builds, and build rules                      |\n| `pull-requests` | PR title/description conventions, commit hygiene, labels, and contribution rules      |\n| `writing-extension-devui` | Writing a Dev UI for a Quarkus extension                                              |\n| `building-docs` | Building, previewing, or testing documentation changes locally                        |\n"},"files":{"CLAUDE.md":"@AGENTS.md\n\n# Quarkus Coding Conventions\n\n## Skills\n\nWhen performing specific tasks, read the relevant skill file for detailed\nguidance before starting work:\n\n- **Writing build steps** — Read `.agents/skills/writing-build-steps/SKILL.md`\n  when creating or modifying `@BuildStep` methods, build items, or recorders.\n- **Writing tests** — Read `.agents/skills/writing-tests/SKILL.md`\n  when creating or modifying tests for Quarkus extensions.\n- **Working with config** — Read `.agents/skills/working-with-config/SKILL.md`\n  when creating or modifying `@ConfigMapping` configuration interfaces.\n- **Classloading and runtime-dev** — Read `.agents/skills/classloading-and-runtime-dev/SKILL.md`\n  when working with runtime-dev modules, conditional dependencies, or debugging classloading.\n- **Creating extensions** — Read `.agents/skills/creating-extensions/SKILL.md`\n  when creating a new extension or understanding the full module layout.\n- **Coding style** — Read `.agents/skills/coding-style/SKILL.md`\n  when unsure about formatting, naming, visibility, or logging conventions.\n- **Building and testing** — Read `.agents/skills/building-and-testing/SKILL.md`\n  when building, testing, or understanding Maven flags and build commands.\n- **Pull requests** — Read `.agents/skills/pull-requests/SKILL.md`\n  when preparing a pull request, writing commit messages, or choosing labels.\n- **Building docs** — Read `.agents/skills/building-docs/SKILL.md`\n  when building, previewing, or testing documentation changes locally.\n","AGENTS.md":"# Quarkus Coding Conventions\n\nEssential rules for working on the Quarkus codebase. Detailed guidance for\nspecific tasks is available in `.agents/skills/` — consult the relevant skill\nwhen performing that type of work.\n\n## General Principles\n\n- **Update documentation.** When changes affect user-facing behavior, config, or\n  APIs, update the relevant `.adoc` files in `docs/src/main/asciidoc/`.\n- **Add or update tests.** Bug fixes need a reproducer test. New features need\n  tests. Test in both JVM and native mode for non-trivial changes. Prefer\n  AssertJ for assertions.\n- **You are responsible for what you submit.** Validate all changes. Do not\n  submit AI-generated code without human oversight.\n\n## Project Structure\n\nQuarkus is a large multi-module Maven project:\n\n- `core/` — Core framework (builder, deployment, runtime, launcher)\n- `extensions/` — 200+ extensions (each has `runtime/` and `deployment/` modules)\n- `devtools/` — Maven/Gradle plugins, CLI\n- `independent-projects/` — Standalone sub-projects (ArC CDI, Qute, RESTEasy Reactive)\n- `integration-tests/` — Integration tests\n- `test-framework/` — JUnit 5 test utilities\n- `docs/` — Asciidoc documentation\n- `adr/` — Architecture Decision Records\n\n### Extension Module Layout\n\nEvery extension lives under `extensions/<name>/` with at minimum:\n\n- `runtime/` — Runtime classes, recorders, beans (`quarkus-<name>`)\n- `deployment/` — `@BuildStep` processors (`quarkus-<name>-deployment`)\n\nOptional modules: `runtime-api/`, `deployment-spi/`, `runtime-dev/`, `codegen/`, `cli/`, `codestart/`.\n\n**Deployment depends on runtime, NEVER the reverse.**\n\n## Classloading (Critical)\n\nQuarkus has a split classloading model — the #1 source of mistakes:\n\n- **Runtime code MUST NOT reference deployment classes.** Deployment modules are\n  not on the classpath at runtime. Violations cause `ClassNotFoundException`.\n- **Deployment code CAN reference runtime classes.**\n- **Recorders bridge the gap.** A `@Recorder` lives in the runtime module but is\n  invoked from deployment build steps — it generates bytecode that runs at runtime.\n\n## Build Commands\n\n```bash\n./mvnw -Dquickly                                                                          # Quick full build (skip tests/docs/native)\n./mvnw install -f extensions/<name>/                                                      # Build one extension\n./mvnw install -f core/ -DskipTests                                                       # Build core\n./mvnw verify -f extensions/<name>/ -Dtest-containers -Dstart-containers                  # Run extension tests\n./mvnw test -Dtest=MyTest -Dtest-containers -Dstart-containers                            # Run single test\n./mvnw verify -f integration-tests/<name>/ -Dtest-containers -Dstart-containers -Dnative  # Native tests\n```\n\nSet `MAVEN_OPTS=\"-Xmx4g\"`. Always use `install` (not just `compile`).\nIf you change a runtime module, rebuild its deployment module too.\n\n| Flag | Purpose |\n|------|---------|\n| `-Dquickly` | Skip tests, ITs, docs, native, validation |\n| `-Dnative` | Build and test native image |\n| `-DskipTests` | Skip unit tests |\n| `-Dincremental` | Only build changed modules |\n| `-Dtest-containers -Dstart-containers` | Auto-start containers for tests (always use when running tests) |\n\n**Do NOT run tests from multiple modules in parallel.** The Quarkus core\nrepository does not support parallel testing — there will be port conflicts.\nDo not use Maven's parallel build flags (`-T`, `-T1C`, `--threads`) when\nrunning tests, and do not launch multiple `./mvnw` test invocations\nconcurrently. Run test modules sequentially.\n\n**Do NOT use `-Dno-format`** to skip formatting checks. Formatting and\nimport sorting are applied automatically during compilation — there is no\nneed for a separate step. Let the build fix formatting for you.\n\n## Editing Rules\n\n- **Preserve existing comments.** When editing a section of code, keep all\n  existing comments that are not directly invalidated by your change. Never\n  drop comments from code you are not modifying.\n\n## Coding Style Essentials\n\n- 4-space indentation, enforced by `formatter-maven-plugin` — run\n  `./mvnw process-sources` to auto-format\n- **Never manually sort or reorder imports** — `impsort-maven-plugin` handles\n  import ordering automatically. Just add imports where needed; do not make\n  edits whose sole purpose is reorganizing imports.\n- Use **JBoss Logging** (`org.jboss.logging.Logger`), not SLF4J/JUL/Log4j\n- No `@author` tags, no wildcard imports\n- Naming: `<Feature>Processor.java`, `<Feature>Recorder.java`,\n  `<Description>BuildItem.java`, `<Feature>Config.java`\n- Package root: `io.quarkus.<extension-name>` (hyphens become underscores)\n- Use `@ConfigMapping` interfaces — legacy `@ConfigRoot` classes with\n  `@ConfigItem` are removed. New `quarkus.*` properties must always be\n  registered in a `@ConfigMapping`, even if read programmatically. See the\n  `working-with-config` skill for details.\n\n## On-Demand Skills\n\nDetailed guidance is available in `.agents/skills/` for specific tasks.\nConsult the relevant skill when you are about to do that type of work:\n\n| Skill | When to use                                                                           |\n|-------|---------------------------------------------------------------------------------------|\n| `writing-build-steps` | Creating or modifying `@BuildStep` methods, build items, or recorders                 |\n| `writing-tests` | Creating or modifying tests for Quarkus extensions                                    |\n| `working-with-config` | Creating or modifying `@ConfigMapping` configuration interfaces                       |\n| `classloading-and-runtime-dev` | Working with runtime-dev modules, conditional dependencies, or debugging classloading |\n| `creating-extensions` | Creating a new extension or understanding the full module layout                      |\n| `coding-style` | Code formatting, visibility, naming conventions, and logging                          |\n| `building-and-testing` | Maven build commands, flags, incremental builds, and build rules                      |\n| `pull-requests` | PR title/description conventions, commit hygiene, labels, and contribution rules      |\n| `writing-extension-devui` | Writing a Dev UI for a Quarkus extension                                              |\n| `building-docs` | Building, previewing, or testing documentation changes locally                        |\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"@AGENTS.md\n\n# Quarkus Coding Conventions\n\n## Skills\n\nWhen performing specific tasks, read the relevant skill file for detailed\nguidance before starting work:\n\n- **Writing build steps** — Read `.agents/skills/writing-build-steps/SKILL.md`\n  when creating or modifying `@BuildStep` methods, build items, or recorders.\n- **Writing tests** — Read `.agents/skills/writing-tests/SKILL.md`\n  when creating or modifying tests for Quarkus extensions.\n- **Working with config** — Read `.agents/skills/working-with-config/SKILL.md`\n  when creating or modifying `@ConfigMapping` configuration interfaces.\n- **Classloading and runtime-dev** — Read `.agents/skills/classloading-and-runtime-dev/SKILL.md`\n  when working with runtime-dev modules, conditional dependencies, or debugging classloading.\n- **Creating extensions** — Read `.agents/skills/creating-extensions/SKILL.md`\n  when creating a new extension or understanding the full module layout.\n- **Coding style** — Read `.agents/skills/coding-style/SKILL.md`\n  when unsure about formatting, naming, visibility, or logging conventions.\n- **Building and testing** — Read `.agents/skills/building-and-testing/SKILL.md`\n  when building, testing, or understanding Maven flags and build commands.\n- **Pull requests** — Read `.agents/skills/pull-requests/SKILL.md`\n  when preparing a pull request, writing commit messages, or choosing labels.\n- **Building docs** — Read `.agents/skills/building-docs/SKILL.md`\n  when building, previewing, or testing documentation changes locally.\n","category":"root","tokens":379},{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# Quarkus Coding Conventions\n\nEssential rules for working on the Quarkus codebase. Detailed guidance for\nspecific tasks is available in `.agents/skills/` — consult the relevant skill\nwhen performing that type of work.\n\n## General Principles\n\n- **Update documentation.** When changes affect user-facing behavior, config, or\n  APIs, update the relevant `.adoc` files in `docs/src/main/asciidoc/`.\n- **Add or update tests.** Bug fixes need a reproducer test. New features need\n  tests. Test in both JVM and native mode for non-trivial changes. Prefer\n  AssertJ for assertions.\n- **You are responsible for what you submit.** Validate all changes. Do not\n  submit AI-generated code without human oversight.\n\n## Project Structure\n\nQuarkus is a large multi-module Maven project:\n\n- `core/` — Core framework (builder, deployment, runtime, launcher)\n- `extensions/` — 200+ extensions (each has `runtime/` and `deployment/` modules)\n- `devtools/` — Maven/Gradle plugins, CLI\n- `independent-projects/` — Standalone sub-projects (ArC CDI, Qute, RESTEasy Reactive)\n- `integration-tests/` — Integration tests\n- `test-framework/` — JUnit 5 test utilities\n- `docs/` — Asciidoc documentation\n- `adr/` — Architecture Decision Records\n\n### Extension Module Layout\n\nEvery extension lives under `extensions/<name>/` with at minimum:\n\n- `runtime/` — Runtime classes, recorders, beans (`quarkus-<name>`)\n- `deployment/` — `@BuildStep` processors (`quarkus-<name>-deployment`)\n\nOptional modules: `runtime-api/`, `deployment-spi/`, `runtime-dev/`, `codegen/`, `cli/`, `codestart/`.\n\n**Deployment depends on runtime, NEVER the reverse.**\n\n## Classloading (Critical)\n\nQuarkus has a split classloading model — the #1 source of mistakes:\n\n- **Runtime code MUST NOT reference deployment classes.** Deployment modules are\n  not on the classpath at runtime. Violations cause `ClassNotFoundException`.\n- **Deployment code CAN reference runtime classes.**\n- **Recorders bridge the gap.** A `@Recorder` lives in the runtime module but is\n  invoked from deployment build steps — it generates bytecode that runs at runtime.\n\n## Build Commands\n\n```bash\n./mvnw -Dquickly                                                                          # Quick full build (skip tests/docs/native)\n./mvnw install -f extensions/<name>/                                                      # Build one extension\n./mvnw install -f core/ -DskipTests                                                       # Build core\n./mvnw verify -f extensions/<name>/ -Dtest-containers -Dstart-containers                  # Run extension tests\n./mvnw test -Dtest=MyTest -Dtest-containers -Dstart-containers                            # Run single test\n./mvnw verify -f integration-tests/<name>/ -Dtest-containers -Dstart-containers -Dnative  # Native tests\n```\n\nSet `MAVEN_OPTS=\"-Xmx4g\"`. Always use `install` (not just `compile`).\nIf you change a runtime module, rebuild its deployment module too.\n\n| Flag | Purpose |\n|------|---------|\n| `-Dquickly` | Skip tests, ITs, docs, native, validation |\n| `-Dnative` | Build and test native image |\n| `-DskipTests` | Skip unit tests |\n| `-Dincremental` | Only build changed modules |\n| `-Dtest-containers -Dstart-containers` | Auto-start containers for tests (always use when running tests) |\n\n**Do NOT run tests from multiple modules in parallel.** The Quarkus core\nrepository does not support parallel testing — there will be port conflicts.\nDo not use Maven's parallel build flags (`-T`, `-T1C`, `--threads`) when\nrunning tests, and do not launch multiple `./mvnw` test invocations\nconcurrently. Run test modules sequentially.\n\n**Do NOT use `-Dno-format`** to skip formatting checks. Formatting and\nimport sorting are applied automatically during compilation — there is no\nneed for a separate step. Let the build fix formatting for you.\n\n## Editing Rules\n\n- **Preserve existing comments.** When editing a section of code, keep all\n  existing comments that are not directly invalidated by your change. Never\n  drop comments from code you are not modifying.\n\n## Coding Style Essentials\n\n- 4-space indentation, enforced by `formatter-maven-plugin` — run\n  `./mvnw process-sources` to auto-format\n- **Never manually sort or reorder imports** — `impsort-maven-plugin` handles\n  import ordering automatically. Just add imports where needed; do not make\n  edits whose sole purpose is reorganizing imports.\n- Use **JBoss Logging** (`org.jboss.logging.Logger`), not SLF4J/JUL/Log4j\n- No `@author` tags, no wildcard imports\n- Naming: `<Feature>Processor.java`, `<Feature>Recorder.java`,\n  `<Description>BuildItem.java`, `<Feature>Config.java`\n- Package root: `io.quarkus.<extension-name>` (hyphens become underscores)\n- Use `@ConfigMapping` interfaces — legacy `@ConfigRoot` classes with\n  `@ConfigItem` are removed. New `quarkus.*` properties must always be\n  registered in a `@ConfigMapping`, even if read programmatically. See the\n  `working-with-config` skill for details.\n\n## On-Demand Skills\n\nDetailed guidance is available in `.agents/skills/` for specific tasks.\nConsult the relevant skill when you are about to do that type of work:\n\n| Skill | When to use                                                                           |\n|-------|---------------------------------------------------------------------------------------|\n| `writing-build-steps` | Creating or modifying `@BuildStep` methods, build items, or recorders                 |\n| `writing-tests` | Creating or modifying tests for Quarkus extensions                                    |\n| `working-with-config` | Creating or modifying `@ConfigMapping` configuration interfaces                       |\n| `classloading-and-runtime-dev` | Working with runtime-dev modules, conditional dependencies, or debugging classloading |\n| `creating-extensions` | Creating a new extension or understanding the full module layout                      |\n| `coding-style` | Code formatting, visibility, naming conventions, and logging                          |\n| `building-and-testing` | Maven build commands, flags, incremental builds, and build rules                      |\n| `pull-requests` | PR title/description conventions, commit hygiene, labels, and contribution rules      |\n| `writing-extension-devui` | Writing a Dev UI for a Quarkus extension                                              |\n| `building-docs` | Building, previewing, or testing documentation changes locally                        |\n","category":"root","tokens":1610}]}