Agent skill

Dotnet Advisor

by novotnyllc in novotnyllc/dotnet-artisan

Routes .NET/C requests to the correct domain skill and loads coding standards as baseline for all code paths.

MITAuto-check passedDevelopment

Install Dotnet Advisor

skills CLI
$ npx skills add novotnyllc/dotnet-artisan --skill dotnet-advisor -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install novotnyllc/dotnet-artisan dotnet-advisor --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/novotnyllc/dotnet-artisan.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/dotnet-artisan/skills/dotnet-advisor .claude/skills/dotnet-advisor && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dotnet-advisor
GitHub stars
233
Token cost
~2.5k tokens
SKILL.md length
1,110 words
Files
2
Skills in repo
9
Repo updated
First seen
Licence
MIT

At a glance

Routes .NET/C requests to the correct domain skill and loads coding standards as baseline for all code paths.

  • Works in 4 steps: Detect Project Version → Load Baseline → .NET-First Defaults → …
  • Debugging implementation guidance
  • SKILL.md covers Scope, Out of scope, Step 1: Detect Project Version and Step 2: Load Baseline, plus 5 more sections
  • Calls dotnet

What it does

Dotnet Advisor is an agent skill from novotnyllc/dotnet-artisan. Routes .NET/C requests to the correct domain skill and loads coding standards as baseline for all code paths. Determines whether the task needs API, UI, testing, devops, tooling, or debugging guidance based on prompt analysis and project signals, then invokes skills in the right order. Always invoked after using-dotnet detects .NET intent. Do not use for deep API, UI, testing, devops, tooling, or debugging implementation guidance.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Development, covering Code quality and Debugging. It works with .NET and C#. The repository describes itself as: Comprehensive .NET development skills for modern C and .NET. The licence is MIT.

When your agent uses it

  • Debugging implementation guidance
  • Tasks that involve Code quality
  • Tasks that involve Debugging

Example prompts

  • “Use the dotnet-advisor skill to route .NET/C requests to the correct domain skill and loads coding standards as baseline for all code paths”
  • “/dotnet-advisor”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Detect Project Version
  2. Load Baseline
  3. .NET-First Defaults
  4. Route to Domain Skill

What it can do on your machine

Read from SKILL.md and the folder at commit de192c1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dotnet Advisor loads about 2.5k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 1,110 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from novotnyllc/dotnet-artisan at commit de192c1, republished under its MIT licence (© novotnyllc). 1,110 words, ~2,493 tokens.

Download SKILL.mdSave it as .claude/skills/dotnet-advisor/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
dotnet-advisor
description
Routes .NET/C# requests to the correct domain skill and loads coding standards as baseline for all code paths. Determines whether the task needs API, UI, testing, devops, tooling, or debugging guidance based on prompt analysis and project signals, then invokes skills in the right order. Always invoked after `using-dotnet` detects .NET intent. Do not use for deep API, UI, testing, devops, tooling, or debugging implementation guidance.
license
MIT
user-invocable
false

dotnet-advisor

Router and index skill for dotnet-artisan. Always loaded after using-dotnet confirms .NET intent. Routes .NET development queries to the appropriate consolidated skill based on context.

Scope

  • Routing .NET/C# requests to the correct domain skill or specialist agent
  • Loading dotnet-csharp coding standards as baseline for all code paths
  • Maintaining the skill catalog and routing precedence
  • Delegating complex analysis to specialist agents
  • Disambiguating requests spanning multiple domains

Out of scope

  • Domain-specific implementation guidance -- see dotnet-csharp, dotnet-api, dotnet-ui, dotnet-testing, dotnet-devops, dotnet-tooling, dotnet-debugging
  • Deep implementation content -- see dotnet-csharp, dotnet-api, dotnet-ui, dotnet-testing, dotnet-devops, dotnet-tooling, dotnet-debugging and their companion files

Step 1: Detect Project Version

Before any .NET guidance, determine the project's target framework:

Load dotnet-tooling version detection guidance to read TFMs from .csproj, Directory.Build.props, and global.json. Adapt all guidance to the detected .NET version (net8.0, net9.0, net10.0, net11.0).

Step 2: Load Baseline

For any task that may produce, change, or review C#/.NET code:

  1. Invoke dotnet-csharp and load its always-load baseline references (coding standards, async correctness, code smells). These are correctness concerns the agent handles by default — the user should not need to ask for correct async/await usage, thread safety, or avoiding anti-patterns.
  2. Apply standards throughout planning and implementation, not only in final cleanup.
  3. Load additional dotnet-csharp reference files when the task touches their topic area (concurrency, DI, serialization, LINQ, etc.).

