Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/umit/skills/jmhnpx skills add umit/skills --skill jmhgit clone --depth 1 https://github.com/umit/skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/umit/skills/jmh)<a href="https://agentmods.dev/skills/umit/skills/jmh"><img src="https://agentmods.dev/badge/skills/umit/skills/jmh.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00273 | $0.01429 |
| Opus 5 | $0.00137 | $0.00714 |
| Sonnet 5 | $0.00055 | $0.00286 |
| Haiku 4.5 | $0.00027 | $0.00143 |
Grade A, and why
jmh scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 64 lines — stays where its author put it; the contents beside it link to each section on GitHub.
JMH — trustworthy Java microbenchmarks
Workflow
- Pre-flight before running — read
references/pitfalls.mdand apply its 15-point checklist to the benchmark source. Catch DCE, constant folding, missingBlackhole,@Fork(0),@Warmup < 5,finalconstants in the op, missing@State, raw loops without@OperationsPerInvocation. Most "fast" results come from broken benchmarks; catching this before running saves hours. - Identify the build system — Maven (
pom.xmlwithjmh-core) or Gradle (me.champeau.jmhplugin). Setup differs; running differs. Seereferences/maven.mdorreferences/gradle.md. - Pick the right
Mode—Throughputfor ops/sec,AverageTimefor ns/op,SingleShotTimefor cold-path / startup,SampleTimefor distribution (p50/p99). Wrong mode → wrong question answered. Seereferences/modes.md. - Write the benchmark — annotate class with
@State(Scope.Benchmark),@BenchmarkMode,@OutputTimeUnit,@Fork(value=3, jvmArgs={"-Xmx2g","-Xms2g"}),@Warmup(iterations=5),@Measurement(iterations=10). Every@Benchmarkmethod either returns a value or takes aBlackholeparameter. Use@Paramfor matrices instead of separate methods. - Re-check the source against the checklist after edits.
- Run with profilers attached — never run benchmarks without
-prof gc(allocation rate context) and ideally-prof async:output=flamegraph(flame graph per benchmark). Seereferences/profilers.md. - Output JSON (
-rf json -rff results.json) — never trust the console table alone; JSON is what diffing and visualization tools consume. - Analyze — drag
results.jsonto https://jmh.morethan.io for charts, or use Bencher/Codspeed in CI for continuous diff. Seereferences/analysis.md. - Report with confidence intervals — JMH prints
Score ± Error (99.9%). Two means are not different if their confidence intervals overlap. Don't claim "10% faster" inside the noise band.
Quick reference
What ships with it
7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 64 lines · 273 tokens per session scan A 6b1f64d9e1ce
jmh is a skill published in the GitHub repository umit/skills (6 stars, last pushed 4mo ago), licensed MIT. It adds 273 tokens to every session and 1,429 once invoked, about $0.0014 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
java-patterns
Java: Spring Boot, CompletableFuture, records, sealed types, JPA/Hibernate, virtual threads. Triggers: Java, Spring, JPA, Hibernate, Maven, Gradle, virtual thread, sealed class.
java-rules
Java coding rules: style, patterns, security, testing. Triggers: .java, pom.xml, build.gradle, Spring, Spring Boot, JPA, Hibernate, JUnit, Maven, Gradle.
Build Tool Conventions
Maven/Gradle standard layout, dependency management, plugin versioning, and reproducible builds.
azure-communication-common-java
Azure Communication Services common utilities for Java. Use when working with CommunicationTokenCredential, user identifiers, token refresh, or shared authentication across ACS services.
azure-security-keyvault-secrets-java
Azure Key Vault Secrets Java SDK for secret management. Use when storing, retrieving, or managing passwords, API keys, connection strings, or other sensitive configuration data.
azure-ai-anomalydetector-java
Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate/multivariate anomaly detection, time-series analysis, or AI-powered monitoring.