From dotnet-skills
Build or modify idiomatic C# .NET projects using nullable-aware APIs, records/classes, async/task behavior, analyzer conventions, tests, and repo-local validation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dotnet-skills:build-csharp-projectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Implement or modify a C# .NET project in C#'s own shape while keeping F# as an equal peer elsewhere in the plugin.
Implement or modify a C# .NET project in C#'s own shape while keeping F# as an equal peer elsewhere in the plugin.
The practical goal is clear nullable-aware APIs, focused types, useful async boundaries, tests that cover changed behavior, and validation through the repository's .NET commands.
.csproj needs new source, tests, or package-facing API.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:
Inspect the repository before editing:
rg --files -g '*.cs' -g '*.csproj' -g '*.sln' -g '*.slnx' -g 'global.json' -g '.editorconfig'
Respect existing repo configuration first.
When nullable reference types are enabled:
! unless the invariant is real and localWhen analyzers or warnings-as-errors are configured:
For library APIs:
For apps:
Use the repository's existing test framework and command if present.
When no convention exists yet, use xUnit as the recommended scaffold default and keep command guidance centered on dotnet test. Preserve existing repo choices instead of migrating test frameworks casually.
Return:
C# change: what type, method, project, or behavior changed.Contracts: nullable, async, public API, or analyzer choices.Tests: what behavior is covered.Validation: exact dotnet commands and result.F# boundary: if relevant, how this C# code interacts with F# projects.npx claudepluginhub gaelic-ghost/socket --plugin dotnet-skillsCreates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.