Step 3: .NET-First Defaults

In a .NET repository, default to .NET solutions for ambiguous requests:

  • "build me a web app" → ASP.NET Core (not Express/Next.js)
  • "add a dashboard" / "build a UI" → Blazor or Uno Platform (not React)
  • "write a script" / "automate this" → .NET 10 file-based app (not Python). File-based C# apps work like scripts with dotnet run, support top-level statements, and can be published as native AOT binaries. See dotnet-api references/file-based-apps.md.
  • "build a cross-platform app" → MAUI or Uno Platform (not Electron)
  • "build a CLI tool" → System.CommandLine or Spectre.Console (not Node.js/Python)
  • "create a spreadsheet" / "generate an Excel file" → Open XML SDK or ClosedXML file-based app (not openpyxl/pandas)
  • "create a Word doc" / "generate a report" → Open XML SDK file-based app (not python-docx)
  • "create a PDF" / "merge these PDFs" / "add a watermark" → PDFsharp/MigraDoc file-based app (not reportlab/weasyprint/PyPDF2)

Only suggest non-.NET alternatives when there's a specific reason (e.g., the user explicitly asks for Python, or the task requires a JS-only ecosystem like npm packages).

Step 4: Route to Domain Skill

Identify the primary domain from the request, then LOAD the matching skill — see "Loading another skill" below. If the request spans multiple domains, load them in the order shown.

If the request involves...Invoke
Web APIs, EF Core, gRPC, SignalR, middleware, security hardeningdotnet-api
Blazor, MAUI, Uno Platform, WPF, WinUI, WinFormsdotnet-ui
Unit tests, integration tests, E2E, Playwright, benchmarksdotnet-testing
CI/CD, GitHub Actions, Azure DevOps, containers, NuGet publishingdotnet-devops
Project setup, MSBuild, Native AOT, CLI apps, SDK versionsdotnet-tooling
Crash dumps, WinDbg, hang analysis, memory diagnostics (Windows)dotnet-debugging
Crash dumps, dotnet-dump, lldb, container diagnostics (Linux/macOS)dotnet-debugging
Missing .NET SDK, install dotnet, workloadsdotnet-tooling (references/dotnet-sdk-install.md)
Quick script, utility, single-file tooldotnet-api (references/file-based-apps.md)
Excel, Word, PowerPoint, PDF, spreadsheet, document generationdotnet-api (references/office-documents.md)
New project (unclear domain)dotnet-tooling, then route to the owning domain skill
Cross-Domain Routing

Many tasks naturally span multiple domains. After invoking the primary domain skill, also load supporting skills when these patterns appear:

When the task involves...Also load
Performance optimization or profilingdotnet-tooling (profiling, performance-patterns references)
Testing a specific framework (minimal API, Blazor, EF Core)The framework's domain skill (dotnet-api or dotnet-ui) for context
Authentication or security hardening in a UI appdotnet-api (security, auth middleware references)
Multi-targeting or platform-specific project setupdotnet-tooling (project structure, TFM configuration)
Building a new app (any "build me" request)dotnet-tooling (project setup) + dotnet-testing (test strategy)
CI/CD that runs testsdotnet-testing (test framework configuration)

For broad "build me an app" requests, load comprehensively: dotnet-csharp -> dotnet-tooling -> primary domain -> dotnet-testing -> dotnet-devops.

Show full SKILL.md (480 more words)Show less

Loading another skill

name is descriptive text, not an invocation. Codex collects explicit skills from the ORIGINAL turn input before a router skill is injected, and does not rescan injected text for nested mentions — so naming a skill inside this file loads nothing on its own. Say what you actually did; never report a skill as invoked because you named it.

Load one of these two ways, in order:

  1. Native invocation, where the host offers it. In Claude Code that is the Skill tool with the qualified name, e.g. dotnet-artisan:dotnet-api. This preserves the skill's metadata, policy and dependencies, so prefer it whenever it is available.
  2. Read the file, where it is not. Every skill in this plugin is a sibling directory, so the target is always ../<skill-name>/SKILL.md relative to this file. Read it and follow it as if it had been injected.

The relative path is deliberate: it resolves without a catalog lookup, so it still works when the skill is installed and enabled but sits beyond the truncated model-visible catalog — the case where a name-based search silently finds nothing.

If neither path works, say the skill could not be loaded and continue without it. Do not proceed as though its guidance were in context.

Skill Catalog

