From dotnet-skills
Bootstrap or guide a reproducible .NET solution with explicit F# or C# language choice, SDK selection, project layout, test project setup, and initial validation commands.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dotnet-skills:bootstrap-solutionThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create or guide a reproducible .NET solution scaffold without making C# the silent default.
Create or guide a reproducible .NET solution scaffold without making C# the silent default.
The user should leave with a clear project layout, explicit F# or C# choice, predictable SDK behavior, and validation commands that prove the scaffold works.
global.json, solution-level layout, or explicit validation commands.dotnet:choose-project-shape when the project shape is settled.Use repo-local .NET files, checked-out dependency sources, Dash MCP or Dash HTTP for installed .NET docsets, and then official Microsoft documentation when Dash/local coverage is missing or stale:
dotnet new documentationglobal.json documentationdotnet build documentationdotnet test documentationCheck the local SDK only when implementation actually needs it:
dotnet --info
dotnet --list-sdks
If the user has not selected F# or C#, ask before scaffolding.
.sln or .slnxglobal.jsonDirectory.Build.props.fsproj or .csprojglobal.json when presentglobal.json when reproducibility matters and the user accepts the SDK pindotnet CLI.These recipes use xUnit intentionally. It is the recommended default for new scaffolds in this plugin because it is a common .NET CLI test template and Microsoft documents dotnet test workflows with xUnit examples. Preserve existing repo test-framework choices when adding to an established repository.
F# console app with tests:
dotnet new sln --name MyTool
dotnet new console --language "F#" --name MyTool --output src/MyTool
dotnet new xunit --language "F#" --name MyTool.Tests --output tests/MyTool.Tests
dotnet sln add src/MyTool/MyTool.fsproj
dotnet sln add tests/MyTool.Tests/MyTool.Tests.fsproj
dotnet add tests/MyTool.Tests/MyTool.Tests.fsproj reference src/MyTool/MyTool.fsproj
dotnet test
C# console app with tests:
dotnet new sln --name MyTool
dotnet new console --language "C#" --name MyTool --output src/MyTool
dotnet new xunit --language "C#" --name MyTool.Tests --output tests/MyTool.Tests
dotnet sln add src/MyTool/MyTool.csproj
dotnet sln add tests/MyTool.Tests/MyTool.Tests.csproj
dotnet add tests/MyTool.Tests/MyTool.Tests.csproj reference src/MyTool/MyTool.csproj
dotnet test
Library package shape:
dotnet new sln --name MyLibrary
dotnet new classlib --language "F#" --name MyLibrary --output src/MyLibrary
dotnet new xunit --language "F#" --name MyLibrary.Tests --output tests/MyLibrary.Tests
dotnet sln add src/MyLibrary/MyLibrary.fsproj
dotnet sln add tests/MyLibrary.Tests/MyLibrary.Tests.fsproj
dotnet add tests/MyLibrary.Tests/MyLibrary.Tests.fsproj reference src/MyLibrary/MyLibrary.fsproj
dotnet test
Use C# by changing --language "F#" to --language "C#" and project extensions from .fsproj to .csproj.
.fsproj after adding files.Return:
Created or planned layout: solution, source projects, test projects.Language: F#, C#, or mixed.SDK behavior: existing SDK, pinned SDK, or not pinned.Commands: exact commands run or recommended.Validation: restore, build, test, or pack results.Next skill: implementation or testing handoff.Creates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.
npx claudepluginhub gaelic-ghost/socket --plugin dotnet-skills