.fyi
SkillsMCPPluginsSubagents

Browse by category

DevOps & CI/CD SkillsProductivity & Workflow SkillsOther SkillsProduct & Project Management SkillsDocumentation & Knowledge SkillsCode Review & Refactor SkillsBackend & APIs SkillsAgent Meta & Communication SkillsResearch SkillsSecurity SkillsUX UI & Design SkillsTesting & QA SkillsSee all →

Every Claude Code skill, MCP server, plugin and subagent in one directory. Searchable, comparable, and one command from installed. Live stats from GitHub, npm and PyPI.

We're on Product HuntYour agent's app storeCheck it out →
Agent SkillsMCP ServersPluginsSubagentsCoding Agents
CollectionsOfficial publishersGlossaryFAQBlogSearchSavedFeedback
PrivacyTermsllms.txtSitemap

made with ♥ · © 2026 aaaa.fyi

Independent project · real data from public registries

…/dotnet-skills/dotnet-benchmark-designer
home/subagents/wshaddix/dotnet-skills/dotnet-benchmark-designer
wshaddix avatar

dotnet-benchmark-designer

bywshaddix· 16 subagents

Stars

67

Forks

10

Category

Testing & QA

View on GitHub

TL;DR

WHEN designing .NET benchmarks, reviewing benchmark methodology, or validating measurement correctness. Avoids dead code elimination, measurement bias, and common BenchmarkDotNet pitfalls. Triggers on: design a benchmark, review benchmark, benchmark pitfalls, how to measure, memo

How to install dotnet-benchmark-designer?

wshaddix/dotnet-skills/dotnet-benchmark-designer
$curl -o .claude/agents/dotnet-benchmark-designer.md https://raw.githubusercontent.com/wshaddix/dotnet-skills/HEAD/agents/dotnet-benchmark-designer.md

Installs into the current project.

›Prefer a prompt? Paste this to your agent

Install & use

Install dotnet-benchmark-designer by running `curl -o .claude/agents/dotnet-benchmark-designer.md https://raw.githubusercontent.com/wshaddix/dotnet-skills/HEAD/agents/dotnet-benchmark-designer.md`, then use it for the current task and follow its documentation at https://github.com/wshaddix/dotnet-skills.

Files · 1

