Agent skill

Creating Extensions

by quarkusio in quarkusio/quarkus

How to create a new Quarkus extension: full module layout, package naming, artifact naming, dependency rules, and Dev UI setup.

Apache-2.0Auto-check passed

Install Creating Extensions

skills CLI
$ npx skills add quarkusio/quarkus --skill creating-extensions -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install quarkusio/quarkus creating-extensions --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/quarkusio/quarkus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/creating-extensions .claude/skills/creating-extensions && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
creating-extensions
GitHub stars
16k
Token cost
~929 tokens
SKILL.md length
298 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

How to create a new Quarkus extension: full module layout, package naming, artifact naming, dependency rules, and Dev UI setup.

  • Works in 5 steps: Discuss with the Quarkus Core team first… → Add the repository to the specific… → Declare Maven Central first in the element → …
  • SKILL.md covers Extension Module Layout, Dependency Rules, Package Naming and Artifact Naming, plus 4 more sections
  • Calls mvn

What it does

Creating Extensions is an agent skill from quarkusio/quarkus. How to create a new Quarkus extension: full module layout, package naming, artifact naming, dependency rules, and Dev UI setup.

Its SKILL.md is about 930 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Quarkus: Supersonic Subatomic Java. The licence is Apache-2.0.

Example prompts

  • “/creating-extensions”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Discuss with the Quarkus Core team first — external repos are avoided
  2. Add the repository to the specific extension module's pom.xml, not the
  3. Declare Maven Central first in the element
  4. Add a .mvn/rrf/groupId-.txt file listing authorized
  5. Verify with: ./mvnw -Dquickly -Dmaven.repo.local=/tmp/temp-repo

What it can do on your machine

Read from SKILL.md and the folder at commit 31ef64b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • mvn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Creating Extensions loads about 929 tokens when it runs. Until then it costs about 37 tokens; SKILL.md has 298 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~37
When it runs · the whole SKILL.md, loaded when a task matches
~929

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from quarkusio/quarkus at commit 31ef64b, republished under its Apache-2.0 licence (© quarkusio). 298 words, ~929 tokens.

