[GR-73320] Introducing agent skills for building Native Image#13073
Open
graalvmbot wants to merge 3 commits intomasterfrom
Open
[GR-73320] Introducing agent skills for building Native Image#13073graalvmbot wants to merge 3 commits intomasterfrom
graalvmbot wants to merge 3 commits intomasterfrom
Conversation
ba6fae2 to
087ec22
Compare
da48bc9 to
8a6fd57
Compare
zakkak
reviewed
Mar 18, 2026
Collaborator
zakkak
left a comment
There was a problem hiding this comment.
Hello, I added a few comments for your consideration.
It's also not clear to me why the skills need to be present both under docs and substratevm.
|
|
||
| For metadata layout and file semantics, see the [Reachability Metadata documentation](https://www.graalvm.org/latest/reference-manual/native-image/metadata/). | ||
|
|
||
| Minimal `reflect-config.json` example: |
Collaborator
There was a problem hiding this comment.
Shouldn't it be instructed to use reachability-metadata.json instead?
|
|
||
| **If you want best runtime performance:** | ||
| ```bash | ||
| native-image -O3 <class> # or combine with --pgo |
Collaborator
There was a problem hiding this comment.
Suggested change
| native-image -O3 <class> # or combine with --pgo | |
| native-image -O3 <class> # or combine with --pgo (GraalVM EE only) |
| native-image --enable-all-security-services <class> | ||
| ``` | ||
|
|
||
| **If you need a Software Bill of Materials (SBOM):** |
Collaborator
There was a problem hiding this comment.
Suggested change
| **If you need a Software Bill of Materials (SBOM):** | |
| **If you need a Software Bill of Materials (SBOM) (GraalVM EE only):** |
|
|
||
| **Quick diagnostic command** - run the app with warning mode to see all missing registrations without crashing: | ||
| ```shell | ||
| java -XX:MissingRegistrationReportingMode=Warn -jar your-app.jar |
Collaborator
There was a problem hiding this comment.
It might be worth pointing out that by default the stack traces reported in Warn mode are limited, and it can tune the limit. Increasing the limit will increase the context usage though.
| ```shell | ||
| native-image -Duser.country=US -Duser.language=en -H:IncludeLocales=fr,de | ||
| # or include everything: | ||
| native-image -H:+IncludeAllLocales |
Collaborator
There was a problem hiding this comment.
Might be worth clarifying that this can significantly increase the resulting binary size
d1c7342 to
2ce097e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces agent skills for building and troubleshooting Native Image builds. An agent skill is a
.mdfile that equips the agent with domain-specific knowledge and workflows it wouldn't otherwise have.Skill structure:
building-native-image/)SKILL.md, which is the entry point the agent executes when the skill is triggered. It contains the core instructions, decision logic, and pointers to any reference files the agent may need to loadSKILL.mdrequires YAML frontmatter at the top. The description field is the primary signal the agent uses to decide whether to load the skill at all, so it should clearly describe when and why the skill should triggerreferences/subdirectory holds supplementary resources that the agent loads on demand, keeping the mainSKILL.mdlean. This method is called progressive disclosure.Currently, skills are available for classic Native Image build setups and Gradle Native Build Tools (Maven support is coming). Keep in mind that this work is in progress, skills will expand over time.