SkillSummaryDifferentiator
using-dotnetProcess gateway for .NET routing disciplineMust execute immediately before this skill
dotnet-csharpC# language patterns, coding standards, async/await, DI, LINQ, domain modelingLanguage-level guidance, always loaded as baseline
dotnet-apiASP.NET Core, EF Core, gRPC, SignalR, resilience, security, AspireBackend services and data access
dotnet-uiBlazor, MAUI, Uno Platform, WPF, WinUI, WinForms, accessibilityAll UI frameworks and cross-platform targets
dotnet-testingxUnit v3, integration/E2E, Playwright, snapshots, benchmarksTest strategy, frameworks, and quality gates
dotnet-devopsGitHub Actions, Azure DevOps, containers, NuGet, observabilityCI/CD pipelines, packaging, and operations
dotnet-toolingProject setup, MSBuild, Native AOT, profiling, CLI apps, version detectionBuild system, performance, and developer tools
dotnet-debuggingWinDbg MCP, crash dumps, hang analysis, memory diagnosticsLive and post-mortem dump analysis
dotnet-advisorThis skill -- routes to domain skills aboveEntry point, loaded after using-dotnet

Specialist Agent Routing

For complex analysis that benefits from domain expertise, delegate to specialist agents. Group by concern area:

Architecture and Design

  • Architecture review, framework selection, design patterns -> dotnet-architect
  • General code review (correctness, performance, security) -> dotnet-code-review-agent

Performance and Concurrency

  • Async/await performance, ValueTask, ConfigureAwait, IO.Pipelines -> dotnet-async-performance-specialist
  • Performance profiling, flame graphs, heap dumps, benchmark regression -> dotnet-performance-analyst
  • Benchmark design, measurement methodology, diagnoser selection -> dotnet-benchmark-designer
  • Race conditions, deadlocks, thread safety, synchronization -> dotnet-csharp-concurrency-specialist

UI Frameworks

  • Blazor components, render modes, hosting models, auth -> dotnet-blazor-specialist
  • .NET MAUI development, platform targets, Xamarin migration -> dotnet-maui-specialist
  • Uno Platform, Extensions ecosystem, MVUX, multi-target deployment -> dotnet-uno-specialist

Infrastructure

  • Cloud deployment, .NET Aspire, AKS, CI/CD pipelines, distributed tracing -> dotnet-cloud-specialist
  • Security vulnerabilities, OWASP compliance, secrets exposure, crypto review -> dotnet-security-reviewer
  • Test architecture, test type selection, test data management -> dotnet-testing-specialist
  • Documentation generation, XML docs, Mermaid diagrams -> dotnet-docs-generator
  • ASP.NET Core middleware, request pipeline, DI lifetimes -> dotnet-aspnetcore-specialist

© novotnyllc, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in plugins/dotnet-artisan/skills/dotnet-advisor of novotnyllc/dotnet-artisan.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit de192c1

Compare with similar skills

Dotnet Advisor next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dotnet Advisor compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dotnet Advisor this skillnovotnyllc/dotnet-artisan233—~2.5kAutomated safety check: PassMIT
Dynamo Dotnet ExpertDynamoDS/Dynamo2k—~922Automated safety check: PassApache-2.0
Okojo Node Ink Debugakeit0/okojo160—~798Automated safety check: PassMIT
Code WriterWildGums/Orc.LicenseManager109—~2.3kAutomated safety check: PassCustom licence
C# Behavior-Preserving Refactoringdotnet/skills5.6k1 repos~3.1kAutomated safety check: PassMIT
Sokol Netelix22/Sokol.NET154—~2.8kAutomated safety check: PassMIT

Similar skills

  • Dynamo Dotnet Expert

    DynamoDS/Dynamo

    Write and review C/.NET code in Dynamo following Dynamo coding standards, modern C patterns, and repo conventions.

    2k GitHub stars~922 tokensUpdated today
    DevelopmentAuto-check passed
  • Debug Okojo.Node large-app failures through sandbox/OkojoInkProbe and sandbox/OkojoNodeDebugSandbox.

    160 GitHub stars~798 tokensUpdated 17 days ago
    DevelopmentAuto-check passed
  • Code Writer

    WildGums/Orc.LicenseManager

    Write production C code following repository coding standards and architecture.

    109 GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Official

    Refactors C# and .NET code without changing behavior, using binding-aware edits plus a build and tests, and separating out or declining anything that alters behavior.

    5.6k GitHub starsUsed in 1 repo~3.1k tokens
    DevelopmentAuto-check passed
  • Sokol Net

    elix22/Sokol.NET

    Sokol.NET framework development — use for ANY work in this repo: creating or debugging examples, building/running for desktop/Android/iOS/Web, writing or compiling shaders, adding a new C/C++…

    154 GitHub stars~2.8k tokensUpdated today
    Game DevelopmentAuto-check passed
  • Debugging Code

    JetBrains/skills

    Official

    A skill your agent uses for debugger-driven runtime root-cause analysis in Rider-supported solutions and projects, including .NET/C, F, VB, C++, Unity, Unreal Engine, and other GameDev or…

    366 GitHub starsUsed in 1 repo~3.8k tokens
    Game DevelopmentAuto-check passed

