Use the open-source free `Asynkron.Profiler` dotnet tool for CLI-first CPU, allocation, exception, contention, and heap profiling of .NET commands or existing trace artifacts. USE FOR: Asynkron.Profiler setup; automation-friendly profiling output; CPU, allocation, exception, contention, and heap investigation. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, o
SkillScore100Maintained
Automatic
◆Coding pack
Last verified 8/19/2026
What it changes
Passed 23 of 23 test cases with the skill, and 3 of 23 without it.
Without skill13%
With skill100%
Checks it passed that the model alone missed
Includes the --cpu mode flag.
Runs asynkron-profiler --help.
Specifies the --heap mode flag.
and 29 more in the full report
20 fixed3 passed either way0 still failing0 broke
Pass-rate lift
+87 pp
Tokens
+11%
Agent turns
0%
Response time
-59%
Model gemini-3.6-flashMeasured 8/19/2026v123 of 23 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 20 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 20
Prompt
We collected a heap dump file located at `./profile-output/dump.gcdump`. What command processes this existing dump file to display retained heap object trees?
What was checked, without and with the skill
Checked
Without skill
With skill
Passes --input ./profile-output/dump.gcdump.
Missed
Passed
Specifies the --heap mode flag.
Missed
Passed
case-13 · gemini-3.6-flash · 8/19/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md155 lines4 files
Asynkron.Profiler
Trigger On
the repo wants Asynkron.Profiler or asynkron-profiler
the user wants automation-friendly profiling output instead of GUI-only tooling
profiling needs are CPU, allocation, exception, contention, or heap focused and should land as plain-text summaries in CI, scripts, or agent workflows
the task needs to render an existing .nettrace, .speedscope.json, .etlx, or .gcdump file into a readable report
Workflow
Decide whether the task is a new profile capture or rendering an existing trace artifact.
Prefer built Release output over dotnet run so the trace represents the target app rather than restore/build noise.
Install and verify all three tools before assuming the profiler is usable:
asynkron-profiler
dotnet-trace
dotnet-gcdump
Choose exactly one primary mode first:
--cpu
--memory
--exception
--contention
--heap
Use --input <path> when the trace already exists and the task is about rendering or narrowing the report, not recollecting data.
Treat profile-output/ as the stable output folder for review artifacts and reruns.
If the task needs process attach, counters, or raw official diagnostics flows rather than this CLI frontend, hand off to profiling.
Architecture
flowchart LR
A["Profiling task"] --> B{"New run or existing artifact?"}
B -->|New run| C["Build target in Release"]
C --> D["Run `asynkron-profiler --mode -- <command|csproj|sln>`"]
D --> E["Collect via `dotnet-trace` or `dotnet-gcdump`"]
Use Chous in .NET repositories that ship sizeable frontend codebases and want file-structure linting, naming convention enforcement, and folder-layout policy as a CLI gate. USE FOR: growing frontend trees; naming, folder, or file-placement policy; CI checks for frontend layout drift. DO NOT USE FOR: semantic code bugs, type errors, or framework API misuse; CSS, HTML, or JS rule enforcement inside files. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, l