codewithmukesh/dotnet-claude-kit

dotnet-init

Interactive project initialization.

Ver código fuente
Documento original del Skill

Contenido del repositorio de origen con títulos, ejemplos, código, tablas, enlaces e imágenes preservados.

/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
del mismo repositorio

Más Skills

Todos los Skills
codewithmukesh
Comunidad

api-versioning

API versioning strategies for ASP.NET Core. Covers Asp.Versioning library, URL segment, header, and query string strategies, version deprecation, and OpenAPI integration. Load this skill when adding versioning to an API, evolving an API with breaking changes, or when the user mentions "API version", "versioning", "v1/v2", "Asp.Versioning", "deprecation", "breaking change", or "backward compatibility".

instalaciones
2
GitHub Stars
692
Actualizado
7 ago
codewithmukesh
Comunidad

arch-check

Architecture conformance check: verifies an existing codebase against its declared architecture (VSA, Clean Architecture, DDD, Modular Monolith) — dependency direction, layer violations, module boundary leaks, and cycles — using token-cheap Roslyn MCP analysis. Invoke when: "check architecture", "architecture violations", "layer violations", "dependency direction", "module boundaries", "arch check", "is my architecture clean", "enforce architecture", "conformance check". For CHOOSING an architecture, use architecture-advisor instead.

instalaciones
2
GitHub Stars
692
Actualizado
7 ago
codewithmukesh
Comunidad

architecture-advisor

Architecture selection advisor for .NET applications. Asks structured questions about domain complexity, team size, system lifetime, compliance, and integration needs, then recommends the best-fit architecture: Vertical Slice, Clean Architecture, DDD + Clean Architecture, or Modular Monolith. Load this skill when the user asks "which architecture", "choose architecture", "set up project", "new project", "architecture decision", "restructure", or "how should I organize". Always load BEFORE any architecture-specific skill.

instalaciones
2
GitHub Stars
692
Actualizado
7 ago
codewithmukesh
Comunidad

aspire

.NET Aspire for cloud-native orchestration. Covers AppHost configuration, service defaults, resource configuration, service discovery, and the Aspire dashboard. Load this skill when setting up local development orchestration, service discovery, or Aspire-managed infrastructure, or when the user mentions "Aspire", "AppHost", "service defaults", "service discovery", "orchestration", "Aspire dashboard", "AddProject", "WithReference", or "cloud-native .NET".

instalaciones
2
GitHub Stars
692
Actualizado
7 ago