More from novotnyllc/dotnet-artisan

All 9 skills in this repo
  • Dotnet Debugging

    novotnyllc/dotnet-artisan

    Debugs Windows and Linux/macOS applications (native, .NET/CLR, mixed-mode) with WinDbg MCP (crash dumps, !analyze, !syncblk, !dlk, !runaway, !dumpheap, !gcroot, BSOD), dotnet-dump, lldb with SOS…

    233 GitHub stars~2.1k tokensUpdated yesterday
    Auto-check passed
  • Dotnet Tooling

    novotnyllc/dotnet-artisan

    Manages .NET SDK installation (dotnet-install, workloads), project setup (.slnx, Directory.Build.props, CPM), MSBuild authoring, build optimization, performance (Span, ArrayPool, stackalloc)…

    233 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Dotnet API

    novotnyllc/dotnet-artisan

    Builds ASP.NET Core APIs, EF Core data access, gRPC, SignalR, and backend services with middleware, security (OAuth, JWT, OWASP), resilience, messaging, OpenAPI, .NET Aspire, Semantic Kernel…

    233 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Dotnet Csharp

    novotnyllc/dotnet-artisan

    Baseline C skill loaded for every .NET code path. An agent skill from novotnyllc/dotnet-artisan.

    233 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Using Dotnet

    novotnyllc/dotnet-artisan

    Detects .NET intent for any C, ASP.NET Core, EF Core, Blazor, MAUI, Uno Platform, WPF, WinUI, SignalR, gRPC, xUnit, NuGet, or MSBuild request from prompt keywords and repository signals (.sln…

    233 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check: warnings
  • Dotnet Devops

    novotnyllc/dotnet-artisan

    Configures .NET CI/CD pipelines (GitHub Actions with setup-dotnet, NuGet cache, reusable workflows; Azure DevOps with DotNetCoreCLI, templates, multi-stage), containerization (multi-stage…

    233 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Dotnet Advisor

What does Dotnet Advisor do?

Routes .NET/C requests to the correct domain skill and loads coding standards as baseline for all code paths. Dotnet Advisor is an agent skill from novotnyllc/dotnet-artisan.NET/C requests to the correct domain skill and loads coding standards as baseline for all code paths.

When should I use Dotnet Advisor?

Dotnet Advisor fits situations like: debugging implementation guidance; tasks that involve Code quality; tasks that involve Debugging.

How do I install Dotnet Advisor in Claude Code?

Run `npx skills add novotnyllc/dotnet-artisan --skill dotnet-advisor -a claude-code`. Or copy the skill folder (plugins/dotnet-artisan/skills/dotnet-advisor in novotnyllc/dotnet-artisan) into .claude/skills/dotnet-advisor in your project. Claude Code loads it when a task matches its description.

How do I install Dotnet Advisor in Codex?

Run `npx skills add novotnyllc/dotnet-artisan --skill dotnet-advisor -a codex`. Or copy the skill folder (plugins/dotnet-artisan/skills/dotnet-advisor in novotnyllc/dotnet-artisan) into .agents/skills/dotnet-advisor in your project. Codex loads it when a task matches its description.

Can I use Dotnet Advisor in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add novotnyllc/dotnet-artisan --skill dotnet-advisor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dotnet-advisor, .gemini/skills/dotnet-advisor, .github/skills/dotnet-advisor and .opencode/skills/dotnet-advisor in your project.

What does Dotnet Advisor need to run?

Going by SKILL.md and its folder, Dotnet Advisor needs the command-line tools its instructions call (dotnet). Our summary lists: Node.js.

Does Dotnet Advisor access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Dotnet Advisor safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dotnet Advisor use?

Dotnet Advisor is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dotnet Advisor use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dotnet Advisor?

Skills that share tags, products or a category with Dotnet Advisor: Dynamo Dotnet Expert (DynamoDS/Dynamo, 2k stars), Okojo Node Ink Debug (akeit0/okojo, 160 stars), Code Writer (WildGums/Orc.LicenseManager, 109 stars) and C# Behavior-Preserving Refactoring (dotnet/skills, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dotnet Advisor?

novotnyllc (a GitHub organization) maintains it in novotnyllc/dotnet-artisan, which has 233 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 8, 2026.

Source: novotnyllc/dotnet-artisan on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.