Skills template-discovery

install
source · Clone the upstream repo
git clone https://github.com/dotnet/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/dotnet/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/dotnet-template-engine/skills/template-discovery" ~/.claude/skills/dotnet-skills-template-discovery && rm -rf "$T"
manifest: plugins/dotnet-template-engine/skills/template-discovery/SKILL.md
source content

Template Discovery

This skill helps an agent find, inspect, and select the right

dotnet new
template for a given task using
dotnet new
CLI commands for search, listing, and parameter inspection.

When to Use

  • User asks "What templates are available for X?"
  • User describes a project in natural language ("I need a web API with authentication")
  • User wants to compare templates or understand parameters before creating a project
  • User needs to know what a template produces (files, structure) before committing

When Not to Use

  • User wants to create a project — route to
    template-instantiation
    skill
  • User wants to author or validate a custom template — route to
    template-authoring
    skill
  • User is troubleshooting build issues — route to
    dotnet-msbuild
    plugin

Inputs

InputRequiredDescription
User intent or keywordsYesNatural-language description or keywords (e.g., "web API", "console app", "MAUI")
Language preferenceNoC#, F#, or VB — defaults to C#
Framework preferenceNoTarget framework (e.g., net10.0, net9.0)

Workflow

Step 1: Resolve intent to template candidates

Map the user's natural-language description to template short names using these common keyword mappings:

User IntentTemplateSuggested Parameters
web API, REST API
webapi
--auth Individual --use-controllers
if auth requested
web app, website
webapp
Blazor, interactive web
blazor
console app, CLI tool
console
class library, shared code
classlib
worker service, background job
worker
gRPC service
grpc
MAUI app, mobile app
maui
test project, unit tests
xunit
,
mstest
, or
nunit

Step 2: Search for templates

Use

dotnet new search
to find templates by keyword across both locally installed templates and NuGet.org:

dotnet new search blazor

Use

dotnet new list
to show only installed templates, with optional filters:

dotnet new list --language C# --type project
dotnet new list web

Step 3: Inspect template details

Use

dotnet new <template> --help
to get full parameter details for a specific template — parameter names, types, defaults, and allowed values:

dotnet new webapi --help

Step 4: Preview output

Use

dotnet new <template> --dry-run
to show what files and directories a template would create without writing anything to disk:

dotnet new webapi --name MyApi --auth Individual --dry-run

Step 5: Present findings

Summarize the best template match with:

  • Template name and short description
  • Key parameters and recommended values
  • What the user should expect (files created, project structure)
  • Any constraints or prerequisites

Validation

  • At least one template match was found for the user's intent
  • Template parameters are explained with types and defaults
  • User understands what the template produces before proceeding to creation

Common Pitfalls

PitfallSolution
Not searching NuGet for templatesIf
dotnet new list
shows no matches, use
dotnet new search <keyword>
to find installable templates on NuGet.org.
Not checking template constraintsSome templates require specific SDKs or workloads. Use
dotnet new <template> --help
to surface constraints before recommending.
Recommending a template without previewing outputAlways use
dotnet new <template> --dry-run
to confirm the template produces what the user expects.

More Info