dotnet-init
Skill808 starsChanged 4 months agoMITView on GitHub
Interactive project initialization. Detects project type (web API, Blazor, worker, console, CLI tool, desktop, library), asks the right 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.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- Attemainio/dotnet-toolkittheir own version, first seen Sep 19, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- Attemainio/dotnet-toolkit★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository57 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/rules/agents.mdAGENTS.md
- .codex/AGENTS.mdAGENTS.md
- .opencode/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/dotnet-rules.mdCursor rule
- api-versioningSkill
- arch-checkSkill
- architecture-advisorSkill
- aspireSkill
- authenticationSkill
- avaloniaSkill
- build-fixSkill
- cachingSkill
- checkpointSkill
- ci-cdSkill
- clean-architectureSkill
- code-reviewSkill
- configurationSkill
- console-cliSkill
- container-publishSkill
- convention-learnerSkill
- dddSkill
- dependency-injectionSkill
- desktop-mvvmSkill
- de-sloppifySkill
- dockerSkill
- ef-coreSkill
- error-handlingSkill
- health-checkSkill
- httpclient-factorySkill
- instinct-systemSkill
- loggingSkill
- messagingSkill
- migrateSkill
- minimal-apiSkill
- modern-csharpSkill
- native-aotSkill
- openapiSkill
- opentelemetrySkill
- outdatedSkill
- planSkill
- project-setupSkill
- project-structureSkill
- resilienceSkill
- scaffoldSkill
- scalarSkill
- security-scanSkill
- serilogSkill
- specSkill
- tddSkill
- testingSkill
- token-reportSkill
- verifySkill
- vertical-sliceSkill
- workflow-masterySkill
- wrap-upSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 66
Run-to-completion tool or long-running daemon?
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/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, then classify each .csproj:
- Microsoft.NET.Sdk.Web → web-api or blazor-app
- Microsoft.NET.Sdk.Worker → worker-service
- UseWPF / UseWindowsForms / UseMaui = true, or Avalonia package → desktop-app
- Microsoft.NET.Sdk + OutputType Exe → console-cli
(PackAsTool or System.CommandLine reference → CLI tool; else console utility)
- Microsoft.NET.Sdk without OutputType Exe → 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 → worker-service - Multi-module system → modular-monolith
- Console app / CLI tool → console-cli - NuGet package / library → class-library
- Desktop app → desktop-app (then ask: Avalonia, WPF, WinForms, or MAUI?)
- Ask "Project name?", then scaffold: dotnet new sln -n ProjectName --format slnx, then the matching
template (webapi / worker / console / classlib / wpf / winforms / maui;
Avalonia: dotnet new install Avalonia.Templates → avalonia.mvvm),
Directory.Build.props with .NET 10 defaults, src/ and tests/ foldersStep 2: Questionnaire (by Project Type)
Web API / Blazor / Worker / Modular Monolith — load architecture-advisor:
- Domain complexity — CRUD-heavy, moderate business rules, or rich domain?
- Team size — Solo, small team, or large team?
- Module boundaries — Single deployable or multiple bounded contexts?
- Existing patterns — (existing projects only) Detect conventions via
convention-learnerskill
→ Recommend: VSA, Clean Architecture, DDD, or Modular Monolith with rationale.
Console / CLI tool — skip web architecture questions; load console-cli:
- Run-to-completion tool or long-running daemon? (daemon → worker-service instead)
- Distribution: dotnet tool (
PackAsTool), Native AOT binary per OS (native-aot), or file-based script? - Needs DI/config/HTTP? → Generic Host inside the command action
Desktop — skip web architecture questions; load desktop-mvvm (+ avalonia for Avalonia):
- Target OSes? (Windows-only → WPF is fine; macOS/Linux → Avalonia)
- Native AOT / trimming wanted? (Avalonia only — WPF/WinForms don't support trimming)
Library — public API surface, target frameworks, AOT compatibility (IsAotCompatible).
Step 3: Tech Stack Selection
- Database: PostgreSQL, SQL Server, SQLite, or none yet
- Auth / Caching / Messaging (web + worker only): JWT/OIDC, HybridCache, Wolverine/MassTransit, or none yet
- Testing: Confirm xUnit defaults (+ Testcontainers when a database is involved)
Step 4: Generate CLAUDE.md
Load the appropriate template from templates/ as a base, then customize:
- Replace
[ProjectName], set the chosen architecture (or app type), configure the tech stack - Existing projects: add conventions detected in Step 2; greenfield: recommended conventions
- Templates:
web-api,blazor-app,worker-service,modular-monolith,class-library,console-cli,desktop-app
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 it untouched; print the generated content for manual copying
- 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."
(console/desktop: "Add your first command / view model.")Skills invoked: project-setup, architecture-advisor, convention-learner; console/desktop: console-cli, desktop-mvvm, avalonia, native-aot
Agent: dotnet-architect (web, worker, library) · app-engineer (console, CLI, desktop)
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 / Console-CLI / Desktop / 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
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

