Agent skill

Jvm Helper

by shepherdjerred in shepherdjerred/monorepo

Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance.

GPL-3.0Auto-check passedMobile

Install Jvm Helper

skills CLI
$ npx skills add shepherdjerred/monorepo --skill jvm-helper -a claude-code

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

GitHub CLI
$ gh skill install shepherdjerred/monorepo jvm-helper --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/shepherdjerred/monorepo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/jvm-helper .claude/skills/jvm-helper && 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
jvm-helper
GitHub stars
112
Token cost
~1.9k tokens
SKILL.md length
873 words
Files
5 (incl. references)
Skills in repo
63
Repo updated
First seen
Licence
GPL-3.0

At a glance

Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance.

  • Works in 5 steps: Establish resource limits and… → Collect JFR, GC, native-memory, thread,… → Change one supported option. → …
  • GraalVM Native Image
  • SKILL.md covers Current baseline, Establish the toolchain, Command authority and Verification without skipped…, plus 7 more sections
  • Calls java and javac

What it does

Jvm Helper is an agent skill from shepherdjerred/monorepo. Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance. Use when writing or reviewing Java or Kotlin, build files, JVM tests, concurrency, GraalVM Native Image, jlink/jpackage, or JVM tuning.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/build-and-test.md`, `references/diagnostics-and-packaging.md` and `references/java-and-kotlin.md`).

It sits in Mobile, covering Android development and Unit testing. It works with Java, Kotlin, JUnit and Gradle. The repository describes itself as: Monorepo for all of my projects. The licence is GPL-3.0.

When your agent uses it

  • GraalVM Native Image
  • Tasks that involve Android development
  • Tasks that involve Unit testing

Example prompts

  • “/jvm-helper”

Workflow steps

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

  1. Establish resource limits and latency/throughput SLOs.
  2. Collect JFR, GC, native-memory, thread, and allocation evidence.
  3. Change one supported option.
  4. Load test the real workload.
  5. Retain only measured improvement and document rollback.

What it can do on your machine

Read from SKILL.md and the folder at commit da14ae9. 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:

    • java
    • javac

    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

Jvm Helper loads about 1.9k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 873 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~61
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.7k

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 shepherdjerred/monorepo at commit da14ae9, republished under its GPL-3.0 licence (© shepherdjerred). 873 words, ~1,941 tokens.

Download SKILL.mdSave it as .claude/skills/jvm-helper/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
jvm-helper
description
Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance. Use when writing or reviewing Java or Kotlin, build files, JVM tests, concurrency, GraalVM Native Image, jlink/jpackage, or JVM tuning.

JVM Helper

Use the project's wrappers and toolchains, distinguish stable APIs from previews, and measure runtime behavior before changing JVM flags. Current releases are not automatic migration targets for an existing project.

Current baseline

Verified 2026-08-03:

ComponentCurrentBoundary
JavaJDK 26 GAJava 25 is Oracle-designated LTS; lifecycle and support vary by vendor
Kotlin2.4.10Kotlin 2.4 adds Java 26 support and stable context parameters
Gradle9.6.1Runs on JVM 17–26; use the project wrapper
Maven3.9.16 stable3.10 and Maven 4 remain preview lines
JUnit6.1.2Requires Java 17; major migration from JUnit 5
kotlinx.coroutines1.11.0Follow structured cancellation and dispatcher lifecycles

Spring Boot 4.1.0, Ktor 3.5.1, and Shadow 9.6.1 are current, but their major upgrades are not drop-in substitutions for an existing build.

Read references/releases.md for the 75-page research ledger. Read references/java-and-kotlin.md for current language/concurrency APIs. Read references/build-and-test.md for wrappers, Gradle, Maven, JUnit, and build-cache correctness. Read references/diagnostics-and-packaging.md for jcmd/JFR/JMX, JVM tuning, jlink, jpackage, and Native Image.

Establish the toolchain

bash
java --version
javac --version
./gradlew --version
./mvnw --version

Prefer repository wrappers and declared Java toolchains. A globally installed current JDK does not change the project's source, target, runtime, or support contract.

Command authority

Build and test commands create outputs and can resolve dependencies:

bash
./gradlew build
./mvnw verify

Live-process diagnostics can pause, attach to, or materially affect the target. Inspect the command's documented impact and production authority before running jcmd, jmap, heap dumps, or JFR operations. jmap is experimental and unsupported; prefer supported jcmd operations where appropriate.

Verification without skipped tests

Do not recommend -x test, -DskipTests, or maven.test.skip as a normal workflow. assemble only creates artifacts and does not satisfy verification.

For Maven, verify runs integration tests only when Failsafe or another plugin is bound to the integration-test and verify lifecycle phases. Check the POM before making the claim.

For Gradle, configure useJUnitPlatform() and the intended test suites. JUnit parallel execution is opt-in and must preserve test isolation.

Java concurrency

Virtual threads are appropriate for large numbers of blocking tasks, not CPU-bound parallelism. Create them through application-owned executors and close executor lifecycles.

JDK 24 eliminated nearly all virtual-thread pinning caused by synchronized. Do not mechanically replace correct synchronization with ReentrantLock; use JFR or jcmd to diagnose remaining pinning cases.

Structured Concurrency remains preview. The API changed across previews. On JDK 25, use StructuredTaskScope.open() or open(Joiner...), compile with --enable-preview --release 25, and run with --enable-preview. Verify the exact target JDK docs before copying an example.

Scoped Values finalized in JDK 25:

java
ScopedValue.where(CURRENT_USER, user).run(() -> handle(request));

Do not use removed preview-era runWhere examples.

HttpClient makes no guarantee that its default executor uses virtual threads. If blocking send should run in a virtual thread, create that ownership explicitly.

Kotlin coroutines

Preserve cooperative cancellation. A broad catch (Exception) can swallow CancellationException:

kotlin
try {
    performWork()
} catch (cancellation: CancellationException) {
    throw cancellation
} catch (failure: IOException) {
    handleFailure(failure)
}

Dispatchers.IO defaults to max(64, availableProcessors) parallelism and is configurable. limitedParallelism views can exceed that nominal bound. Treat these as implementation controls, not an application concurrency budget.

Close executor-backed dispatchers:

kotlin
Executors.newFixedThreadPool(4).asCoroutineDispatcher().use { dispatcher ->
    withContext(dispatcher) { performWork() }
}

K2 has been the default compiler since Kotlin 2.0. Remove obsolete -Pkotlin.experimental.tryK2=true guidance. Kotlin guard conditions were preview in 2.1 and stable in 2.2.

Nullability

Platform types cross an unchecked Java/Kotlin boundary. Use an identified annotation ecosystem and migration mode. Prefer JSpecify for new shared Java APIs where it fits; otherwise name the chosen JetBrains or Eclipse annotations rather than using unqualified @Nullable examples.

Show full SKILL.md (336 more words)Show less

Build correctness

Gradle cacheable tasks must declare every input and output. A generated version file needs the project version as an input; otherwise a version change can reuse stale output.

Use maven.compiler.release rather than redundant source/target/release settings. A Maven project containing Kotlin sources needs kotlin-maven-plugin executions ordered correctly with Java compilation; declaring kotlin.version alone does nothing.

Avoid fast-decaying dependency versions in generic snippets. Use version catalogs, BOMs, project properties, or clearly dated examples and consult migration guides for majors.

Diagnostics and tuning

Tune from evidence:

  1. Establish resource limits and latency/throughput SLOs.
  2. Collect JFR, GC, native-memory, thread, and allocation evidence.
  3. Change one supported option.
  4. Load test the real workload.
  5. Retain only measured improvement and document rollback.

Do not prescribe fixed heap ratios, stack sizes, compiler threads, pause targets, or direct-memory limits as universal defaults. Current JDKs use generational ZGC through -XX:+UseZGC; -XX:+ZGenerational is obsolete.

Heap dumps can contain secrets. Write them only to a private, access-controlled, capacity-checked path. Never enable unauthenticated or unencrypted remote JMX; use local attach, authenticated TLS, or an SSH-protected path.

Packaging

  • JDK 25 and later support named jlink compression such as --compress=zip-6; use it instead of deprecated numeric levels.
  • jpackage does not cross-compile; build each package format on its target platform.
  • Native Image uses closed-world analysis. Tracing-agent output covers only exercised behavior; prefer framework plugins and reachability metadata, then test representative paths.
  • Remove obsolete canonical --no-fallback guidance and measure artifact/runtime size rather than promising fixed megabytes.

Review checklist

  • Verify wrapper, JDK, Kotlin, build-tool, and test-platform versions.
  • Label previews and compile/run them with the exact target release.
  • Preserve cancellation and close custom executor/dispatcher lifecycles.
  • Do not claim HttpClient internals or stale virtual-thread pinning behavior.
  • Run tests without skip flags and verify Maven lifecycle bindings.
  • Declare complete Gradle task inputs and configure Kotlin Maven compilation explicitly.
  • Treat live-process diagnostics and heap dumps according to operational impact.
  • Secure JMX and diagnostic artifacts.
  • Tune from JFR/GC/native-memory evidence, not generic flag recipes.
  • Version-gate jlink syntax and build jpackage artifacts on each target platform.

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

Files

SKILL.md and 4 other files (references) in packages/dotfiles/dot_agents/skills/jvm-helper of shepherdjerred/monorepo.

  • SKILL.md
  • references/build-and-test.md
  • references/diagnostics-and-packaging.md
  • references/java-and-kotlin.md
  • references/releases.md

Open the folder on GitHubat commit da14ae9

Compare with similar skills

Jvm Helper 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.

Jvm Helper compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Jvm Helper this skillshepherdjerred/monorepo112—~1.9kAutomated safety check: PassGPL-3.0
Kotlin Tooling Java To KotlinJetBrains/skills3643 repos~1.4kAutomated safety check: PassApache-2.0
Mps TestsJetBrains/MPS1.7k—~2.9kAutomated safety check: PassApache-2.0
Native Testing Strategybladeofgod/flutter-ai-harness116—~345Automated safety check: PassMIT
Android Audio E2Ehyochan/react-native-nitro-sound961—~814Automated safety check: PassMIT
Harmonica DevKenjiOhtsuka/harmonica131—~742Automated safety check: PassMIT

Similar skills

  • Official

    A skill your agent uses when converting Java source files to idiomatic Kotlin, when user mentions "java to kotlin", "j2k", "convert java", "migrate java to kotlin", or when working with .java files…

    364 GitHub starsUsed in 3 repos~1.4k tokens
    MobileAuto-check passed
  • Mps Tests

    JetBrains/MPS

    Official

    A skill your agent uses when writing or modifying tests inside MPS @tests models — NodesTestCase (typesystem, constraints, scopes, dataflow, generator output), EditorTestCase (intentions, actions…

    1.7k GitHub stars~2.9k tokensUpdated yesterday
    MobileAuto-check passed
  • Native Testing Strategy

    bladeofgod/flutter-ai-harness

    适用:设计或审查 Kotlin/Swift 原生模块、Bridge Adapter、Host 编译、模拟器/设备和系统能力验证。不适用:纯 Dart/Flutter 测试或用 Fake 代替相机和权限真机验证。触发词:JUnit、XCTest、Robolectric、instrumented test、Swift Testing、Framework Fake、Gradle…

    116 GitHub stars~345 tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Android Audio E2E

    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…

    961 GitHub stars~814 tokensUpdated 9 days ago
    MobileAuto-check passed
  • Harmonica Dev

    KenjiOhtsuka/harmonica

    A skill your agent uses when working on the Harmonica Kotlin DB migration tool — planning, phase work, PRs, or anything touching this repo.

    131 GitHub stars~742 tokensUpdated 16 days ago
    MobileAuto-check passed

More from shepherdjerred/monorepo

All 63 skills in this repo
  • Bun Runtime Best Practices

    shepherdjerred/monorepo

    Bun runtime APIs and current operational patterns for files, processes, modules, networking, databases, tests, and deployment.

    112 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Bun Test Patterns

    shepherdjerred/monorepo

    Current Bun test runner guidance for discovery, isolation, parallelism, sharding, changed tests, mocks, timers, snapshots, coverage, DOM Testing Library, and integration teardown.

    112 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Bun Workspaces

    shepherdjerred/monorepo

    Current Bun workspace guidance for isolated and hoisted linkers, catalogs, filters, scripts, dependency classes, lockfiles, lifecycle trust, caches, publishing, TypeScript package exports, and…

    112 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Deep Research

    shepherdjerred/monorepo

    This skill should be used when the user asks to "deep research", "research this topic", "investigate thoroughly", "do a deep dive on", "comprehensive research on", "find everything about", "survey…

    112 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check: notes
  • Figma Use

    shepherdjerred/monorepo

    This skill should be used when the user asks to "create a Figma design", "design in Figma", "make a Figma mockup", "create an app icon", "design UI", "render JSX to Figma", "export from Figma"…

    112 GitHub stars~946 tokensUpdated yesterday
    Auto-check passed
  • Fish Helper

    shepherdjerred/monorepo

    Current Fish shell scripting, functions, abbreviations, completions, variables, events, configuration, plugins, testing, and safety guidance.

    112 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Jvm Helper

What does Jvm Helper do?

Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance. Jvm Helper is an agent skill from shepherdjerred/monorepo. Current Java, Kotlin, Gradle, Maven, JUnit, JVM diagnostics, packaging, and performance guidance.

When should I use Jvm Helper?

Jvm Helper fits situations like: graalVM Native Image; tasks that involve Android development; tasks that involve Unit testing.

How do I install Jvm Helper in Claude Code?

Run `npx skills add shepherdjerred/monorepo --skill jvm-helper -a claude-code`. Or copy the skill folder (packages/dotfiles/dot_agents/skills/jvm-helper in shepherdjerred/monorepo) into .claude/skills/jvm-helper in your project. Claude Code loads it when a task matches its description.

How do I install Jvm Helper in Codex?

Run `npx skills add shepherdjerred/monorepo --skill jvm-helper -a codex`. Or copy the skill folder (packages/dotfiles/dot_agents/skills/jvm-helper in shepherdjerred/monorepo) into .agents/skills/jvm-helper in your project. Codex loads it when a task matches its description.

Can I use Jvm Helper 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 shepherdjerred/monorepo --skill jvm-helper -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jvm-helper, .gemini/skills/jvm-helper, .github/skills/jvm-helper and .opencode/skills/jvm-helper in your project.

What does Jvm Helper need to run?

Going by SKILL.md and its folder, Jvm Helper needs the command-line tools its instructions call (java and javac).

Does Jvm Helper 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 Jvm Helper 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 Jvm Helper use?

Jvm Helper is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Jvm Helper use?

About 1.9k tokens (SKILL.md is roughly 7.8k 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 4.8k tokens, read only when the agent opens those files.

What are the alternatives to Jvm Helper?

Skills that share tags, products or a category with Jvm Helper: Kotlin Tooling Java To Kotlin (JetBrains/skills, 364 stars), Mps Tests (JetBrains/MPS, 1.7k stars), Native Testing Strategy (bladeofgod/flutter-ai-harness, 116 stars) and Android Audio E2E (hyochan/react-native-nitro-sound, 961 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Jvm Helper?

shepherdjerred (a GitHub user) maintains it in shepherdjerred/monorepo, which has 112 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on October 8, 2026.

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