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.mdsource 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
skilltemplate-instantiation - User wants to author or validate a custom template — route to
skilltemplate-authoring - User is troubleshooting build issues — route to
plugindotnet-msbuild
Inputs
| Input | Required | Description |
|---|---|---|
| User intent or keywords | Yes | Natural-language description or keywords (e.g., "web API", "console app", "MAUI") |
| Language preference | No | C#, F#, or VB — defaults to C# |
| Framework preference | No | Target 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 Intent | Template | Suggested Parameters |
|---|---|---|
| web API, REST API | | if auth requested |
| web app, website | | |
| Blazor, interactive web | | |
| console app, CLI tool | | |
| class library, shared code | | |
| worker service, background job | | |
| gRPC service | | |
| MAUI app, mobile app | | |
| test project, unit tests | , , or |
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
| Pitfall | Solution |
|---|---|
| Not searching NuGet for templates | If shows no matches, use to find installable templates on NuGet.org. |
| Not checking template constraints | Some templates require specific SDKs or workloads. Use to surface constraints before recommending. |
| Recommending a template without previewing output | Always use to confirm the template produces what the user expects. |
More Info
- dotnet new templates — built-in template reference
- Template Engine Wiki — template engine internals