benchmark
Skill3 starsChanged 30 days agoMITView on GitHub
Measure API latency, bundle size, and database query time, and compare them against saved baselines to catch performance regressions.
95 other projects use a version of this.
Adopted by
Most recently taken up by
- Rojios/everything-claude-codetheir own version, first seen Nov 8, 2026
- accso/ai-context-mcptheir own version, first seen Nov 8, 2026
- timurgaleev/vibestacktheir own version, first seen Nov 8, 2026
- pankaj-mahaur/Agent-Daemontheir own version, first seen Nov 6, 2026
- datafusion-contrib/datafusion-distributedtheir own version, first seen Nov 2, 2026
- menot-you/n-soultheir own version, first seen Nov 1, 2026
Used with
Projects with it also use ios-clean, ios-fix and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Saqlain-811Skillios-clean
Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)
Also in 5 projects that use this
Saqlain-811Skillios-fix
Autonomous iOS bug fixer. (gstack)
Also in 5 projects that use this
seek888Skillpair-agent
Pair a remote AI agent with your browser. One command generates a setup key and prints instructions the other agent can follow to connect. Works with OpenClaw, Hermes, Codex, Cursor, or any agent that can make HTTP requests. The remote agent gets its own tab with scoped access (read+write by default, admin on request). Use when asked to "pair agent", "connect agent", "share browser", "remote browser", "let another agent use my browser", or "give browser access". (gstack) Voice triggers (speech-to-text aliases): "pair agent", "connect agent", "share my browser", "remote browser access".
Also in 11 projects that use this
ShreyRaviSkilllanding-report
Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)
Also in 8 projects that use this
timurgaleevSkilldocument-generate
Generate missing docs for a feature, module or project as tutorials, how-tos, reference and explanation.
Also in 7 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 8 projects that use this
- +1 more from Saqlain-811
Other versions95 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 95
- garrytan/gstack★ 141ksame name
- dragonflydb/dragonfly★ 32ksame name
- xtermjs/xterm.js★ 21ksame name
- udecode/plate★ 17ksame name
- Z3Prover/z3★ 13ksame name
- androidx/androidx★ 6.1ksame name
- samchon/typia★ 6ksame name
- PaddlePaddle/FastDeploy★ 3.7ksame name
- zalando/skipper★ 3.3ksame name
- samchon/nestia★ 2.2ksame name
85 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository42 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- asideSkill
- assessmentSkill
- auditSkill
- brainSkill
- checkpointSkill
- cleanupSkill
- concise-modeSkill
- cross-modelSkill
- deploySkill
- designSkill
- explainSkill
- fix-issueSkill
- ganSkill
- guardSkill
- hotfixSkill
- incidentSkill
- infraSkill
- interview-meSkill
- investigateSkill
- migrateSkill
- module-auditSkill
- morningSkill
- onboardSkill
- planSkill
- profileSkill
- pr-summarySkill
- readmeSkill
- refactorSkill
- researchSkill
- resolveSkill
- respondSkill
- retroSkill
- reviewSkill
- session-logSkill
- setupSkill
- shipSkill
- skill-newSkill
- spikeSkill
- tddSkill
- testSkill
- zoom-outSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
22 rules. 0 are common, 16 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 81 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Run before and after a change that can move latency, bundle size, or query time, and save a baseline from a known-good commit first, since …
- Very specific: line 31
When .claude/benchmarks/<project>.json exists, compare per Comparison and flag regressions against the threshold table.
- Distinctive: line 38
Detect available tools: Check for load testing tools in order of preference:
- Very specific: line 43
If none is installed, name the supported tools and ask whether to install one, per Rules.
- Distinctive: line 45
Identify endpoints: Read route files or API documentation to find endpoints.
- Distinctive: line 60
Build the project: Run the build command from the project's scripts.
- Distinctive: line 73
Identify slow queries: Look for query logging configuration in the ORM or database config.
- Distinctive: line 75
Run the test suite with query timing: If the ORM supports query logging, enable it and capture execution times.
- Distinctive: line 105
When a baseline exists, compare every measurement against it:
- Very specific: line 131
When --save is passed:
- Distinctive: line 133
Run all requested measurements.
- Very specific: line 134
Write results to .claude/benchmarks/<project>.json.
- Very specific: line 135
Create the .claude/benchmarks/ directory if it does not exist.
- Distinctive: line 136
If a baseline already exists, show the diff before overwriting.
- Distinctive: line 143
When no load testing tool is installed, state which tools are supported and ask whether to install one.
- Distinctive: line 145
All timestamps in GMT.
- Distinctive: line 146
Never modify source code during benchmarking.
- Distinctive: line 159
Stop and ask for a staging or local URL when the only reachable target is production.
- Distinctive: line 160
Stop and rebuild when the build directory predates the last source change.
- Distinctive: line 161
Stop and ask which endpoints to measure when the route files list more than 10.
- Distinctive: line 162
Stop and revert when a source file changed during the run, since this skill measures only.
- Very specific: line 167
Every metric with a baseline carries a delta and an OK or REGRESSION status.
“Common” is measured: kept by at least 6 in 10 of the 81 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Overview
Establishes performance baselines and detects regressions by comparing current measurements against stored reference values.
When to Use
Run before and after a change that can move latency, bundle size, or query time, and save a baseline from a known-good commit first, since a comparison needs one.
| Invocation | Action |
/benchmark | Run all available measurement categories |
/benchmark api | Measure API endpoint latency only |
/benchmark bundle | Measure JS bundle size only |
/benchmark db | Measure database query time only |
/benchmark --save | Run all and save results as the new baseline |
/benchmark api --save | Run API latency and save as baseline |
Process
- Parse the invocation into categories and the
--saveflag; with no category, run all three. - Confirm the target is local or staging, then record the runtime version, tool version, and date in GMT.
- Measure each requested category per Measurement Categories below.
- When
.claude/benchmarks/<project>.jsonexists, compare per Comparison and flag regressions against the threshold table. - With
--save, write the new baseline per Saving Baselines.
Measurement Categories
API Latency
- Detect available tools. Check for load testing tools in order of preference:
which k6which wrkwhich heywhich ab- If none is installed, name the supported tools and ask whether to install one, per Rules. Never fall back to
curltiming, which yields no p95 or p99.
- Identify endpoints. Read route files or API documentation to find endpoints. Ask the user which endpoints to benchmark if the project has more than 10.
- Run measurements. For each endpoint, measure:
- p50 latency in milliseconds.
- p95 latency in milliseconds.
- p99 latency in milliseconds.
- Requests per second.
Report per endpoint:
Endpoint p50 p95 p99 RPS
Bundle Size
- Build the project. Run the build command from the project's scripts.
- Measure output. For each output file in the build directory:
- Raw size in bytes.
- Gzipped size in bytes.
Report:
File Raw Gzipped
Database Query Time
- Identify slow queries. Look for query logging configuration in the ORM or database config.
- Run the test suite with query timing. If the ORM supports query logging, enable it and capture execution times.
Report queries exceeding 100ms:
Query Duration Location
Baselines
Baselines are stored in .claude/benchmarks/<project>.json relative to the project root.
{
"timestamp": "2026-04-04T12:00:00Z",
"api": {
"GET /api/users": {"p50": 12, "p95": 45, "p99": 120, "rps": 850},
"POST /api/orders": {"p50": 25, "p95": 80, "p99": 200, "rps": 420}
},
"bundle": {
"main.js": {"raw": 245000, "gzipped": 78000},
"vendor.js": {"raw": 890000, "gzipped": 210000}
},
"db": {
"findUserById": {"p50": 2, "p95": 8}
}
}Comparison
When a baseline exists, compare every measurement against it:
- Compute deltas. For each metric, calculate the percentage change from baseline.
Flag regressions. A regression is any metric that worsened beyond the threshold:
Metric Regression threshold API p50 > 20% slower API p95 > 30% slower API p99 > 50% slower Bundle raw size > 10% larger Bundle gzipped size > 10% larger DB query time > 25% slower Report with deltas:
Metric Baseline Current Delta Status GET /api/users p50 12ms 15ms +25% REGRESSION main.js gzipped 78KB 76KB -2.6% OK - Summary. State total regressions found, total improvements, and unchanged metrics.
Saving Baselines
When --save is passed:
- Run all requested measurements.
- Write results to
.claude/benchmarks/<project>.json. - Create the
.claude/benchmarks/directory if it does not exist. - If a baseline already exists, show the diff before overwriting.
- Confirm the save to the user.
Rules
- Benchmarks must run against a local or staging environment, never production.
- Report median, not mean. See the Benchmark Methodology section of
../../standards/testing.md. - When no load testing tool is installed, state which tools are supported and ask whether to install one. Do not silently fall back to inaccurate methods.
- Bundle size measurements require a fresh build. Do not measure stale build artifacts.
- All timestamps in GMT.
- Never modify source code during benchmarking. This is a measurement-only skill.
- Include the runtime version, tool version, and measurement date in every report.
Common Rationalizations
- "Staging is down, production is close enough": production load skews every percentile and the run adds load to real users. Wait for staging or run locally.
- "The build output from earlier is fine": a stale bundle measures the previous code. Rebuild, then measure.
- "curl timing is good enough without k6": a single-request timer has no p95 or p99. Name the supported tools and ask before installing one.
- "Mean latency reads cleaner": one outlier moves the mean. Report the median per the testing rule.
- "Just overwrite the baseline": saving over a regression hides it for every later run. Show the diff first.
Red Flags
- Stop and ask for a staging or local URL when the only reachable target is production.
- Stop and rebuild when the build directory predates the last source change.
- Stop and ask which endpoints to measure when the route files list more than 10.
- Stop and revert when a source file changed during the run, since this skill measures only.
Verification
- A report table exists for every requested category, with runtime version, tool version, and a GMT date.
- Every metric with a baseline carries a delta and an
OKorREGRESSIONstatus. - The summary states the counts of regressions, improvements, and unchanged metrics.
- With
--save,.claude/benchmarks/<project>.jsonholds the new timestamp, and the diff against the old baseline was shown. git statusshows no source file changed by the run.
Related Skills
/profile-- Find the bottleneck behind a regression this skill flags./test-- Run the test suite, which may include performance tests./ship checks-- Check CI pipeline, which may include performance gates.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

