Java Agent Skills (Claude + Gemini)
Popular Java / Spring Boot skills that work in both Claude Code and Gemini CLI, and how to install them once for both.
Why one skill works in both
Both tools follow the Agent Skills open standard: a skill is a folder with a SKILL.md (YAML frontmatter + markdown instructions), plus optional reference files.
description is what the agent reads to decide when to load the skill. Only name + description sit in context until the skill is triggered.
Tool-specific frontmatter (e.g. allowed-tools for Claude Code) is ignored by the other tool, so the same folder is safe to share.
Where each tool looks
| Claude Code | Gemini CLI | |
|---|---|---|
| User (all projects) | ~/.claude/skills/<name>/SKILL.md |
~/.gemini/skills/ or ~/.agents/skills/ |
| Project | .claude/skills/<name>/SKILL.md |
.gemini/skills/ or .agents/skills/ |
| List skills | /skills, or ask "what skills do you have?" |
/skills list, gemini skills list --all |
| Install from git | copy folder, or /plugin marketplace add for plugin repos |
gemini skills install <url> --consent |
| Link a local dir | symlink | /skills link <path> --scope user |
| Activation | auto, when description matches | auto, after a consent prompt |
Popular Java skill repos
Stars as of 2026-09.
| Repo | ★ | Java skills | Good for |
|---|---|---|---|
| anthropics/skills | 178k | none Java-specific | reference for how to write skills |
| github/awesome-copilot | 39k | java-springboot, java-junit, java-docs, spring-boot-testing, javax-to-jakarta-migration, java-refactoring-extract-method, java-add-graalvm-native-image-support, create-spring-boot-java-project |
short, general best-practice skills |
| Jeffallan/claude-skills | 11.6k | java-architect, spring-boot-engineer, kotlin-specialist |
broad "senior engineer" persona skills |
| spring-ai-community/spring-ai-agent-utils | 0.6k | — (library) | running skills inside your own Spring AI app |
| giuseppe-trisciuoglio/developer-kit | 0.3k | ~50 in plugins/developer-kit-java/: spring-boot-test-patterns, unit-test-* (service, controller, wiremock...), spring-data-jpa, spring-boot-resilience4j, spring-boot-saga-pattern, aws-sdk-java-v2-*, langchain4j-* |
deep testing + AWS + LangChain4j |
| jdubois/dr-jskill | 0.3k | dr-jskill (single skill) |
generating a new Spring Boot 4 / Java 25 project |
| rrezartprebreza/spring-boot-skills | 0.3k | 33 skills × spring-boot-3/ and spring-boot-4/: spring-data-jpa, transactional-patterns, webflux-reactive-patterns, testing-pyramid, resilience-retry, spring-security-jwt, multi-module-maven, hexagonal-architecture, spring-modulith... |
focused, version-specific Spring Boot skills |
| a-pavithraa/springboot-skills-marketplace | <0.1k | code-reviewer, creating-springboot-projects, spring-data-jpa, springboot-migration |
small, review + migration |
Suggested starter set
| Need | Skill |
|---|---|
| General Spring Boot | rrezartprebreza/.../spring-boot-3/* (pick the ones you use) or awesome-copilot/java-springboot |
| JPA without N+1 | rrezartprebreza/.../spring-data-jpa |
@Transactional pitfalls |
rrezartprebreza/.../transactional-patterns |
| WebFlux | rrezartprebreza/.../webflux-reactive-patterns |
| Tests | developer-kit/.../spring-boot-test-patterns + unit-test-service-layer |
| New project | jdubois/dr-jskill |
Fewer, focused skills
Every installed skill puts its description in context and competes for triggering. Pick 5–10 you actually need rather than installing a whole repo.
Install once, use in both
Keep one copy of each skill and symlink it into both tools.
Update later: git -C ~/skills-src/spring-boot-skills pull. Both tools see the change.
Verify:
Per project instead of per user: same idea with .agents/skills/ and .claude/skills/ in the repo root, committed to git, so teammates on either tool get the same skills.
Writing your own portable skill
- Only rely on
name+descriptionin frontmatter; everything else is optional. - Write the
descriptionas when to use, with keywords: "Use when writing JPA entities, repositories,@Query, pagination...". - Keep
SKILL.mdshort; move long examples intoreferences/*.mdand link them. - Don't mention tool names (
Read,Bash,/command) in the instructions: they differ between Claude and Gemini. - Test the trigger in both tools with a prompt that should and one that shouldn't load it.
This site's java-architect skill
Java Architect Skill uses the same frontmatter layout as Jeffallan/claude-skills/java-architect, customised for Agrona/Aeron services. To make it portable, place it at .agents/skills/java-architect/SKILL.md and symlink into .claude/skills/.