scaffold — Claude Code skill: .NET 10 feature scaffolding
Generates a full feature slice for .NET 10 projects: endpoint, handler, validator, DTOs, EF configuration and integration tests.
npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a claude-codeWhat scaffold does
The skill starts by detecting the project's architecture — Vertical Slice, Clean Architecture, DDD or Modular Monolith. Then it reads your existing conventions: class naming, folder layout, validation approach, test project structure. Only after that does it generate files from the templates for that architecture.
A nine-item checklist gates every feature. Endpoint via IEndpointGroup, sealed handler with a primary constructor, FluentValidation rules, DTO records, IEntityTypeConfiguration<T>, integration tests on WebApplicationFactory plus Testcontainers, OpenAPI metadata, CancellationToken on every async call, and the Result<T> pattern. Nothing gets skipped — the skill will not hand you half a feature.
Once files are written it builds and runs the tests with dotnet build --no-restore and dotnet test --no-build --filter "FullyQualifiedName~{FeatureName}". If either fails, it fixes and re-runs before reporting back. You need the .NET 10 SDK, and since the integration tests use Testcontainers, Docker has to be available on the machine.
What it helps with
- create an endpoint with its handler and validator in one pass
- place new feature files across Clean Architecture layers
- generate CRUD for an entity together with its EF configuration
- add an integration test to every new feature
- match generation to conventions the codebase already follows
Example prompts for the agent
- /scaffold a Product Catalog feature with CRUD
- create an endpoint for orders in Vertical Slice style
- add an Invoice entity with fields and invariants
How to install scaffold
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a claude-code2Manually: put the files in place
~/.claude/skills/scaffold/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/scaffold/
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a codex2Manually: put the files in place
.agents/skills/scaffold/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a cursor2Manually: put the files in place
.cursor/skills/scaffold/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install codewithmukesh/dotnet-claude-kit scaffold2Manually: put the files in place
.github/skills/scaffold/SKILL.md1Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a gemini-cli2Platform CLI
gemini skills install https://github.com/codewithmukesh/dotnet-claude-kit --path skills/scaffoldManually: put the files in place
.devin/skills/scaffold/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about scaffold
How do I install scaffold in Claude?
Run npx skills add codewithmukesh/dotnet-claude-kit --skill scaffold -a claude-code. The skill lands at ~/.claude/skills/scaffold/SKILL.md.
What does scaffold do?
It detects your project's architecture and generates a complete feature: endpoint, handler, validator, DTOs, EF configuration and integration tests. Then it builds the project and runs the tests.
Which architectures does scaffold support?
Vertical Slice, Clean Architecture, DDD with Clean Architecture, and Modular Monolith. File placement maps and code templates live in references/architecture-patterns.md.
Source text
SKILL.md · MIT
---
name: scaffold
description: >
Architecture-aware feature scaffolding for .NET 10 projects. Detects the
project's architecture (VSA, Clean Architecture, DDD, Modular Monolith) and
generates complete feature slices with all required layers: endpoint,
handler, validator, DTOs, EF configuration, and integration tests — with
the completeness checklist and per-architecture code templates every
generated feature must satisfy.
Use when: "scaffold", "create feature", "add feature", "new endpoint",
"generate", "add entity", "scaffold a module", "add module", or when
customizing generation templates or defining what a complete feature slice
includes.
---
# /scaffold — Architecture-Aware Feature Scaffolding
## What
Generates a complete feature with all required files based on the project's
architecture. Never generates half a feature — every scaffold includes the
endpoint, handler, validation, DTOs, EF configuration, and at least one
integration test as a single unit, written in modern C# 14 (primary
constructors, collection expressions, records, sealed handlers, TypedResults).
Supported architectures (file placement maps and code shape templates live in
`references/architecture-patterns.md`):
- **Vertical Slice Architecture (VSA)** — single-file features in `Features/`
- **Clean Architecture (CA)** — files split across Domain, Application, Infrastructure, Api
- **DDD + Clean Architecture** — aggregate roots, value objects, domain events, plus CA layers
- **Modular Monolith** — self-contained modules with their own DbContext and integration events
## When
- "Scaffold a [feature name]", "create an endpoint for", "add a feature"
- "Generate CRUD for", "add entity", "new module", "scaffold a module"
- Starting a new feature after `/plan` has produced an approved plan
- Customizing generation templates or defining what a complete slice includes
- Any time the user wants a complete, working feature skeleton
## How
### Step 1: Detect Architecture
Use the `architecture-advisor` skill to determine the project's architecture:
- Examine folder structure, project references, and existing patterns
- If architecture is ambiguous, ask the user rather than guessing
- Load the matching architecture skill (vertical-slice, clean-architecture, ddd)
### Step 2: Clarify Scope
Confirm with the user before generating (skip anything the plan already answers):
1. Feature/entity name and operations needed — full CRUD or a subset?
2. Key fields and invariants for any new entity
3. Module placement (Modular Monolith only) — existing module or new one?
### Step 3: Learn Conventions
Use the `convention-learner` skill and MCP tools to check:
- Naming patterns (`*Handler`, `*Service`, `*Endpoint`, `*Command`, `*Query`)
- Folder structure, file organization, access modifiers, sealed conventions
- Existing validation approach (FluentValidation, data annotations, manual)
- Test project structure and naming (`*Tests`, `*IntegrationTests`)
Match what exists. Do not impose new conventions on an established codebase.
### Step 4: Generate All Layers
Generate every file the architecture requires, following the templates in
`references/architecture-patterns.md`:
- **VSA** — read the VSA section: single-file feature + endpoint group + EF config + tests
- **Clean Architecture** — read the CA section: Mediator command/handler in Application, endpoint in Api
- **DDD** — read the DDD section: aggregate with invariants and domain events, thin handler
- **Modular Monolith** — read the Modular Monolith section: module DbContext, DI registration, integration events
The reference also covers the shared shapes every architecture reuses
(endpoint group, validator, entity + `IEntityTypeConfiguration<T>` pair,
test fixture) and the anti-patterns to avoid.
### Step 5: Completeness Checklist (MANDATORY)
Every scaffolded feature MUST include ALL nine items. Do not skip any:
- [ ] **Endpoint** — `IEndpointGroup` file with a route group; never wired in Program.cs
- [ ] **Handler** — `sealed`, primary constructor, one per operation
- [ ] **Validator** — FluentValidation rules with meaning (ranges, required, max lengths), wired via `.AddEndpointFilter<ValidationFilter<T>>()` on mutating endpoints
- [ ] **DTOs** — records shaped for the consumer, never 1:1 entity mirrors
- [ ] **EF configuration** — `IEntityTypeConfiguration<T>`; no data annotations on entities
- [ ] **Integration tests** — `WebApplicationFactory` + Testcontainers, DI replacement via `services.RemoveAll<DbContextOptions<T>>()`
- [ ] **OpenAPI metadata** — `.WithName()`, `.WithSummary()`, `.Produces<T>()`, `.ProducesValidationProblem()`, `.ProducesProblem(404)`
- [ ] **CancellationToken** — on every async method and passed to every async call
- [ ] **Result pattern** — handlers return `Result<T>`; endpoints map success → TypedResults, failure → `ToProblemDetails()`
Also verify supporting infrastructure — scaffold it if missing: list endpoints
get bounded pagination (`page`/`pageSize`, max 50), Program.cs has
`app.UseExceptionHandler()`, and appsettings.json has a connection string.
### Step 6: Verify
Prove the scaffold works before reporting done:
```bash
dotnet build --no-restore
dotnet test --no-build --filter "FullyQualifiedName~{FeatureName}"
```
If the build or tests fail, fix and re-run before presenting results.
## Example
```
User: /scaffold a Product Catalog feature with CRUD operations
Claude: Detected architecture: Vertical Slice Architecture
Created files:
src/Features/Products/CreateProduct.cs -- Command + handler + validator
src/Features/Products/GetProduct.cs -- Query by ID + handler
src/Features/Products/ListProducts.cs -- Paginated list + handler
src/Features/Products/UpdateProduct.cs -- Command + handler + validator
src/Features/Products/DeleteProduct.cs -- Command + handler
src/Features/Products/ProductEndpoints.cs -- IEndpointGroup, OpenAPI metadata
src/Features/Products/ProductConfig.cs -- EF Core configuration
tests/Features/Products/CreateProductTests.cs
tests/Features/Products/GetProductTests.cs
tests/Features/Products/ListProductsTests.cs
Checklist: 9/9 | Build: PASS | Tests: PASS
All files follow your existing conventions (sealed handlers,
primary constructors, TypedResults return types).
```
## Related
- `dotnet-init` — Initialize the project and CLAUDE.md before scaffolding features
- `vertical-slice` — The VSA patterns the VSA scaffold follows
- `clean-architecture` — Layering rules behind the CA scaffold
- `ddd` — Aggregate and domain-event patterns behind the DDD scaffold
- `project-structure` — Where files belong in each architecture
© codewithmukesh · MIT · codewithmukesh/dotnet-claude-kit