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 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/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/umit/skills/jmh"><img src="https://agentmods.dev/badge/skills/umit/skills/jmh.svg" alt="Reviewed on agentmods" width="80" 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.5 | $0.00109 | $0.00572 |
| Sonnet 5.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 1mo 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.
- 1mo 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 5mo ago), licensed MIT. It adds 273 tokens to every session and 1,429 once invoked, about $0.0011 per session on Opus 5.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.
php-rules
PHP coding rules: style, patterns, security, testing. Triggers: .php, composer.json, Laravel, Symfony, PHPUnit, PSR-12, Composer.
csharp-rules
C#/.NET coding rules: style, patterns, security, testing. Triggers: .cs, .csproj, .sln, ASP.NET, ASP.NET Core, EF Core, LINQ, NUnit, xUnit, dotnet.
java-rules
Java coding rules: style, patterns, security, testing. Triggers: .java, pom.xml, build.gradle, Spring, Spring Boot, JPA, Hibernate, JUnit, Maven, Gradle.
python-rules
Python coding rules: style, patterns, security, testing. Triggers: .py, .pyi, pyproject.toml, requirements.txt, Pipfile, FastAPI, Django, Flask, pytest, SQLAlchemy, ruff, mypy.
java
Java language and JVM engineering standards — records and sealed-type modelling, JSpecify null-safety with NullAway as a build error, immutability, virtual threads and modern concurrency, Error Prone/ArchUnit/PIT build gates, JUnit 6 testing doctrine, and boundary security. Load whenever writing, refactoring, or…