dotnet-init について
dotnet-claude-kit 向けに .NET プロジェクトを初期化する対話型スキルです。構成を検出してアーキテクチャや技術選択を確認し、既存内容を確かめたうえで CLAUDE.md を生成または更新します。
主な機能
- 01プロジェクトの種類と構成の検出
- 02アーキテクチャと技術スタックの確認
- 03カスタマイズした CLAUDE.md の生成
- 04既存の独自セクションの保持
- 05プロジェクト設定の検証
活用シーン
- 01Claude Code 用の新規 .NET プロジェクトの準備
- 02既存プロジェクトへの dotnet-claude-kit 導入
- 03既存内容を黙って上書きせずにプロジェクトガイドを更新
MCP 対応
設定時に .mcp.json を確認し、必要に応じて Roslyn MCP サーバー用に作成します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ codewithmukesh/ dotnet-claude-kit --skill dotnet-initインストール後、Claude Code で/dotnet-initを入力して読み込まれたか確認します。
詳細
/dotnet-init
概要
dotnet-claude-kit で使用する .NET プロジェクトを対話形式で初期化します。プロジェクトの種類を検出し、アーキテクチャと技術スタックについて的を絞った質問を行ったうえで、プロジェクトのルートに完全にカスタマイズされた CLAUDE.md を生成します。
テンプレートを手動でコピーする必要はありません。
使用するタイミング
- Claude Code で新しい .NET プロジェクトを始めるとき
- 既存のプロジェクトに dotnet-claude-kit を追加するとき
- 「プロジェクトを初期化」「プロジェクトをセットアップ」「CLAUDE.md を生成」「dotnet-claude-kit 用に設定」
手順
ステップ 1:プロジェクトの種類を検出または確認する
現在のディレクトリを分析し、既存のプロジェクトか新規プロジェクトかを判断します。
→ 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
ステップ 2:アーキテクチャに関する質問
architecture-advisor スキルを読み込み、的を絞った質問をします。
- ドメインの複雑さ — CRUD 中心、ビジネスルールが中程度、またはドメインが複雑?
- チームの規模 — 個人、小規模チーム、または大規模チーム?
- モジュールの境界 — 単一のデプロイ可能なアプリケーション、または複数の境界づけられたコンテキスト?
- 既存のパターン — (既存プロジェクトのみ)
convention-learnerスキルを使って規約を検出する
→ 理由を添えて、VSA、クリーンアーキテクチャ、DDD、またはモジュラーモノリスを推奨します。
ステップ 3:技術スタックの選択
具体的な技術の選択について質問します。
- データベース:PostgreSQL、SQL Server、SQLite、またはまだ決めていない
- 認証:JWT、OIDC、Cookie、またはまだ決めていない
- キャッシュ:HybridCache、Redis、またはまだ決めていない
- メッセージング:Wolverine、MassTransit、またはまだ決めていない
- テスト:xUnit + Testcontainers のデフォルトを確認する
ステップ 4:CLAUDE.md を生成する
templates/ から適切なテンプレートをベースとして読み込み、カスタマイズします。
[ProjectName]を実際のプロジェクト名またはソリューション名に置き換える- 選択したアーキテクチャを設定する
- 技術スタックのセクションを設定する
- 既存のプロジェクトの場合:ステップ 2 で検出したプロジェクト固有の規約を追加する
- 新規プロジェクトの場合:選択したアーキテクチャに基づいて推奨される規約を追加する
書き込む前に、既存の CLAUDE.md がないか確認してください。既存のファイルを黙って上書きしてはいけません。
→ 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.
ステップ 5:セットアップを検証する
→ 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."
呼び出されるスキル: project-setup、architecture-advisor、convention-learner
エージェント: dotnet-architect
例 — 既存のプロジェクト
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.
例 — 新規プロジェクト
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.
例 — 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.
関連項目
/plan— 機能の開発前に計画する/health-check— 初期化後にプロジェクトの健全性を評価する/scaffold— 選択したアーキテクチャを使って機能をスキャフォールドする
コメント
Markdown 対応