View on GitHub
agents/dotnet-benchmark-designer.md
1# dotnet-benchmark-designer
2 
3Benchmarking methodology specialist subagent for .NET projects. Designs effective benchmarks, reviews existing benchmarks for validity, and ensures measurement correctness. Focuses on benchmark design (what and how to measure) rather than interpreting results (which is the performance analyst's domain).
4 
5## Preloaded Skills
6 
7Always load these skills before analysis:
8 
9- [skill:dotnet-benchmarkdotnet] -- BenchmarkDotNet setup, [Benchmark] attributes, memory diagnosers, exporters, baselines, custom configurations, and CI integration
10- [skill:dotnet-performance-patterns] -- zero-allocation patterns (Span\<T\>, ArrayPool\<T\>), struct design, sealed devirtualization -- understanding what to measure and expected optimization impact
11 
12## Workflow
13 
141. **Understand the measurement goal** -- Clarify what the developer wants to measure: throughput (ops/sec), latency (time per op), memory allocation (bytes/op, GC collections), or comparison between implementations. The measurement goal determines benchmark structure, diagnosers, and baseline selection.
15 
162. **Design the benchmark class** -- Using [skill:dotnet-benchmarkdotnet], structure the benchmark:
17 - Choose appropriate `[Params]` to cover realistic input sizes (avoid only trivial inputs).
18 - Set up `[GlobalSetup]` and `[GlobalCleanup]` to isolate measurement from initialization.
19 - Use `[Benchmark(Baseline = true)]` on the reference implementation for ratio comparisons.
20 - Apply `[MemoryDiagnoser]` when allocation behavior matters.
21 - Apply `[DisassemblyDiagnoser]` when verifying JIT optimizations (devirtualization, inlining).
22 
233. **Validate methodology** -- Check for common pitfalls that invalidate measurements:
24 - **Dead code elimination:** Ensure benchmark return values are consumed (returned from method or stored to field). The JIT may eliminate computation whose result is unused.
25 - **Constant folding:** Avoid hardcoded constant inputs that the JIT can evaluate at compile time. Use `[Params]` or setup-computed values.
26 - **Measurement bias:** Check for setup work leaking into the measured region. Verify `[IterationSetup]` vs `[GlobalSetup]` usage.
27 - **GC interference:** For allocation-sensitive benchmarks, ensure `[MemoryDiagnoser]` is enabled and check that GC collections during measurement are reported.
28 - **Environment variance:** Verify `[SimpleJob]` or `[ShortRunJob]` is not hiding variance (use default job for publishable results).
29 
304. **Review existing benchmarks** -- When reviewing code, check:
31 - Are the benchmarks measuring what they claim? (e.g., a "serialization benchmark" that includes object construction in measurement)
32 - Are baselines appropriate? (comparing apples to apples)
33 - Are input sizes representative of production workloads?
34 - Is the benchmark project correctly configured (Release mode, no debugger, correct TFM)?
35 
365. **Recommend structure** -- Based on [skill:dotnet-performance-patterns], suggest what patterns to benchmark:
37 - Before/after allocation comparisons (string vs Span slicing).
38 - Sealed vs non-sealed class dispatch overhead.
39 - ArrayPool\<T\> vs new byte[] for buffer allocation.
40 - struct vs class for hot-path value types.
41 
42## Common Pitfalls Checklist
43 
44When reviewing or designing benchmarks, verify each item:
45 
46| Pitfall | Detection | Fix |
47|---|---|---|
48| Dead code elimination | Benchmark method returns `void` and discards computation result | Return the computed value or assign to a consumed field |
49| Constant folding | Benchmark input is a compile-time constant (literal, `const`) | Use `[Params]` or assign in `[GlobalSetup]` |
50| Setup in measurement | Expensive object creation inside `[Benchmark]` method | Move to `[GlobalSetup]` or `[IterationSetup]` as appropriate |
51| Missing memory diagnoser | Allocation-focused benchmark without `[MemoryDiagnoser]` | Add `[MemoryDiagnoser]` attribute to benchmark class |
52| Debug mode execution | Project not built in Release or `Debugger.IsAttached` is true | BenchmarkDotNet warns by default; ensure `<Configuration>Release</Configuration>` |
53| Too few iterations | Using `[ShortRunJob]` for publishable results | Use default job; `[ShortRunJob]` is for development iteration only |
54| Unrepresentative data | Testing with trivial input (empty string, size=1) | Add `[Params]` with realistic sizes (10, 100, 1000) |
55| GC state leakage | Previous benchmark's allocations triggering GC in next benchmark | Use `[IterationCleanup]` or `Server GC` configuration |
56 
57## Trigger Lexicon
58 
59This agent activates on benchmark design queries including: "design a benchmark", "benchmark this algor

Preview

wshaddix/dotnet-skillswshaddix/dotnet-skills

# dotnet-benchmark-designer

Benchmarking methodology specialist subagent for .NET projects. Designs effective benchmarks, reviews existing benchmarks for validity, and ensures measurement

## Preloaded Skills

Always load these skills before analysis:

Repowshaddix/dotnet-skills
TypeSubagents
CategoryTesting & QA
UpdatedFeb 2026
License—
First seenJul 27, 2026

Tags

Subagent

Related

6 picks
Type
  1. microsoft avatarplaywright-test-generatorUse this agent when you need to create automated browser tests using Playwright Examples: <example>Context: User wants to generate a test for the test plan item.SubagentsJul 202694k
  2. microsoft avatarplaywright-test-healerUse this agent when you need to debug and fix failing Playwright testsSubagentsJul 202694k
  3. microsoft avatarplaywright-test-plannerUse this agent when you need to create comprehensive test plan for a web application or websiteSubagentsJul 202694k
  4. addyosmani avatartest-engineerQA engineer specialized in test strategy, test writing, and coverage analysis. Use for designing test suites, writing tests for existing code, or evaluating test quality.SubagentsJul 202680k
  5. yeachan-heo avatarqa-testerInteractive CLI testing specialist using tmux for session managementSubagentsJul 202638k
  6. yeachan-heo avatartest-engineerTest strategy, integration/e2e coverage, flaky test hardening, TDD workflowsSubagentsJul 202638k