agentsclimarketplace

Dotnet tooling

Skill fenzel999/dotnet-artisan/skills/dotnet-tooling

Manages .NET SDK installation (dotnet-install, workloads), project bootstrapping (architecture selection, solution structure, domain analysis), project setup (.slnx, Directory.Build.props, CPM), MSBuild authoring, build optimization, performance (Span, ArrayPool, stackalloc), profiling (dotnet-counters, dotnet-trace), Native AOT/trimming, GC tuning, CLI apps (System.CommandLine, Spectre.Console, Terminal.Gui), ILSpy decompilation, VS Code debug config (launch.json, coreclr, remote), C# LSP (csharp-ls, OmniSharp), version detection/upgrade, and code quality cleanup (7-step pipeline: formatting, usings, analyzers, dead code, TODOs, sealed classes, CancellationToken). Spans 36 + 7 topic areas. Do not use for UI implementation or API security design.From its SKILL.md

Install
npx -y skills add fenzel999/dotnet-artisan --skill dotnet-tooling

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

10.8 KB, as published. Nobody here has run it

dotnet-tooling

Overview

.NET project setup, build systems, performance, CLI apps, and developer tooling. This consolidated skill spans 36 topic areas. Load the appropriate companion file from references/ based on the routing table below.

Routing Table

Path resolution: The Companion File column lists filenames relative to this skill's directory. Use Glob to locate the file (pattern: ), then pass the returned absolute path to the Read tool. Do NOT use bare relative paths — the Read tool resolves them relative to the user's project directory, not this skill's location.

TopicKeywordsDescriptionCompanion File
Bootstrap projectarchitecture, scaffold, new project, startupArchitecture selection (single/VSA/DDD/Clean), project structure mapping, full bootstrapping flowreferences/bootstrap-project.md
Domain analysisDDD, bounded context, ubiquitous language, event storming, context mapEvent Storming, bounded contexts, ubiquitous language glossary, context mapping, aggregate design (analysis phase — before coding)references/domain-analysis.md
Project structuresolution, .slnx, CPM, analyzers.slnx, Directory.Build.props, CPM, analyzersreferences/project-structure.md
Scaffold projectdotnet new, CPM, SourceLink, editorconfigdotnet new with CPM, analyzers, editorconfig, SourceLinkreferences/scaffold-project.md
Csproj readingPropertyGroup, ItemGroup, CPM, propsSDK-style .csproj, PropertyGroup, ItemGroup, CPMreferences/csproj-reading.md
MSBuild authoringtargets, props, conditions, Directory.BuildTargets, props, conditions, Directory.Build patternsreferences/msbuild-authoring.md
MSBuild tasksITask, ToolTask, inline tasks, UsingTaskITask, ToolTask, IIncrementalTask, inline tasksreferences/msbuild-tasks.md
Build analysisMSBuild output, NuGet errors, analyzer warningsMSBuild output, NuGet errors, analyzer warningsreferences/build-analysis.md
Build optimizationslow builds, binary logs, parallel, restoreSlow builds, binary logs, parallel, restorereferences/build-optimization.md
Artifacts outputUseArtifactsOutput, ArtifactsPath, CI/DockerUseArtifactsOutput, ArtifactsPath, CI/Docker impactreferences/artifacts-output.md
Multi-targetingmultiple TFMs, polyfills, conditional compilationMultiple TFMs, PolySharp, conditional compilationreferences/multi-targeting.md
Performance patternsSpan, ArrayPool, ref struct, sealed, stackallocSpan, ArrayPool, ref struct, sealed, stackallocreferences/performance-patterns.md
Profilingdotnet-counters, dotnet-trace, flame graphsdotnet-counters, dotnet-trace, dotnet-dump, flame graphsreferences/profiling.md
Native AOTPublishAot, ILLink, P/Invoke, size optimizationPublishAot, ILLink descriptors, P/Invoke, size optimizationreferences/native-aot.md
AOT architecturesource gen, AOT-safe DI, serializationSource gen over reflection, AOT-safe DI, factoriesreferences/aot-architecture.md
Trimmingannotations, ILLink, IL2xxx warnings, IsTrimmableAnnotations, ILLink, IL2xxx warnings, IsTrimmablereferences/trimming.md
GC/memoryGC modes, LOH/POH, Span/Memory, ArrayPoolGC modes, LOH/POH, Gen0/1/2, Span/Memory, ArrayPoolreferences/gc-memory.md
CLI architecturecommand/handler/service, clig.dev, exit codesCommand/handler/service, clig.dev, exit codesreferences/cli-architecture.md
System.CommandLineRootCommand, Option<T>, SetAction, parsingSystem.CommandLine 2.0, RootCommand, Option<T>references/system-commandline.md
Spectre.Consoletables, trees, progress, prompts, live displaysTables, trees, progress, prompts, live displaysreferences/spectre-console.md
Terminal.Guiviews, layout, menus, dialogs, bindings, themesTerminal.Gui v2, views, layout, menus, dialogsreferences/terminal-gui.md
CLI distributionAOT vs framework-dependent, RID matrix, Homebrew, winget, Scoop, dotnet toolDistribution strategy, single-file publish, per-platform packagingreferences/cli-distribution.md
CLI release pipelineGHA build matrix, artifact staging, checksumsGHA build matrix, artifact staging, checksumsreferences/cli-release-pipeline.md
Documentation strategyStarlight, Docusaurus, DocFX decision treeStarlight, Docusaurus, DocFX decision treereferences/documentation-strategy.md
Tool managementglobal, local, manifests, restore, pinningGlobal/local tools, manifests, restore, pinningreferences/tool-management.md
Version detectionTFM/SDK from .csproj, global.jsonTFM/SDK from .csproj, global.json, Directory.Buildreferences/version-detection.md
Version upgradeLTS-to-LTS, staged, preview, upgrade pathsLTS-to-LTS, staged through STS, preview pathsreferences/version-upgrade.md
Solution navigationentry points, .sln/.slnx, dependency graphsEntry points, .sln/.slnx, dependency graphsreferences/solution-navigation.md
Project analysissolution layout, build config analysisSolution layout, build config, .csproj analysisreferences/project-analysis.md
Modernizeoutdated TFMs, deprecated packages, patternsOutdated TFMs, deprecated packages, superseded patternsreferences/modernize.md
Add analyzersnullable, trimming, AOT compat, severity configNullable, trimming, AOT compat analyzers, severityreferences/add-analyzers.md
SDK installationinstall .NET, dotnet-install, workloads, missing SDK.NET SDK install script, workloads, env vars, side-by-sidereferences/dotnet-sdk-install.md
ILSpy decompileilspycmd, decompile, assembly, disassemble, ILILSpy/ilspycmd decompilation, type listing, IL viewreferences/ilspy-decompile.md
Mermaid diagramsarchitecture, sequence, class, ER, flowchartsArchitecture, sequence, class, deployment, ER diagramsreferences/mermaid-diagrams.md
VS Code debugginglaunch.json, tasks.json, coreclr, attach, debugVS Code launch/attach configs, tasks, multi-project, hot reloadreferences/vscode-debug.md
C# LSPlanguage server, csharp-ls, OmniSharp, go to definitionC# LSP servers, code navigation, agent usage patternsreferences/csharp-lsp.md
PR workflowcreate PR, merge, release, conventional commit, PR reviewPR lifecycle, conventional commits, merge strategy, version bumpreferences/pr-workflow.md
Template authoringcreate template, template.json, dotnet new templateCreating custom dotnet new templates from existing projectsreferences/template-authoring.md
Template discoveryfind template, search template, dotnet new searchFinding and inspecting .NET project templatesreferences/template-discovery.md
Template instantiationcreate project, scaffold, dotnet newCreating projects from templates, multi-project setup, CPM adaptationreferences/template-instantiation.md
Template validationvalidate template, check template.jsonValidating template.json for correctness before publishingreferences/template-validation.md

