dotnet-init — скилл для Claude Code: настройка .NET-проекта
Разбирает структуру .NET-решения, задаёт вопросы про архитектуру и стек и пишет готовый CLAUDE.md. Пригодится на старте проекта или при подключении набора к существующему коду.
npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a claude-codeЧто делает dotnet-init
Скилл смотрит на текущую папку: ищет .slnx или .sln, читает .csproj и по типу SDK понимает, что перед ним — веб-API, Blazor, воркер, библиотека классов или модульный монолит. Если решения нет, спрашивает, что вы собираете, и разворачивает структуру: dotnet new sln -n ProjectName --format slnx, нужный шаблон проекта, папки src/ и tests/, Directory.Build.props с настройками .NET 10.
Дальше идёт опрос про сложность домена, размер команды и границы модулей. Скилл подтягивает architecture-advisor и предлагает вариант с обоснованием: вертикальные срезы, Clean Architecture, DDD или модульный монолит. Отдельно уточняет базу данных, аутентификацию, кеширование, обмен сообщениями и тесты. В существующем проекте соглашения вытаскивает convention-learner.
На выходе — CLAUDE.md в корне, собранный из шаблона templates/ с подставленным именем проекта и выбранным стеком. Если файл уже есть, скилл не перезапишет его молча: предложит объединить, заменить или оставить как есть, а перед правкой сделает копию ./CLAUDE.md.bak. Это и есть главная причина ставить его на живой репозиторий — рукописные разделы не пропадут.
Какие задачи решает
- развернуть структуру .NET-решения с нуля
- определить тип проекта по файлам решения и
.csproj - выбрать архитектуру под сложность домена и размер команды
- собрать
CLAUDE.mdпод конкретный стек без копирования шаблона - влить настройки набора в существующий
CLAUDE.md, сохранив свои разделы
Примеры запросов агенту
- /dotnet-init
- Инициализируй проект для dotnet-claude-kit
- Сгенерируй CLAUDE.md для этого решения
Как установить dotnet-init
1Через Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a claude-code2Вручную: положить файлы
~/.claude/skills/dotnet-init/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dotnet-init/
1Через Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a codex2Вручную: положить файлы
.agents/skills/dotnet-init/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a cursor2Вручную: положить файлы
.cursor/skills/dotnet-init/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install codewithmukesh/dotnet-claude-kit dotnet-init2Вручную: положить файлы
.github/skills/dotnet-init/SKILL.md1Через Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a gemini-cli2Командой платформы
gemini skills install https://github.com/codewithmukesh/dotnet-claude-kit --path skills/dotnet-initВручную: положить файлы
.devin/skills/dotnet-init/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора46
Похожие
Рядом в теме «Настройка агента: память, контекст, субагенты»
Всё по теме «Настройка агента: память, контекст, субагенты» →Вопросы о dotnet-init
Как установить dotnet-init в Claude?
Выполните npx skills add codewithmukesh/dotnet-claude-kit --skill dotnet-init -a claude-code. Скилл окажется в ~/.claude/skills/dotnet-init/SKILL.md.
Что делает dotnet-init?
Определяет тип .NET-проекта, задаёт вопросы про архитектуру и стек, а затем генерирует настроенный CLAUDE.md в корне проекта.
Что будет, если в проекте уже есть CLAUDE.md?
Скилл прочитает его, найдёт разделы, написанные вручную, и спросит, что делать: объединить, перезаписать или оставить файл нетронутым. Перед объединением и перезаписью оригинал уходит в ./CLAUDE.md.bak.
Исходный текст
SKILL.md · MIT
---
name: dotnet-init
description: >
Interactive project initialization. Detects project type, asks architecture
questions, and generates a customized CLAUDE.md — no manual template copying.
Use when: "init project", "setup project", "initialize", "new project setup",
"generate CLAUDE.md", "configure for dotnet-claude-kit", or starting Claude
Code on a fresh or existing .NET codebase.
---
# /dotnet-init
## What
Interactively initializes a .NET project for use with dotnet-claude-kit. Detects the project type, asks targeted questions about architecture and tech stack, then generates a fully customized `CLAUDE.md` in the project root.
**No manual template copying required.**
## When
- Starting a new .NET project with Claude Code
- Adding dotnet-claude-kit to an existing project
- "init project", "setup project", "generate CLAUDE.md", "configure for dotnet-claude-kit"
## How
### Step 1: Detect or Ask Project Type
Analyze the current directory to determine if this is an existing or greenfield project:
```
→ Look for .slnx / .sln files
→ If found, scan .csproj files for SDK type:
- Microsoft.NET.Sdk.Web → web-api or blazor-app
- Microsoft.NET.Sdk.Worker → worker-service
- Microsoft.NET.Sdk → class-library
- Multiple projects with inter-module references → modular-monolith
- If ambiguous, ask the user
→ If NO solution/project found (greenfield):
- Ask: "What are you building?"
- REST API / microservice → web-api
- Blazor application → blazor-app
- Background worker / queue processor → worker-service
- NuGet package / shared library → class-library
- Multi-module system → modular-monolith
- Ask: "Project name?"
- Scaffold the solution structure:
- dotnet new sln -n ProjectName --format slnx (modern XML solution format)
- dotnet new webapi / worker / classlib as appropriate
- Set up Directory.Build.props with .NET 10 defaults
- Create src/ and tests/ folder structure
```
### Step 2: Architecture Questionnaire
Load the `architecture-advisor` skill and ask targeted questions:
1. **Domain complexity** — CRUD-heavy, moderate business rules, or rich domain?
2. **Team size** — Solo, small team, or large team?
3. **Module boundaries** — Single deployable or multiple bounded contexts?
4. **Existing patterns** — (existing projects only) Detect conventions via `convention-learner` skill
→ Recommend: VSA, Clean Architecture, DDD, or Modular Monolith with rationale.
### Step 3: Tech Stack Selection
Ask about specific technology choices:
- **Database**: PostgreSQL, SQL Server, SQLite, or none yet
- **Auth**: JWT, OIDC, Cookie, or none yet
- **Caching**: HybridCache, Redis, or none yet
- **Messaging**: Wolverine, MassTransit, or none yet
- **Testing**: Confirm xUnit + Testcontainers defaults
### Step 4: Generate CLAUDE.md
Load the appropriate template from `templates/` as a base, then customize:
- Replace `[ProjectName]` with the actual project/solution name
- Set the chosen architecture
- Configure the tech stack section
- For existing projects: add project-specific conventions detected in Step 2
- For greenfield: add recommended conventions based on architecture choice
**Before writing, check for an existing `CLAUDE.md`. Never overwrite it silently.**
```
→ If ./CLAUDE.md does NOT exist:
- Write the generated content to ./CLAUDE.md
→ If ./CLAUDE.md ALREADY exists:
- Read it and identify hand-written / custom sections
(anything not produced by a kit template)
- Ask: "You already have a CLAUDE.md. How should I proceed?"
- Merge (recommended) → keep the user's custom sections, add or refresh the
kit's architecture, tech-stack, and convention sections in place
- Overwrite → replace it entirely with the freshly generated file
- Keep → leave the file untouched and print the generated content so the
user can copy what they want by hand
- For Merge and Overwrite: back the original up to ./CLAUDE.md.bak first.
Never discard user content without a .bak backup.
```
### Step 5: Verify Setup
```
→ Confirm .mcp.json exists or create it (for Roslyn MCP server)
→ For existing projects:
- Verify the solution file is discoverable
- Run a quick health check to establish baseline
- Report: "Project initialized. Run /health-check to see your baseline."
→ For greenfield projects:
- Verify dotnet build succeeds on the scaffolded solution
- Report: "Project created. Run /scaffold to add your first feature."
```
**Skills invoked:** `project-setup`, `architecture-advisor`, `convention-learner`
**Agent:** `dotnet-architect`
## Example — Existing Project
```
User: /dotnet-init
Claude: Detected:
- Solution: MyApp.slnx (3 projects)
- SDK: Microsoft.NET.Sdk.Web → Web API
- Database: PostgreSQL (from connection string)
- Auth: JWT (from appsettings)
1. Domain complexity? [CRUD-heavy / Moderate / Rich domain]
> Moderate
2. Team size? [Solo / Small / Large]
> Small
Recommendation: Vertical Slice Architecture
Generated: ./CLAUDE.md (MyApp + VSA + PostgreSQL + JWT)
Run /health-check to see your baseline.
```
## Example — Greenfield Project
```
User: /dotnet-init
Claude: No .sln or .csproj found. Let's set up a new project.
1. What are you building? [REST API / Blazor / Worker / Library / Modular Monolith]
> REST API
2. Project name?
> OrderService
3. Domain complexity? [CRUD-heavy / Moderate / Rich domain]
> CRUD-heavy
Recommendation: Vertical Slice Architecture
Creating solution...
→ dotnet new sln -n OrderService --format slnx
→ dotnet new webapi -n OrderService.Api -o src/OrderService.Api
→ dotnet new xunit3 -n OrderService.Tests -o tests/OrderService.Tests
→ Directory.Build.props with .NET 10 defaults
→ Generated: ./CLAUDE.md (OrderService + VSA + scaffold-ready)
Run /scaffold to add your first feature.
```
## Example — Existing Project With a CLAUDE.md
```
User: /dotnet-init
Claude: Detected:
- Solution: MyApp.slnx (3 projects) → Web API
- Found an existing CLAUDE.md (custom "Deployment" and "Team conventions" sections)
You already have a CLAUDE.md. How should I proceed?
[Merge (recommended) / Overwrite / Keep]
> Merge
→ Backed up original to ./CLAUDE.md.bak
→ Kept your Deployment + Team conventions sections
→ Refreshed architecture (VSA), tech-stack (PostgreSQL + JWT), and convention sections
Generated: ./CLAUDE.md
Run /health-check to see your baseline.
```
## Related
- `/plan` — Plan before building features
- `/health-check` — Assess project health after init
- `/scaffold` — Scaffold features using the chosen architecture
© codewithmukesh · MIT · codewithmukesh/dotnet-claude-kit