performance-testing
Skill4 starsChanged 10 days agoMITView on GitHub
Use when the user asks to measure, benchmark, compare, profile, diagnose, or improve runtime performance, including latency, throughput, CPU, memory, scalability, load, stress, soak, or performance regressions. Establish controlled conditions, collect repeatable baseline and candidate measurements, analyze variance and causes, keep an evidence-backed performance log when measurements are run, and recommend a response only after investigation. Do not use for correctness-only testing, functional bugs without a performance concern, speculative cleanup, dependency upgrades, or production load generation without explicit authorization.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- AxlZero21/Skillstheir own version, first seen Nov 8, 2026
- petrkindlmann/qa-skillstheir own version, first seen Oct 25, 2026
- proffesor-for-testing/agentic-qetheir own version, first seen Oct 25, 2026
- davidanthonyn/claude-skillstheir own version, first seen Oct 20, 2026
- nimadorostkar/Claude-Skills-collectiontheir own version, first seen Oct 13, 2026
- mejbaurbahar/software-tester-skillstheir own version, first seen Oct 13, 2026
Used with
Projects with it also use visual-testing and security-testing.
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.
petrkindlmannSkillvisual-testing
Implement visual regression testing with Playwright screenshots, Chromatic, Percy, and Argos CI. Covers baseline management, diff threshold tuning, dynamic content masking, responsive viewport testing, and review/approval workflows. Use when: "visual test," "screenshot," "visual regression," "pixel diff," "snapshot diff," "update baselines," "Chromatic," "percy snapshot," "argos screenshot." Not for: bulk baseline regeneration after a redesign broke many tests — use selector-drift-recovery; cross-browser rendering matrices — use cross-browser-testing; general Playwright test structure — use playwright-automation. Related: playwright-automation, ci-cd-integration, cross-browser-testing.
Also in 3 projects that use this
mmondoraSkillsecurity-testing
Automated security testing in CI. SAST, DAST, dependency scanning, authorization testing, secret detection. Use when adding security scans to pipelines, writing tenant isolation tests, or configuring vulnerability scanning.
Also in 3 projects that use this
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- handsontable/handsontable★ 22ksame name
- DaveSkender/Stock.Indicators★ 1.3ksame name
- proffesor-for-testing/agentic-qe★ 524same name
- petrkindlmann/qa-skills★ 209same name
- kid-sid/claude-spellbook★ 190same name
- nimadorostkar/Claude-Skills-collection★ 33same name
- belokonm/claude-supercode-skills★ 11same name
- AxlZero21/Skills★ 1same name
- mejbaurbahar/fagun★ 1same name
- mejbaurbahar/software-tester-skills★ 1same name
2 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 repository10 other files it gives its agents.
- architectureSkill
- bugfixSkill
- check-draftSkill
- cognitive-debtSkill
- deep-code-reviewSkill
- extract-adrsSkill
- extract-conventionsSkill
- feature-devSkill
- refactoringSkill
- ultra-grill-meSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
33 rules. 0 are common, 33 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 11 edited versions we read keep these.
33
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Use this core loop:
- Distinctive: line 27
Prefer repository-standard benchmark, profiling, and load-test tools.
- Distinctive: line 31
Do not automatically replace an approach or roll it back because one result is worse.
- Distinctive: line 32
Do not claim causality from a profile, trace, or correlation alone.
- Distinctive: line 34
Do not generate load against production or third-party systems without explicit authorization and safe limits.
- Distinctive: line 35
Do not claim a benchmark, profile, or comparison was run unless it was actually run.
- Distinctive: line 36
Keep optimization changes focused and only make them when the user requested implementation, not measurement-only work.
- Distinctive: line 51
Do not invent a pass/fail threshold after seeing the result.
- Distinctive: line 55
Read applicable project instructions, existing benchmarks, performance tests, build modes, fixtures, scripts, CI configuration, and recent …
- Distinctive: line 66
Do not substitute a convenient microbenchmark for the user-visible workload it fails to represent.
- Distinctive: line 68
Read measurement-quality.md when designing a new benchmark, choosing metrics, setting a threshold, or evaluating noisy results.
- Distinctive: line 84
When an actual benchmark, load test, or profile is run, create or update one log for the investigation.
- Distinctive: line 86
Follow an existing repository convention when present.
- Distinctive: line 88
Use performance-log-template.md as the starting structure.
- Distinctive: line 92
Do not write runtime logs inside the installed skill directory.
- Distinctive: line 96
Run the narrowest representative command.
- Distinctive: line 100
Avoid destructive branch or working-tree changes merely to obtain a baseline.
- Distinctive: line 104
Run the same workload under equivalent conditions.
- Distinctive: line 118
Before calling a regression or improvement, check repetition-to-repetition variation, environment changes, warm-up, cache state, background …
- Distinctive: line 122
If the candidate is worse, mixed, or surprising, do not immediately discard it, switch implementations, or roll it back.
- Distinctive: line 128
Use profiling, tracing, query plans, allocation data, counters, or controlled ablation only as needed.
- Distinctive: line 132
Read regression-analysis.md whenever a result regresses, shows a mixed tradeoff, or requires root-cause analysis.
- Distinctive: line 134
If an active production impact threatens availability, cost, data safety, or a critical SLO, contain the impact first.
- Distinctive: line 141
keep it and address a localized cause.
- Distinctive: line 143
run another discriminating experiment.
- Distinctive: line 152
After any optimization or corrective change, repeat the original representative measurement under the same conditions.
- Distinctive: line 158
Update the log with:
- Distinctive: line 173
Treat a result inside ordinary measurement variation as inconclusive, not as a regression.
- Distinctive: line 175
Treat improvement in one metric and degradation in another as a tradeoff that requires a product or operational decision.
- Distinctive: line 177
Keep failed attempts and rejected hypotheses in the log so later work does not repeat them.
- Distinctive: line 178
Use exact numbers only to the precision supported by the measurement method.
- Distinctive: line 179
If the requested test would create meaningful cost, external traffic, or operational risk, obtain authorization and define stop conditions …
- Distinctive: line 180
If no representative measurement can be run, report a plan or static hypothesis as unverified rather than presenting it as a performance …
“Common” is measured: kept by at least 6 in 10 of the 11 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
Performance Testing
Purpose
Measure and explain performance changes with reproducible evidence.
Use this core loop:
- Define the decision and metrics.
- Choose the smallest test that can answer the question.
- Establish a controlled baseline.
- Measure the candidate under equivalent conditions.
- Confirm and classify the difference.
- Investigate causes before choosing a response.
- Re-measure and record the conclusion.
The objective is not to force every candidate to look faster. It is to determine what changed, why it changed, whether it matters, and what action the evidence supports.
Non-negotiable rules
- Define the performance question before selecting a tool or editing code.
- Prefer repository-standard benchmark, profiling, and load-test tools.
- Compare equivalent workloads, data, builds, environments, and runtime states.
- Record raw values, units, repetitions, and relevant variability; do not report only percentages.
- Separate observed measurements, interpretations, hypotheses, and confirmed causes.
- Do not automatically replace an approach or roll it back because one result is worse.
- Do not claim causality from a profile, trace, or correlation alone.
- Preserve functional correctness; performance improvement does not excuse incorrect behavior.
- Do not generate load against production or third-party systems without explicit authorization and safe limits.
- Do not claim a benchmark, profile, or comparison was run unless it was actually run.
- Keep optimization changes focused and only make them when the user requested implementation, not measurement-only work.
Workflow
1. Frame the decision
Identify:
- the system, operation, code path, endpoint, or workload under test;
- the decision the measurement should support;
- the primary metric and important guardrail metrics;
- the relevant workload and operating conditions;
- any existing performance budget, SLO, threshold, or baseline;
- whether the user wants measurement only, diagnosis, or an implemented improvement.
Do not invent a pass/fail threshold after seeing the result. If no threshold exists, report the measured tradeoff without manufacturing one.
2. Inspect the project and choose the test level
Read applicable project instructions, existing benchmarks, performance tests, build modes, fixtures, scripts, CI configuration, and recent relevant history.
Choose the smallest representative level:
- microbenchmark for a narrow algorithm or hot function;
- component or integration benchmark for a subsystem boundary;
- end-to-end or load test for user-visible latency and throughput;
- stress test for saturation and failure behavior;
- soak test for leaks, degradation, and long-running stability;
- profiler or trace for localization after a performance effect is observed.
Do not substitute a convenient microbenchmark for the user-visible workload it fails to represent.
Read measurement-quality.md when designing a new benchmark, choosing metrics, setting a threshold, or evaluating noisy results.
3. Design a controlled experiment
Record before running:
- baseline and candidate revisions or states;
- build mode, runtime and dependency versions, hardware or runner, and relevant configuration;
- workload, dataset, concurrency, duration, cache state, and cold or warm behavior;
- warm-up policy, repetitions, sample size, and measurement command;
- primary metric, guardrails, and any decision threshold.
Change one major experimental variable at a time when practical. When conditions cannot be held constant, record the mismatch and reduce confidence accordingly.
4. Start the performance log
When an actual benchmark, load test, or profile is run, create or update one log for the investigation.
- Follow an existing repository convention when present.
- Otherwise use
docs/performance/YYYY-MM-DD-<short-slug>.md. - Use performance-log-template.md as the starting structure.
- Link large raw outputs, profiles, and traces instead of pasting them into the Markdown log.
- Append attempts, including inconclusive or failed optimization attempts, to the same investigation log.
Do not write runtime logs inside the installed skill directory. If the task is planning-only and no measurement is run, do not create an empty log.
5. Establish the baseline
Run the narrowest representative command. Capture the command, conditions, raw result location, summary statistics, and any anomalies.
Warm up when the runtime or system requires it, while preserving cold-start measurements when cold behavior matters. Prefer multiple trials over a single run. If the baseline is unstable, investigate the instability before comparing a candidate.
Avoid destructive branch or working-tree changes merely to obtain a baseline. Use existing artifacts, a safe worktree, a benchmark facility, or clearly report that only one state could be measured.
6. Measure the candidate
Run the same workload under equivalent conditions. Keep metric definitions, units, sampling, and aggregation identical. Record both absolute and relative differences.
Also record guardrails such as correctness, error rate, CPU, memory, allocation, or resource cost when they could reveal a tradeoff hidden by the primary metric.
7. Confirm and classify the result
Classify the result as one of:
- improved;
- regressed;
- mixed tradeoff;
- no material difference;
- inconclusive.
Before calling a regression or improvement, check repetition-to-repetition variation, environment changes, warm-up, cache state, background load, dataset drift, errors, and measurement-tool overhead.
8. Investigate regressions and unexpected results
If the candidate is worse, mixed, or surprising, do not immediately discard it, switch implementations, or roll it back.
- Confirm that the effect exceeds expected measurement variation.
- Localize the affected metric, percentile, workload, phase, and resource.
- Generate multiple plausible hypotheses.
- Choose the smallest experiment that distinguishes the leading hypotheses.
- Use profiling, tracing, query plans, allocation data, counters, or controlled ablation only as needed.
- Record supporting and contradicting evidence.
- State the cause with an explicit confidence level.
Read regression-analysis.md whenever a result regresses, shows a mixed tradeoff, or requires root-cause analysis.
If an active production impact threatens availability, cost, data safety, or a critical SLO, contain the impact first. A rollback may be an emergency mitigation, but it does not replace the subsequent cause analysis.
9. Choose the response from evidence
Choose among:
- keep the candidate;
- keep it and address a localized cause;
- adjust configuration or workload assumptions;
- run another discriminating experiment;
- try an alternative implementation;
- revert or roll back;
- defer the decision because evidence is insufficient.
Base the choice on the original objective, user impact, guardrail metrics, identified cause, confidence, implementation cost, and operational risk. Do not assume an alternative will be faster without measuring it.
10. Re-measure and verify correctness
After any optimization or corrective change, repeat the original representative measurement under the same conditions. Run the relevant correctness tests as well. A faster result that changes required behavior is not a valid improvement.
Promote a benchmark to a permanent CI regression gate only when it is representative, reasonably fast, stable on the available runner, and tied to a meaningful budget. Otherwise keep a reproducible command and investigation log without forcing a brittle gate.
11. Complete the log and report
Update the log with:
- baseline and candidate results;
- absolute and relative differences;
- variability and confidence;
- improved, regressed, and unchanged metrics;
- cause hypotheses and experiments;
- confirmed cause or remaining uncertainty;
- selected response and rationale;
- final re-measurement and correctness checks.
Lead the final response with the outcome. State what was measured, what changed, the most credible explanation, the chosen action, and any material limitation. Link the performance log when one was written.
Decision rules
- Treat a result inside ordinary measurement variation as inconclusive, not as a regression.
- Evaluate percentile latency, throughput, error rate, and resource use according to the workload; do not rely on a mean alone.
- Treat improvement in one metric and degradation in another as a tradeoff that requires a product or operational decision.
- Distinguish cold-start, warm steady-state, burst, and saturation behavior when they lead to different conclusions.
- Keep failed attempts and rejected hypotheses in the log so later work does not repeat them.
- Use exact numbers only to the precision supported by the measurement method.
- If the requested test would create meaningful cost, external traffic, or operational risk, obtain authorization and define stop conditions first.
- If no representative measurement can be run, report a plan or static hypothesis as unverified rather than presenting it as a performance result.
Final report
Include only sections supported by the task:
- outcome and decision;
- baseline and candidate comparison;
- experiment conditions;
- cause analysis and confidence;
- response taken or recommended;
- correctness verification;
- log and raw artifact locations;
- limitations and next discriminating experiment.
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.