Download SKILL.mdSave it as .claude/skills/creating-extensions/SKILL.md (or your agent's skills folder).
name
creating-extensions
description
How to create a new Quarkus extension: full module layout, package naming, artifact naming, dependency rules, and Dev UI setup.

Creating Extensions

Extension Module Layout

Every extension lives under extensions/<name>/ with this structure:

extensions/<name>/
  runtime/          # Runtime classes, recorders, beans (quarkus-<name>)
  runtime-api/      # (optional) Public APIs for loose coupling (quarkus-<name>-api)
  deployment/       # @BuildStep processors (quarkus-<name>-deployment)
  deployment-spi/   # (optional) Public build items for cross-extension use (quarkus-<name>-deployment-spi)
  runtime-dev/      # (optional) Dev UI/Shell components, dev mode only (quarkus-<name>-dev)
  codegen/          # (optional) Code generation utilities (quarkus-<name>-codegen)
  cli/              # (optional) CLI commands (quarkus-<name>-cli)
  codestart/        # (optional) Codestart templates (quarkus-<name>-codestart)

Only runtime and deployment are mandatory.

Dependency Rules

  • Deployment depends on runtime, never the reverse
  • External consumers use runtime-api or deployment-spi for loose coupling
  • External consumers use runtime or deployment for tight coupling
  • Both runtime/ and deployment/ POMs must include quarkus-extension-processor as an annotation processor path

Package Naming

ModulePackage
Runtimeio.quarkus.<extension-name>
Runtime internalsio.quarkus.<extension-name>.runtime.internal
Runtime APIio.quarkus.<extension-name>.api
Deploymentio.quarkus.<extension-name>.deployment
Deployment SPIio.quarkus.<extension-name>.deployment.spi
Runtime Devio.quarkus.<extension-name>.dev

Hyphenated names become underscored: quarkus-foo-bar -> io.quarkus.foo_bar

Artifact Naming

  • Runtime: quarkus-<name>
  • Deployment: quarkus-<name>-deployment
  • See adr/0009-extension-structure.adoc for the full naming table

Dev UI

  • Provide CardPageBuildItem and JsonRPCProvidersBuildItem in deployment processors guarded by @BuildSteps(onlyIf = IsLocalDevelopment.class)
  • Dev-only classes go in runtime-dev/ modules
  • See the classloading-and-runtime-dev skill for runtime-dev wiring details

After Creating an Extension

  • Run ./update-extension-dependencies.sh after adding/removing/renaming — this ensures modules like devtools/bom-descriptor-json build in the correct order relative to the new extension
  • Always install (not just compile) so dependent modules can find it
  • If you change a runtime module, rebuild its deployment module too
  • Run mvn -Dowasp-check in the extension directory to check for known security vulnerabilities in dependencies

External Maven Repositories

Quarkus uses --ignore-transitive-repositories to ensure all dependencies come from Maven Central. If your extension needs an external repository:

  1. Discuss with the Quarkus Core team first — external repos are avoided
  2. Add the repository to the specific extension module's pom.xml, not the root pom.xml
  3. Declare Maven Central first in the <repositories> element
  4. Add a .mvn/rrf/groupId-<REPOSITORY-ID>.txt file listing authorized groupIds (one per line)
  5. Verify with: ./mvnw -Dquickly -Dmaven.repo.local=/tmp/temp-repo

Independent Projects

Some sub-projects in independent-projects/ have their own build lifecycle:

  • arc/ — The CDI implementation
  • resteasy-reactive/ — RESTEasy Reactive
  • qute/ — The templating engine
  • tools/ — Shared tooling utilities

These can be built standalone but are also included in the main Quarkus build.

© quarkusio, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/creating-extensions of quarkusio/quarkus.

Open the folder on GitHubat commit 31ef64b

Compare with similar skills

Creating Extensions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Creating Extensions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Creating Extensions this skillquarkusio/quarkus16k—~929Automated safety check: PassApache-2.0
Browser Extension Buildersickn33/agentic-awesome-skills47k2 repos~2.3kAutomated safety check: PassMIT
Browser Extension Launchsickn33/agentic-awesome-skills47k1 repos~1.4kAutomated safety check: PassMIT
Browser Extension Reversesickn33/agentic-awesome-skills47k1 repos~695Automated safety check: PassMIT
Quarkus TDDaffaan-m/ECC275k1 repos~6.4kAutomated safety check: PassMIT
Quarkus Securityaffaan-m/ECC275k—~3.1kAutomated safety check: PassMIT

Similar skills

  • Browser Extension Builder

    sickn33/agentic-awesome-skills

    Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions.

    47k GitHub starsUsed in 2 repos~2.3k tokens
    DevelopmentAuto-check passed
  • Browser Extension Launch

    sickn33/agentic-awesome-skills

    Builds, tests, packages, and prepares Chrome extensions for store launch from a plain-language idea; use for new extensions, fixes, releases, and submission recovery.

    47k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Browser Extension Reverse

    sickn33/agentic-awesome-skills

    Authorized reverse engineering of Chrome/Firefox extensions: manifest analysis, background workers, content scripts, and extension-based credential or data-exposure research.

    47k GitHub starsUsed in 1 repo~695 tokens
    SecurityAuto-check passed
  • Quarkus TDD

    affaan-m/ECC

    Test-driven development for Quarkus 3.x LTS using JUnit 5, Mockito, REST Assured, Camel testing, and JaCoCo.

    275k GitHub starsUsed in 1 repo~6.4k tokens
    Testing & QAAuto-check passed
  • Quarkus Security

    affaan-m/ECC

    Quarkus Security best practices for authentication, authorization, JWT/OIDC, RBAC, input validation, CSRF, secrets management, and dependency security.

    275k GitHub stars~3.1k tokensUpdated 3 days ago
    Backend & APIsAuto-check passed
  • Quarkus Patterns

    affaan-m/ECC

    Quarkus 3.x LTS architecture patterns with Camel for messaging, RESTful API design, CDI services, data access with Panache, and async processing.

    275k GitHub starsUsed in 1 repo~5.4k tokens
    Backend & APIsAuto-check passed

More from quarkusio/quarkus

All 12 skills in this repo
  • Manage Deprecations

    quarkusio/quarkus

    Maintain @Deprecated code in the Quarkus codebase: remove code that has been deprecated for more than 12 months, add the @Deprecated annotations that were missed when a related element was…

    16k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Building And Testing

    quarkusio/quarkus

    How to build and test Quarkus: Maven commands, build flags, incremental builds, justfile aliases, and important build rules.

    16k GitHub stars~615 tokensUpdated today
    Auto-check passed
  • Building Docs

    quarkusio/quarkus

    How to build, preview, and verify Quarkus documentation locally: root Maven build, docs rebuild, Roq dev server preview.

    16k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Quarkus split classloading model, runtime-dev module wiring, conditional dependencies, and common classloading mistakes.

    16k GitHub stars~635 tokensUpdated today
    Auto-check passed
  • Step-by-step guide for converting Quarkus extensions from the legacy @Record/@Recorder pattern to the ServiceRegistrar service system.

    16k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Pull Requests

    quarkusio/quarkus

    Rules for preparing pull requests and commits in the Quarkus project: title conventions, description format, commit hygiene, labels, and contribution policies.

    16k GitHub stars~840 tokensUpdated today
    Auto-check passed

Questions about Creating Extensions

What does Creating Extensions do?

How to create a new Quarkus extension: full module layout, package naming, artifact naming, dependency rules, and Dev UI setup. Creating Extensions is an agent skill from quarkusio/quarkus. How to create a new Quarkus extension: full module layout, package naming, artifact naming, dependency rules, and Dev UI setup.

How do I install Creating Extensions in Claude Code?

Run `npx skills add quarkusio/quarkus --skill creating-extensions -a claude-code`. Or copy the skill folder (.agents/skills/creating-extensions in quarkusio/quarkus) into .claude/skills/creating-extensions in your project. Claude Code loads it when a task matches its description.

How do I install Creating Extensions in Codex?

Run `npx skills add quarkusio/quarkus --skill creating-extensions -a codex`. Or copy the skill folder (.agents/skills/creating-extensions in quarkusio/quarkus) into .agents/skills/creating-extensions in your project. Codex loads it when a task matches its description.

Can I use Creating Extensions in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add quarkusio/quarkus --skill creating-extensions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/creating-extensions, .gemini/skills/creating-extensions, .github/skills/creating-extensions and .opencode/skills/creating-extensions in your project.

What does Creating Extensions need to run?

Going by SKILL.md and its folder, Creating Extensions needs the command-line tools its instructions call (mvn).

Does Creating Extensions access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Creating Extensions safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Creating Extensions use?

Creating Extensions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Creating Extensions use?

About 929 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Creating Extensions?

Skills that share tags, products or a category with Creating Extensions: Browser Extension Builder (sickn33/agentic-awesome-skills, 47k stars), Browser Extension Launch (sickn33/agentic-awesome-skills, 47k stars), Browser Extension Reverse (sickn33/agentic-awesome-skills, 47k stars) and Quarkus TDD (affaan-m/ECC, 275k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Creating Extensions?

quarkusio (a GitHub organization) maintains it in quarkusio/quarkus, which has 15,931 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.

Source: quarkusio/quarkus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.