Test Writer
axelixlabs/axelix
Writes new tests for Axelix source code (Java, Kotlin, TypeScript, JavaScript) that follow the project's testing standards — public-API contract coverage, test isolation, given/when/then structure…
Add, integrate, or review Micronaut Sourcegen usage in modules that generate Java source, Kotlin source, Groovy-compatible source, or bytecode from ObjectDef, TypeDef, MethodDef, ExpressionDef…
$ npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install micronaut-projects/micronaut-openapi micronaut-sourcegen --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/micronaut-projects/micronaut-openapi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/micronaut-sourcegen .claude/skills/micronaut-sourcegen && rm -rf skills-srcUse ~/.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/
Install the "micronaut-sourcegen" agent skill from https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegen into .claude/skills/micronaut-sourcegen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "micronaut-sourcegen", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegenType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install micronaut-projects/micronaut-openapi micronaut-sourcegen --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/micronaut-projects/micronaut-openapi.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/micronaut-sourcegen .agents/skills/micronaut-sourcegen && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "micronaut-sourcegen" agent skill from https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegen into .agents/skills/micronaut-sourcegen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "micronaut-sourcegen", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install micronaut-projects/micronaut-openapi micronaut-sourcegen --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/micronaut-projects/micronaut-openapi.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/micronaut-sourcegen .cursor/skills/micronaut-sourcegen && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "micronaut-sourcegen" agent skill from https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegen into .cursor/skills/micronaut-sourcegen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "micronaut-sourcegen", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/micronaut-projects/micronaut-openapi.git --path .agents/skills/micronaut-sourcegen--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install micronaut-projects/micronaut-openapi micronaut-sourcegen --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/micronaut-projects/micronaut-openapi.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/micronaut-sourcegen .gemini/skills/micronaut-sourcegen && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "micronaut-sourcegen" agent skill from https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegen into .gemini/skills/micronaut-sourcegen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "micronaut-sourcegen", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install micronaut-projects/micronaut-openapi micronaut-sourcegenInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/micronaut-projects/micronaut-openapi.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/micronaut-sourcegen .github/skills/micronaut-sourcegen && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "micronaut-sourcegen" agent skill from https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegen into .github/skills/micronaut-sourcegen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "micronaut-sourcegen", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install micronaut-projects/micronaut-openapi micronaut-sourcegen --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/micronaut-projects/micronaut-openapi.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/micronaut-sourcegen .opencode/skills/micronaut-sourcegen && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "micronaut-sourcegen" agent skill from https://github.com/micronaut-projects/micronaut-openapi/tree/7.3.x/.agents/skills/micronaut-sourcegen into .opencode/skills/micronaut-sourcegen/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "micronaut-sourcegen", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
micronaut-sourcegenAdd, integrate, or review Micronaut Sourcegen usage in modules that generate Java source, Kotlin source, Groovy-compatible source, or bytecode from ObjectDef, TypeDef, MethodDef, ExpressionDef…
Micronaut Sourcegen is an agent skill from micronaut-projects/micronaut-openapi. Add, integrate, or review Micronaut Sourcegen usage in modules that generate Java source, Kotlin source, Groovy-compatible source, or bytecode from ObjectDef, TypeDef, MethodDef, ExpressionDef, StatementDef, and SourceGenerator APIs.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/sourcegen-cookbook.md`). Compatibility notes: Micronaut framework and library modules that use io.micronaut.sourcegen for compile-time generation
It sits in Mobile, covering Android development and OpenAPI specifications. It works with Java, Kotlin and OpenAPI. The repository describes itself as: Generates OpenAPI / Swagger Documentation for Micronaut projects. The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4877fd7. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are kotlin and java).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Micronaut framework and library modules that use io.micronaut.sourcegen for compile-time generation
From compatibility in the SKILL.md frontmatter.
Micronaut Sourcegen loads about 3.3k tokens when it runs, and up to ~9.4k if it reads all its reference files. Until then it costs about 63 tokens; SKILL.md has 1,309 words of instructions outside code blocks.
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.
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.
The full file from micronaut-projects/micronaut-openapi at commit 4877fd7, republished under its Apache-2.0 licence (© micronaut-projects). 1,309 words, ~3,267 tokens.
.claude/skills/micronaut-sourcegen/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill when a Micronaut module wants to generate types with Micronaut Sourcegen instead of handwritten source strings, reflection, JavaPoet/KotlinPoet calls in visitors, or ad hoc bytecode. The target module may emit Java source, Kotlin source, Groovy-compatible source, or bytecode, but the generation logic should model the type once with io.micronaut.sourcegen.model.
Help other modules adopt Micronaut Sourcegen safely: choose the right backend, wire the right processor dependencies, build language-neutral model definitions, and verify generated Java/Kotlin/bytecode behavior with targeted tests.
Should trigger:
ClassDef and MethodDef."Should not trigger:
SourceGenerator.write(...) or bytecode writer APIs as appropriate.META-INF/services/io.micronaut.inject.visitor.TypeElementVisitor.annotationProcessor.ksp.sourcegen-generator-java when the module should emit .java source for VisitorContext.Language.JAVA; it also provides GroovyPoetSourceGenerator for GROOVY.sourcegen-generator-kotlin when Kotlin/KSP processing should emit .kt source for VisitorContext.Language.KOTLIN.sourcegen-generator-bytecode when Java-language processing should emit .class files directly through ByteCodeGenerator.VisitorContext.Language.JAVA, and SourceGenerators.findByLanguage(JAVA) expects a single effective backend.sourcegen-bytecode-writer directly only when implementing or testing bytecode writer behavior, not as the normal integration point for consuming annotation processors.sourcegen-generator for the model and service lookup APIs. Add sourcegen-annotations only when the module consumes Sourcegen annotations such as builders/wither support.annotationProcessor.ksp.sourcegen-generator-bytecode to annotationProcessor.Example repository-local shapes:
dependencies {
implementation(projects.sourcegenGenerator)
annotationProcessor(projects.sourcegenGeneratorJava)
annotationProcessor(projects.myCustomGenerators)
}dependencies {
ksp(projects.sourcegenGeneratorKotlin)
ksp(projects.myCustomGeneratorsKotlin)
}dependencies {
annotationProcessor(projects.sourcegenGeneratorBytecode)
annotationProcessor(projects.myCustomGenerators)
}ClassDef.builder, InterfaceDef.builder, RecordDef.builder, EnumDef.builder, AnnotationObjectDef.builder, MethodDef.builder, MethodDef.constructor, FieldDef.builder, PropertyDef.builder, ParameterDef.builder, TypeDef.of, ClassTypeDef.of, TypeDef.parameterized, ExpressionDef.constant, StatementDef.multi, StatementDef.doTry, expr.returning, expr.invoke, type.invokeStatic, type.getStaticField, and switch/if helper methods.new ClassTypeDef.Parameterized(...), new TypeDef.Array(...), new ExpressionDef.Constant(...), new StatementDef.Switch(...), or other new ...record(...) forms.TypeElementVisitor with VisitorKind.ISOLATING when generated output depends only on the visited element.SourceGenerators.findByLanguage(context.getLanguage()).orElse(null) and return when none is available.ObjectDef instances from Micronaut AST metadata (ClassElement, MethodElement, FieldElement, PropertyElement) when possible.sourceGenerator.write(objectDef, context, originatingElement).SourceGenerators.handleFatalException(...) when generation may postpone to a later round.Minimal visitor shape:
SourceGenerator sourceGenerator = SourceGenerators.findByLanguage(context.getLanguage()).orElse(null);
if (sourceGenerator == null) {
return;
}
ClassDef generated = ClassDef.builder(element.getPackageName() + ".Generated")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addMethod(MethodDef.builder("name")
.addModifiers(Modifier.PUBLIC)
.returns(TypeDef.STRING)
.build((aThis, params) -> ExpressionDef.constant("generated").returning()))
.build();
sourceGenerator.write(generated, context, element);ClassDef, InterfaceDef, RecordDef, EnumDef, and AnnotationObjectDef for generated type kind.TypeDef and ClassTypeDef for primitives, arrays, generics, generated class names, nullability, and static field owners.MethodDef body builders for executable logic. Prefer explicit returns(...) for public or non-trivial generated methods.FieldDef instance and reference it with aThis.field(fieldDef) or generatedType.getStaticField(fieldDef) instead of repeating the field name and type.MethodDef instance and invoke it with receiver.invoke(methodDef, ...) or generatedType.invokeStatic(methodDef, ...) instead of repeating the method name, parameter types, and return type.ReflectionUtils.getRequiredMethod(...) or ReflectionUtils.getRequiredField(...). Pass method handles to receiver.invoke(method, ...) or type.invokeStatic(method, ...); pass static field handles to type.getStaticField(field); for instance fields, centralize the field-name/type bridge in a helper fed by the reflective Field. This uses reflection only at generation time to describe a known member; it must not generate runtime reflection.StatementDef.multi(...), expr.returning(), expr.newLocal(...), condition.doIf(...), expr.asExpressionSwitch(...), expr.asStatementSwitch(...), StatementDef.doTry(...), and invocation helpers to compose bodies.ClassTypeDef.getStaticField("NAME", valueType) for enum constants, static constants, class literals, and static-field arguments passed to invocations.TypeDef.STRING switch expression and ExpressionDef.constant("case") keys with asExpressionSwitch(...) or asStatementSwitch(...)..java behavior through Java test-suite tests.AGENTS.md: affected compile tasks, targeted tests, full affected module tests, ./gradlew -q cM, and ./gradlew -q spotlessCheck if new files were added.JavaPoetSourceGenerator writes Java source for VisitorContext.Language.JAVA.GroovyPoetSourceGenerator reuses the Java source generator for GROOVY.KotlinPoetSourceGenerator writes Kotlin source for VisitorContext.Language.KOTLIN.ByteCodeGenerator advertises JAVA and writes class files through context.visitClass(...); it does not support write(ObjectDef, Writer).Use references/sourcegen-cookbook.md for adoption patterns covering:
FieldDef or MethodDef instance when reading/writing generated fields or invoking generated methods.ReflectionUtils.getRequiredMethod(...) or ReflectionUtils.getRequiredField(...) handle can describe the member safely.JAVA Sourcegen backends on the same annotation-processor path unless selection is explicit and tested.name: frontmatter are micronaut-sourcegen.JAVA Sourcegen backend is present for a Java compilation path.FieldDef/MethodDef instances where available.SourceGenerator.write(...) or backend writer APIs where appropriate.references/sourcegen-cookbook.md© micronaut-projects, 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
SKILL.md and 1 other file (references) in .agents/skills/micronaut-sourcegen of micronaut-projects/micronaut-openapi.
Open the folder on GitHubat commit 4877fd7
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in micronaut-projects/micronaut-openapi, which our catalogue first saw on October 7, 2026.
Micronaut Sourcegen 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Micronaut Sourcegen this skillmicronaut-projects/micronaut-openapi | 114 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Test Writeraxelixlabs/axelix | 148 | — | ~2.2k | Automated safety check: Pass | LGPL-3.0 | |
| Build Teaql Appteaql/teaql-agent-kit | 2.8k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Android Maps Ktxgooglemaps/android-maps-ktx | 360 | — | ~897 | Automated safety check: Pass | Apache-2.0 | |
| Code StyleJetBrains/intellij-community | 21k | — | ~795 | Automated safety check: Pass | Custom licence | |
| Android Audio E2Ehyochan/react-native-nitro-sound | 961 | — | ~814 | Automated safety check: Pass | MIT |
axelixlabs/axelix
Writes new tests for Axelix source code (Java, Kotlin, TypeScript, JavaScript) that follow the project's testing standards — public-API contract coverage, test isolation, given/when/then structure…
teaql/teaql-agent-kit
Build or change a TeaQL application in Java, Rust, Go, Swift, Python, C/.NET, or TypeScript, including Kotlin/JVM applications that consume Java-generated libraries.
googlemaps/android-maps-ktx
Provides idiomatic Kotlin extension (KTX) patterns, reactive Flow event streams, and multi-subscriber shareIn rules for Google Maps SDK for Android and its Utility Library.
JetBrains/intellij-community
Apply IntelliJ Kotlin and Java code style when writing or reviewing.
hyochan/react-native-nitro-sound
Build and run device-backed Android end-to-end checks for react-native-nitro-sound permissions, recording, playback, listeners, pause/resume, seek, speed, audio focus, lifecycle behavior, and rapid…
rosuH/EasyWatermark
A skill your agent uses to fix unstable Jetpack Compose types once a stability diagnosis has identified them.
micronaut-projects/micronaut-openapi
Refactor oversized agent instruction files into a progressive-disclosure structure.
micronaut-projects/micronaut-openapi
Write and maintain Micronaut Framework module guides for micronaut-projects repositories.
micronaut-projects/micronaut-openapi
Execute Gradle maintainer operations for Micronaut repositories using micronaut-build internals and modern Gradle best practices.
micronaut-projects/micronaut-openapi
Create or update standalone Micronaut Guides in micronaut-projects/micronaut-guides, including topic discovery, guide authoring, validation, PDF export, and pull request handoff.
micronaut-projects/micronaut-openapi
Create new Agent Skills or improve existing ones in an agent-agnostic way.
micronaut-projects/micronaut-openapi
Implement and review Java code changes for Micronaut framework repositories using maintainer standards, including JSpecify null-safety conventions.
Categories
Add, integrate, or review Micronaut Sourcegen usage in modules that generate Java source, Kotlin source, Groovy-compatible source, or bytecode from ObjectDef, TypeDef, MethodDef, ExpressionDef…. Micronaut Sourcegen is an agent skill from micronaut-projects/micronaut-openapi. Add, integrate, or review Micronaut Sourcegen usage in modules that generate Java source, Kotlin source, Groovy-compatible source, or bytecode from ObjectDef, TypeDef, MethodDef, ExpressionDef, StatementDef, and SourceGenerator APIs.
Micronaut Sourcegen fits situations like: tasks that involve Android development; tasks that involve OpenAPI specifications.
Run `npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a claude-code`. Or copy the skill folder (.agents/skills/micronaut-sourcegen in micronaut-projects/micronaut-openapi) into .claude/skills/micronaut-sourcegen in your project. Claude Code loads it when a task matches its description.
Run `npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a codex`. Or copy the skill folder (.agents/skills/micronaut-sourcegen in micronaut-projects/micronaut-openapi) into .agents/skills/micronaut-sourcegen in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add micronaut-projects/micronaut-openapi --skill micronaut-sourcegen -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/micronaut-sourcegen, .gemini/skills/micronaut-sourcegen, .github/skills/micronaut-sourcegen and .opencode/skills/micronaut-sourcegen in your project.
SKILL.md names no scripts, command-line tools or credentials: Micronaut Sourcegen is instructions for the agent only. Compatibility (from SKILL.md): Micronaut framework and library modules that use io.micronaut.sourcegen for compile-time generation.
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.
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.
Micronaut Sourcegen is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Micronaut Sourcegen: Test Writer (axelixlabs/axelix, 148 stars), Build Teaql App (teaql/teaql-agent-kit, 2.8k stars), Android Maps Ktx (googlemaps/android-maps-ktx, 360 stars) and Code Style (JetBrains/intellij-community, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
micronaut-projects (a GitHub organization) maintains it in micronaut-projects/micronaut-openapi, which has 114 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.
Source: micronaut-projects/micronaut-openapi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.