dotnet-project-initlisted
Install: claude install-skill zdanovichnick/dotnet-pilot
# .NET Project Initialization Skill
This skill discovers everything about a .NET solution needed for DotnetPilot to operate effectively.
## Discovery Protocol
### 1. Solution File
- Search for `*.slnx` (modern) or `*.sln` (legacy) in current directory
- If multiple solutions: ask user which one to use
- Parse project references from solution file
### 2. Per-Project Analysis
For each project in the solution:
```bash
dotnet list <project.csproj> reference # project references
dotnet list <project.csproj> package # NuGet packages
```
Parse `.csproj` for:
- `<TargetFramework>` → net8.0, net9.0, net10.0, etc.
- `<OutputType>` → Exe, Library
- `<Sdk>` → Microsoft.NET.Sdk.Web (web), Microsoft.NET.Sdk (classlib)
- `<IsPackable>` → library intended for NuGet distribution
- `<RootNamespace>` → namespace convention
### 3. Framework Detection
| Indicator | Detection |
|-----------|----------|
| **Test runner** | xunit → `xunit` package; NUnit → `NUnit` package; MSTest → `MSTest.TestAdapter` |
| **Mocking** | `Moq`, `NSubstitute`, `FakeItEasy` in test project packages |
| **Assertions** | `FluentAssertions`, `Shouldly` in test project packages |
| **ORM** | `Microsoft.EntityFrameworkCore` → EF Core; `Dapper` → Dapper |
| **Validation** | `FluentValidation` or DataAnnotations (check for `[Required]` attributes) |
| **CQRS** | `MediatR` package presence |
| **Mapping** | `AutoMapper` or `Mapster` package presence |
| **API style** | `[ApiController]` attribute → controllers