dotnet-profiling
Skill13 starsChanged 8 months agoMITView on GitHub
Use the free official .NET diagnostics CLI tools for profiling and runtime investigation in .NET repositories. Use when a repo needs CPU tracing, live counters, GC and allocation investigation, exception or contention tracing, heap snapshots, or startup diagnostics without GUI-only tooling.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- KodingDev/skillstheir own version, first seen Oct 2, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- KodingDev/skills★ 2same name
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 repository84 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- dotnet-analyzer-configSkill
- dotnet-architectureSkill
- dotnet-archunitnetSkill
- dotnet-aspireSkill
- dotnet-aspnet-coreSkill
- dotnet-asynkron-profilerSkill
- dotnet-azure-functionsSkill
- dotnet-biomeSkill
- dotnet-blazorSkill
- dotnet-chousSkill
- dotnet-clocSkill
- dotnet-code-analysisSkill
- dotnet-codeqlSkill
- dotnet-code-reviewSkill
- dotnet-complexitySkill
- dotnet-coverletSkill
- dotnet-csharpierSkill
- dotnet-entity-framework6Skill
- dotnet-entity-framework-coreSkill
- dotnet-eslintSkill
- dotnet-formatSkill
- dotnet-grpcSkill
- dotnet-htmlhintSkill
- dotnet-legacy-aspnetSkill
- dotnet-libvlcSkill
- dotnet-managedcode-communicationSkill
- dotnet-managedcode-markitdownSkill
- dotnet-managedcode-mimetypesSkill
- dotnet-managedcode-orleans-graphSkill
- dotnet-managedcode-orleans-signalrSkill
- dotnet-managedcode-storageSkill
- dotnet-mauiSkill
- dotnet-mcaf-agile-deliverySkill
- dotnet-mcaf-devexSkill
- dotnet-mcaf-documentationSkill
- dotnet-mcaf-feature-specSkill
- dotnet-mcaf-human-review-planningSkill
- dotnet-mcaf-ml-ai-deliverySkill
- dotnet-mcaf-nfrSkill
- dotnet-mcafSkill
- dotnet-mcaf-source-controlSkill
- dotnet-mcaf-ui-uxSkill
- dotnet-mcpSkill
- dotnet-metalintSkill
- dotnet-meziantou-analyzerSkill
- dotnet-microsoft-agent-frameworkSkill
- dotnet-microsoft-extensions-aiSkill
- dotnet-microsoft-extensionsSkill
- dotnet-minimal-apisSkill
- dotnet-mixed-realitySkill
- dotnet-mlnetSkill
- dotnet-modern-csharpSkill
- dotnet-mstestSkill
- dotnet-mvvmSkill
- dotnet-netarchtestSkill
- dotnet-nunitSkill
- dotnet-orleansSkill
- dotnet-project-setupSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 11 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
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 21
leave reusable project context so future tasks are faster and safer
- Distinctive: line 37
Read the nearest AGENTS.md and confirm scope and constraints.
- Very specific: line 38
Run this skill's Workflow through the Ralph Loop until outcomes are acceptable.
- Distinctive: line 45
prefer realistic config, inputs, and data volume
- Distinctive: line 46
Start with the lightest useful tool:
- Very specific: line 50
Prefer installed CLI tools over dnx one-shot execution so the repo commands stay stable and reproducible.
- Distinctive: line 55
After each change, rerun the same measurement path and compare before versus after.
- Distinctive: line 59
If official .NET profiling tools are not available yet:
- Very specific: line 73
use the official Microsoft Learn download links for dotnet-counters, dotnet-trace, and dotnet-gcdump
- Distinctive: line 74
Verify the installed tools resolve correctly:
- Very specific: line 82
Run one bounded command and return status: configured or status: improved.
- Very specific: line 83
If the repo intentionally standardizes on another profiling stack and does not want these tools, return status: not_applicable.
- Distinctive: line 95
before/after comparisons use the same scenario
- Distinctive: line 100
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
- Distinctive: line 105
write a detailed execution plan
- Distinctive: line 110
Update the plan after each iteration.
- Very specific: line 112
If a dependency is missing, bootstrap it or return status: not_applicable with explicit reason and fallback path.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
.NET Profiling
Trigger On
- the repo needs performance or runtime profiling for a .NET application
- the user asks about slow code, high CPU, GC pressure, allocation growth, exception storms, lock contention, or startup diagnostics
- the team wants official CLI-based diagnostics without depending on
dnx
Value
- produce a concrete project delta: code, docs, config, tests, CI, or review artifact
- reduce ambiguity through explicit planning, verification, and final validation skills
- leave reusable project context so future tasks are faster and safer
Do Not Use For
- replacing realistic performance tests or load tests with ad-hoc tracing alone
- production heap collection when the pause risk has not been accepted
- GUI-only workflows that the repo cannot automate or document
Inputs
- the nearest
AGENTS.md - target application, process, or startup path
- the symptom being investigated: CPU, memory, GC, contention, exceptions, or startup
Quick Start
- Read the nearest
AGENTS.mdand confirm scope and constraints. - Run this skill's
Workflowthrough theRalph Loopuntil outcomes are acceptable. - Return the
Required Result Formatwith concrete artifacts and verification evidence.
Workflow
- Build and run a realistic target first:
- prefer
Release - prefer realistic config, inputs, and data volume
- prefer
- Start with the lightest useful tool:
dotnet-countersfor live health signalsdotnet-tracefor CPU, exception, contention, GC, and startup tracesdotnet-gcdumpfor managed heap inspection when memory shape matters
- Prefer installed CLI tools over
dnxone-shot execution so the repo commands stay stable and reproducible. - Capture one focused profile at a time instead of mixing every signal into one run.
- For CPU and general runtime hotspots, start with
dotnet-trace collect. - For live triage, start with
dotnet-counters monitoronSystem.Runtime. - For heap analysis, use
dotnet-gcdumpcarefully and document the pause risk. - After each change, rerun the same measurement path and compare before versus after.
Bootstrap When Missing
If official .NET profiling tools are not available yet:
- Detect current state:
dotnet --infodotnet tool list --globalcommand -v dotnet-counterscommand -v dotnet-tracecommand -v dotnet-gcdump
- Choose the install path deliberately:
- preferred machine-level install:
dotnet tool install --global dotnet-countersdotnet tool install --global dotnet-tracedotnet tool install --global dotnet-gcdump
- direct-download fallback when global tools are not suitable:
- use the official Microsoft Learn download links for
dotnet-counters,dotnet-trace, anddotnet-gcdump
- use the official Microsoft Learn download links for
- preferred machine-level install:
- Verify the installed tools resolve correctly:
dotnet-counters --versiondotnet-trace --versiondotnet-gcdump --version
- Record exact profiling commands in
AGENTS.md, for example:dotnet-counters monitor --process-id PID --counters System.Runtimedotnet-trace collect --process-id PID --profile dotnet-common,dotnet-sampled-thread-time -o trace.nettracedotnet-gcdump collect --process-id PID --output heap.gcdump
- Run one bounded command and return
status: configuredorstatus: improved. - If the repo intentionally standardizes on another profiling stack and does not want these tools, return
status: not_applicable.
Deliver
- explicit official .NET profiling commands
- a clear profiling path for CPU, counters, and heap inspection
- reproducible diagnostics commands that humans and agents can rerun
Validate
- the chosen tool matches the actual symptom
- commands target a realistic process and configuration
- before/after comparisons use the same scenario
- heap collection warnings are explicit when
dotnet-gcdumpis used
Ralph Loop
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
- Plan first (mandatory):
- analyze current state
- define target outcome, constraints, and risks
- write a detailed execution plan
- list final validation skills to run at the end, with order and reason
- Execute one planned step and produce a concrete delta.
- Review the result and capture findings with actionable next fixes.
- Apply fixes in small batches and rerun the relevant checks or review steps.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable or only explicit exceptions remain.
- If a dependency is missing, bootstrap it or return
status: not_applicablewith explicit reason and fallback path.
Required Result Format
status:complete|clean|improved|configured|not_applicable|blockedplan: concise plan and current iteration stepactions_taken: concrete changes madevalidation_skills: final skills run, or skipped with reasonsverification: commands, checks, or review evidence summaryremaining: top unresolved items ornone
For setup-only requests with no execution, return status: configured and exact next commands.
Load References
references/commands.mdreferences/patterns.mdreferences/profiling.md
Example Requests
- "Profile this .NET app for CPU hotspots."
- "Investigate GC pressure in this service."
- "Capture counters and a trace from startup."
- "Set up official .NET profiling tools for local investigations."
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.

