Benchmark
affaan-m/ECC
Measure performance baselines and detect regressions across browser Core Web Vitals (LCP, INP, CLS, page weight), API endpoint latency percentiles, and build/test feedback times, with before/after…
Provision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JetBrains/youtrackdb run-jmh-benchmarks-hetzner --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/run-jmh-benchmarks-hetzner .claude/skills/run-jmh-benchmarks-hetzner && rm -rf skills-srcUse ~/.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/
Install the "run-jmh-benchmarks-hetzner" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetzner into .claude/skills/run-jmh-benchmarks-hetzner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-jmh-benchmarks-hetzner", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetznerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JetBrains/youtrackdb run-jmh-benchmarks-hetzner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/run-jmh-benchmarks-hetzner .agents/skills/run-jmh-benchmarks-hetzner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "run-jmh-benchmarks-hetzner" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetzner into .agents/skills/run-jmh-benchmarks-hetzner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-jmh-benchmarks-hetzner", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JetBrains/youtrackdb run-jmh-benchmarks-hetzner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/run-jmh-benchmarks-hetzner .cursor/skills/run-jmh-benchmarks-hetzner && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "run-jmh-benchmarks-hetzner" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetzner into .cursor/skills/run-jmh-benchmarks-hetzner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-jmh-benchmarks-hetzner", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JetBrains/youtrackdb.git --path .claude/skills/run-jmh-benchmarks-hetzner--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JetBrains/youtrackdb run-jmh-benchmarks-hetzner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/run-jmh-benchmarks-hetzner .gemini/skills/run-jmh-benchmarks-hetzner && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "run-jmh-benchmarks-hetzner" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetzner into .gemini/skills/run-jmh-benchmarks-hetzner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-jmh-benchmarks-hetzner", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JetBrains/youtrackdb run-jmh-benchmarks-hetznerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/run-jmh-benchmarks-hetzner .github/skills/run-jmh-benchmarks-hetzner && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "run-jmh-benchmarks-hetzner" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetzner into .github/skills/run-jmh-benchmarks-hetzner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-jmh-benchmarks-hetzner", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JetBrains/youtrackdb run-jmh-benchmarks-hetzner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/youtrackdb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/run-jmh-benchmarks-hetzner .opencode/skills/run-jmh-benchmarks-hetzner && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "run-jmh-benchmarks-hetzner" agent skill from https://github.com/JetBrains/youtrackdb/tree/develop/.claude/skills/run-jmh-benchmarks-hetzner into .opencode/skills/run-jmh-benchmarks-hetzner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "run-jmh-benchmarks-hetzner", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
run-jmh-benchmarks-hetznerProvision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server.
Run Jmh Benchmarks Hetzner is an agent skill from JetBrains/youtrackdb, published by the product's own GitHub organization. Provision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server. Use ONLY when the user explicitly asks to run JMH benchmarks on a Hetzner server. Do NOT trigger for general benchmark requests or local benchmark runs.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: YouTrackDB is a general-use object-oriented graph database with storage format native to handle graph relations. YouTrackDB supports Gremlin queries and ACID transactions. YTDB… The licence is Apache-2.0.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 78d0f15. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
sshgithcloudcurlapt-getjavarsyncpython3scpFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use ssh, git, curl, rsync and scp, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
HETZNER_S3_ACCESS_KEYHETZNER_S3_SECRET_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Run Jmh Benchmarks Hetzner loads about 3.7k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,402 words of instructions outside code blocks.
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.
The automated check found patterns that need a careful read before installing.
- SSH key pair at `~/.ssh/id_ed25519` (or `~/.ssh/id_rsa`)name "$KEY_NAME" --public-key-from-file ~/.ssh/id_ed25519.pubssh-keygen -f ~/.ssh/known_hosts -R <IP>SSH host key conflict | `ssh-keygen -f ~/.ssh/known_hosts -R <IP>` |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.
The full file from JetBrains/youtrackdb at commit 78d0f15, republished under its Apache-2.0 licence (© JetBrains). 1,402 words, ~3,679 tokens.
.claude/skills/run-jmh-benchmarks-hetzner/SKILL.md (or your agent's skills folder).Provision a dedicated Hetzner cloud server, deploy the current working tree, run JMH benchmarks from any module, download results, and tear down the server.
hcloud CLI installed and authenticated (hcloud version to verify)~/.ssh/id_ed25519 (or ~/.ssh/id_rsa)Ask the user (or infer from context) which benchmark module to run. The project may contain multiple JMH benchmark modules. Common examples:
jmh-ldbc — LDBC SNB read query benchmarks (default if user says "run benchmarks")jmh-core dependency in pom.xmlDetermine:
-pl <module>)Defaults (good for comparison runs):
-f 1 -wi 3 -w 5s -i 5 -r 10sFor jmh-ldbc specifically:
-f 1 -wi 3 -w 5s -i 5 -r 10s-Djmh.args override — each tier has its own fork/warmup/measurement settings)Naming convention: Use jmh-bench-<branch> for the server and jmh-bench-key-<branch> for the SSH key, where <branch> is the current git branch name (sanitized: lowercase, slashes replaced with dashes, truncated to keep total name under 63 chars). This avoids conflicts when multiple benchmark runs execute concurrently on different branches.
# Determine branch-based names
BRANCH=$(git rev-parse --abbrev-ref HEAD | tr '[:upper:]/' '[:lower:]-' | cut -c1-40)
SERVER_NAME="jmh-bench-${BRANCH}"
KEY_NAME="jmh-bench-key-${BRANCH}"
# Upload local SSH public key
hcloud ssh-key create --name "$KEY_NAME" --public-key-from-file ~/.ssh/id_ed25519.pub
# Create CCX33: 8 dedicated AMD vCPUs, 32 GB RAM, Falkenstein DC
hcloud server create --name "$SERVER_NAME" --type ccx33 --image ubuntu-24.04 --location fsn1 --ssh-key "$KEY_NAME"Record the IPv4 address from the output. Wait ~15 seconds for the server to boot before attempting SSH.
If SSH fails with a host key conflict, remove the stale key:
ssh-keygen -f ~/.ssh/known_hosts -R <IP>ssh -o StrictHostKeyChecking=no root@<IP> \
'apt-get update -qq && apt-get install -y -qq openjdk-21-jdk-headless git tmux > /dev/null 2>&1 && java -version'Rsync the worktree root (the directory containing mvnw, pom.xml, core/, etc.), excluding .git, target, and .idea:
rsync -az --exclude='.git' --exclude='target' --exclude='.idea' <worktree-root>/ root@<IP>:/root/ytdb/Important: The working directory (e.g. /workspace/ytdb/ldbc-jmh) may be a git worktree — it contains the full project tree with mvnw at its root. Rsync this directory, NOT the parent /workspace/ytdb/.
Then initialize a git repo on the server (required by Spotless):
ssh root@<IP> 'git config --global --add safe.directory /root/ytdb && \
git config --global user.email "bench@test" && \
git config --global user.name "bench" && \
cd /root/ytdb && git init && git add -A && git commit -m "baseline" --quiet'The LDBC SF 1 CSV dataset and canonical curated parameters must be available before running benchmarks. Download from Hetzner Object Storage (S3 bucket bench-cache).
Available S3 artifacts:
| Key | Size | Description |
|---|---|---|
ldbc/ldbc-sf1-composite-merged-fk.tar.zst | ~195 MB | CSV dataset (SF 1) |
ldbc/ldbc-sf0.1-composite-merged-fk.tar.zst | ~19 MB | CSV dataset (SF 0.1) — for quick smoke tests only |
ldbc/curated-params-v3.json | — | Canonical curated parameters |
ldbc/factor-tables.json | — | Canonical factor tables |
Step 1: Generate presigned HTTPS URLs locally (boto3 required on the local machine):
# CSV dataset
python3 -c "
import boto3, os
# IMPORTANT: Force HTTPS — the HETZNER_S3_ENDPOINT env var may contain http://
# but Hetzner servers cannot reach the S3 endpoint over plain HTTP (connection timeout).
endpoint = os.environ['HETZNER_S3_ENDPOINT']
if endpoint.startswith('http://'):
endpoint = 'https://' + endpoint[len('http://'):]
s3 = boto3.client('s3',
endpoint_url=endpoint,
aws_access_key_id=os.environ['HETZNER_S3_ACCESS_KEY'],
aws_secret_access_key=os.environ['HETZNER_S3_SECRET_KEY'])
for key in ['ldbc/ldbc-sf1-composite-merged-fk.tar.zst', 'ldbc/curated-params-v3.json', 'ldbc/factor-tables.json']:
url = s3.generate_presigned_url('get_object',
Params={'Bucket': 'bench-cache', 'Key': key},
ExpiresIn=7200)
print(f'{key}: {url}')
"Step 2: Download CSV dataset and extract:
ssh root@<IP> "apt-get install -y -qq zstd > /dev/null 2>&1 && \
mkdir -p /root/ytdb/<module>/target/ldbc-dataset/sf1 && \
curl -sS -o /tmp/dataset.tar.zst '<CSV_PRESIGNED_URL>' && \
cd /root/ytdb/<module>/target/ldbc-dataset/sf1 && \
zstd -d /tmp/dataset.tar.zst -o /tmp/dataset.tar && \
tar xf /tmp/dataset.tar && \
rm -f /tmp/dataset.tar.zst /tmp/dataset.tar && \
echo 'Dataset ready' && ls static/ dynamic/"The CSV dataset uses LDBC datagen v1.0.0 CsvCompositeMergeForeign format. The DB will be created from CSVs during the pre-load step (Step 4b), which takes ~21 minutes for SF 1.
Step 3: Download canonical curated parameters and install into the DB directory (created here so they are available before the pre-load fork in Step 4b):
ssh root@<IP> "mkdir -p /root/ytdb/<module>/target/ldbc-bench-db && \
curl -sS -o /root/ytdb/<module>/target/ldbc-bench-db/factor-tables.json '<FACTOR_TABLES_URL>' && \
curl -sS -o /root/ytdb/<module>/target/ldbc-bench-db/curated-params-v3.json '<CURATED_PARAMS_URL>' && \
echo 'Canonical curated params installed'"Replace <module> with the benchmark module (e.g. jmh-ldbc), <CSV_PRESIGNED_URL> with the CSV dataset URL, and <CURATED_PARAMS_URL> / <FACTOR_TABLES_URL> with the corresponding URLs from Step 1.
Important: Use presigned HTTPS URLs + curl for S3 downloads. Do NOT use boto3 or awscli on the server — pip install is slow and boto3 downloads can hang over HTTP (port 80 is often blocked). The presigned URL approach is faster and more reliable.
Do not use the SURF repository at repository.surfsara.nl — it provides CsvComposite format (v0.3.5), which is incompatible with the benchmark loaders.
ssh root@<IP> 'cd /root/ytdb && chmod +x mvnw && \
./mvnw -pl <module> -am compile -DskipTests -Dspotless.check.skip=true -q'Replace <module> with the target benchmark module (e.g. jmh-ldbc).
Wait for BUILD SUCCESS (typically ~60-90 seconds on CCX33).
Critical for jmh-ldbc: The first JMH fork triggers DB loading (if using CSV) and parameter loading inside @Setup(Level.Trial). For multi-threaded benchmarks, threads start executing queries on a partially-loaded database, producing wildly inaccurate results.
Always run a pre-load fork before the real benchmarks to ensure the DB is ready and curated parameters are cached:
ssh root@<IP> 'cd /root/ytdb && ./mvnw -pl <module> -am verify -P bench -DskipTests -Dspotless.check.skip=true \
-Djmh.args="ic5_newGroups -f 1 -wi 0 -i 1 -r 1s -t 1" 2>&1 | tail -20'This runs a single fork (-f 1) that triggers:
Subsequent forked runs will find the existing DB and load curated parameters from the JSON cache — zero SQL queries needed.
Important: Use -f 1 (not -f 0). With -f 0 the benchmark runs in-process and the database may not persist to disk.
When comparing two code versions (A/B testing): Deploy both versions to separate directories (e.g., /root/ytdb and /root/ytdb-base). Load CSV and install canonical curated params for both. Both versions must use identical curated parameters — never let either version regenerate params independently, as internal data structure changes can alter iteration order and produce incomparable parameter sets (see IC4 desync incident in jmh-ldbc README).
IMPORTANT: Never run multiple benchmarks concurrently on the same server. Always wait for one benchmark run to complete before starting the next.
Start the benchmark in a tmux session so it survives SSH disconnects.
If the module has a bench Maven profile (like jmh-ldbc):
ssh root@<IP> 'tmux new-session -d -s bench \
"cd /root/ytdb && ./mvnw -pl <module> -am verify -P bench -DskipTests -Dspotless.check.skip=true \
-Djmh.args=\"<jmh-args> -rf json -rff /root/results.json\" \
2>&1 | tee /root/bench.log"'If the module produces an uber-jar:
ssh root@<IP> 'tmux new-session -d -s bench \
"cd /root/ytdb && java -jar <module>/target/benchmarks.jar \
<jmh-args> -rf json -rff /root/results.json \
2>&1 | tee /root/bench.log"'JMH parameters explained:
-f 1 — 1 fork (sufficient for comparison runs; use -f 3 for publication-grade results)-wi 3 -w 5s — 3 warmup iterations, 5 seconds each-i 5 -r 10s — 5 measurement iterations, 10 seconds each-e <pattern> — exclude benchmarks matching regex-rf json -rff /root/results.json — save results as JSONPoll periodically (every 5-10 minutes):
# Count completed benchmarks
ssh root@<IP> 'grep "^Result" /root/bench.log 2>/dev/null | wc -l'
# Check current benchmark
ssh root@<IP> 'tail -5 /root/bench.log'
# Check if complete
ssh root@<IP> 'grep "^# Run complete\|BUILD" /root/bench.log'Once # Run complete appears in the log:
# Download JSON results
scp root@<IP>:/root/results.json /tmp/claude-code-results.json
# Show summary table
ssh root@<IP> 'grep "^Benchmark\|thrpt\|avgt" /root/bench.log | head -60'Copy the JSON to the project directory with a descriptive name:
cp /tmp/claude-code-results.json <module>/<name>-results-ccx33.jsonAlways clean up to avoid charges. Use the same branch-based names from Step 1:
hcloud server delete "$SERVER_NAME"
hcloud ssh-key delete "$KEY_NAME"If baseline data exists (e.g. in memory files or previous JSON), present a comparison table with:
Changes within ~5-7% are typically measurement noise for multi-threaded benchmarks. Single-threaded benchmarks are more stable (~2-3% noise floor).
| Problem | Solution |
|---|---|
mvnw: No such file or directory | You rsynced the wrong directory. Rsync the worktree root that contains mvnw. |
| SSH host key conflict | ssh-keygen -f ~/.ssh/known_hosts -R <IP> |
detected dubious ownership | git config --global --add safe.directory /root/ytdb |
| JMH hangs or needs restart | ssh root@<IP> 'rm -f /tmp/jmh.lock' then re-run in tmux |
| Core test compilation fails | Add -Dmaven.test.skip=true to the compile command |
| Need real-time output | Use tmux + tee (already in the command above) |
| Wild/inconsistent ops/s in MT benchmarks | Dataset not pre-loaded. Run Step 4b first. The first fork loads the DB during warmup; MT threads see partially loaded data. |
apt-get lock on fresh server | Wait 30s for unattended-upgrades to finish, then retry. |
| Dataset not found error during setup | Dataset must be pre-downloaded via Step 3b (Hetzner S3). The benchmark no longer auto-downloads from SURF. |
@Threads(Threads.MAX) — one thread per available processor. On CCX33 this means 8 threads.-f 1 (Step 4b). The DB path is ./target/ldbc-bench-db.ldbc/curated-params-v3.json, ldbc/factor-tables.json). Always download and install them before the pre-load fork — never let the benchmark regenerate params independently, as different code versions produce different iteration orders, which cause the stride-based parameter sampling to select different query parameter sets, making results incomparable. See jmh-ldbc/README.md for the regeneration procedure (only needed when curation algorithm changes).unattended-upgrades on first boot. If apt-get install fails with "Could not get lock", wait 30 seconds and retry.ldbc-jmh-benchmarks.md in the auto-memory directory with new results after each run.bench-cache contains canonical curated params (ldbc/curated-params-v3.json, ldbc/factor-tables.json), SF 1 CSV (ldbc/ldbc-sf1-composite-merged-fk.tar.zst, ~195 MB), and SF 0.1 CSV (ldbc/ldbc-sf0.1-composite-merged-fk.tar.zst, ~19 MB). Credentials are in env vars HETZNER_S3_ACCESS_KEY / HETZNER_S3_SECRET_KEY / HETZNER_S3_ENDPOINT — never hardcode them.repository.surfsara.nl) provides the CsvComposite format (v0.3.5), which is incompatible with the benchmark loaders that expect CsvCompositeMergeForeign column layouts.© JetBrains, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/run-jmh-benchmarks-hetzner of JetBrains/youtrackdb.
Open the folder on GitHubat commit 78d0f15
Run Jmh Benchmarks Hetzner 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Run Jmh Benchmarks Hetzner this skillJetBrains/youtrackdb | 439 | — | ~3.7k | Automated safety check: Warn | Apache-2.0 | |
| Benchmarkaffaan-m/ECC | 277k | 3 repos | ~654 | Automated safety check: Pass | MIT | |
| Benchmarkaffaan-m/ECC | 276k | — | ~412 | Automated safety check: Pass | MIT | |
| Benchmarkaffaan-m/ECC | 276k | — | ~330 | Automated safety check: Pass | MIT | |
| Benchmarkandroidx/androidx | 6.1k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Benchmarksamchon/typia | 5.9k | — | ~1.2k | Automated safety check: Pass | MIT |
affaan-m/ECC
Measure performance baselines and detect regressions across browser Core Web Vitals (LCP, INP, CLS, page weight), API endpoint latency percentiles, and build/test feedback times, with before/after…
affaan-m/ECC
このスキルを使用して、パフォーマンスベースラインを測定し、PR前後の回帰を検出し、スタック代替案を比較します. An agent skill from affaan-m/ECC.
affaan-m/ECC
使用此技能测量性能基线,检测PR前后的回归,并比较堆栈替代方案。
androidx/androidx
Benchmarking and improving the performance of Jetpack Compose.
samchon/typia
Defines typia benchmark fixture integrity, result reporting, and publication safeguards.
garrytan/gstack
Establishes page load, Core Web Vitals and resource-size baselines, then compares before and after on every pull request to track performance trends over time.
JetBrains/youtrackdb
Audit a finished design document for hard-to-read or hard-to-understand paragraphs, then harden the house-style rules so future design docs avoid them.
JetBrains/youtrackdb
Review documentation files for grammar, factual accuracy, and query correctness.
JetBrains/youtrackdb
Apply an edit to design.md or design-mechanics.md through the mutation discipline: apply → auto-review → iterate → present.
JetBrains/youtrackdb
Migrate a branch's docs/adr/<dir/workflow/ artifacts by replaying workflow-format commits from the per-artifact stamp base through HEAD.
JetBrains/youtrackdb
Review a workflow-style PR's design, plan, and track files in research-mode Q&A; auto-records observations and submits a line-anchored review via gh api.
JetBrains/youtrackdb
Reviews any draft for AI writing tells and produces a clean rewrite.
Provision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server. Run Jmh Benchmarks Hetzner is an agent skill from JetBrains/youtrackdb, published by the product's own GitHub organization. Provision a Hetzner CCX33 server, deploy the project, run JMH benchmarks, collect results, and destroy the server.
Run Jmh Benchmarks Hetzner fits situations like: explicitly asks to run JMH benchmarks on a Hetzner server; general benchmark requests; local benchmark runs.
Run `npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a claude-code`. Or copy the skill folder (.claude/skills/run-jmh-benchmarks-hetzner in JetBrains/youtrackdb) into .claude/skills/run-jmh-benchmarks-hetzner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a codex`. Or copy the skill folder (.claude/skills/run-jmh-benchmarks-hetzner in JetBrains/youtrackdb) into .agents/skills/run-jmh-benchmarks-hetzner in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/youtrackdb --skill run-jmh-benchmarks-hetzner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/run-jmh-benchmarks-hetzner, .gemini/skills/run-jmh-benchmarks-hetzner, .github/skills/run-jmh-benchmarks-hetzner and .opencode/skills/run-jmh-benchmarks-hetzner in your project.
Going by SKILL.md and its folder, Run Jmh Benchmarks Hetzner needs the command-line tools its instructions call (ssh, git, hcloud, curl, apt-get and java) and credentials named HETZNER_S3_ACCESS_KEY and HETZNER_S3_SECRET_KEY. Our summary lists: Python 3; A credential in HETZNER_S3_ACCESS_KEY; A credential in HETZNER_S3_SECRET_KEY.
SKILL.md contains no URLs. Its commands use ssh, git and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 4 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
Run Jmh Benchmarks Hetzner is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Run Jmh Benchmarks Hetzner: Benchmark (affaan-m/ECC, 277k stars), Benchmark (affaan-m/ECC, 276k stars), Benchmark (affaan-m/ECC, 276k stars) and Benchmark (androidx/androidx, 6.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/youtrackdb, which has 439 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 10, 2026.
Source: JetBrains/youtrackdb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.