Scope

  • Solution structure and project scaffolding
  • MSBuild authoring and build optimization
  • Performance patterns and profiling
  • Native AOT, trimming, and GC tuning
  • CLI app development (System.CommandLine, Spectre.Console, Terminal.Gui)
  • Documentation generation (DocFX)
  • Tool management and version detection/upgrade
  • Solution navigation and project analysis
  • Code modernization and analyzer configuration
  • Mermaid diagram generation
  • VS Code debug configuration (launch.json, tasks.json, coreclr)
  • C# LSP servers (csharp-ls, OmniSharp) for agent code navigation
  • PR workflow (conventional commits, review checklist, merge, versioning, release)
  • Template engine (authoring, discovery, instantiation, validation)

Out of scope

  • Crash dump analysis, hang/deadlock triage, live debugger attach -> [skill:dotnet-debugging]
  • Web API patterns -> [skill:dotnet-api]
  • Test authoring -> [skill:dotnet-testing]
  • CI/CD pipelines -> [skill:dotnet-devops]
  • C# language patterns -> [skill:dotnet-csharp]
  • UI framework development -> [skill:dotnet-ui]

Scripts

  • scripts/scan-dotnet-targets.cs -- Scan repository for .NET TFM and SDK version signals (file-based app, dotnet run)
  • scripts/hooks/session-start-context.js -- SessionStart hook for .NET project detection
  • scripts/hooks/user-prompt-dotnet-reminder.js -- UserPromptSubmit hook for .NET keyword detection
  • scripts/hooks/check-self-doc.js -- PostToolUse hook for .cs file quality reminders

Code Quality Pipeline

Systematic 7-step cleanup for .NET projects. Each step: build → test → commit → next step.

Principles

  1. Systematic over random — Follow the pipeline in order. Formatting first, dead code last.
  2. Verify after each step — Run dotnet build && dotnet test after every step.
  3. Safe removals only — Verify dead code isn't used via reflection, DI, or serialization.
  4. One concern per commit — Each step gets its own commit for safe revert.

7-Step Pipeline

Step 1: Formatting        — dotnet format (whitespace, indentation, braces)
Step 2: Unused Usings     — dotnet format analyzers (IDE0005)
Step 3: Analyzer Warnings — dotnet build -warnaserror (fix all CS/IDE warnings)
Step 4: Dead Code         — Remove unreferenced code (verify via Grep first)
Step 5: TODO Resolution   — Convert TODOs to issues or implement inline
Step 6: Sealed Class Audit — Seal classes not designed for inheritance
Step 7: CancellationToken  — Propagate CancellationToken through all async chains

Code Review

Focus 80% of review effort on the 20% of code most likely to contain issues: new code paths, error handling, DI lifetimes, EF Core queries (N+1), async/await and CancellationToken.

Anti-patterns

  • Mixing cleanup with feature work — Separate commits, separate PRs
  • Batch cleanup without testing — Guaranteed regression
  • Aggressive dead code removal — Verify via reflection, DI, serialization first

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.