dotnet-advisor について
dotnet-artisan のルーティング兼インデックススキルです。.NET 開発の質問を専門スキルに振り分け、最初にターゲットフレームワークを確認して、検出した .NET バージョンに合わせます。
主な機能
- 01質問を専門スキルへ振り分け
- 02案内前にターゲットフレームワークを検出
- 03.NET 開発スキルのカタログを索引化
- 04テストからデプロイまでの開発分野を網羅
活用シーン
- 01.NET タスクに適したスキルの選択
- 02フレームワーク別の案内要件の確認
- 03プロジェクト構築や保守のスキル検索
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wshaddix/ dotnet-skills --skill dotnet-advisorインストール後、Claude Code で/dotnet-advisorを入力して読み込まれたか確認します。
詳細
dotnet-advisor
dotnet-artisan 用のルーター兼インデックススキルです。常に読み込まれます。コンテキストに基づいて、.NET 開発に関するクエリを適切な専門スキルに振り分けます。
最初の手順:プロジェクトのバージョンを検出する
.NET に関するガイダンスを提供する前に、プロジェクトのターゲットフレームワークを特定します。
[skill:dotnet-version-detection] を読み込み、
.csproj、Directory.Build.props、global.jsonから TFM を読み取ります。検出した .NET バージョン(net8.0、net9.0、net10.0、net11.0)に合わせて、すべてのガイダンスを調整します。
スキル一覧
1. 基盤とプラグインインフラ implemented
- [skill:dotnet-advisor] -- このスキル(ルーター/インデックス)
- [skill:dotnet-version-detection] -- TFM/SDK の検出、プレビュー機能
- [skill:dotnet-project-analysis] -- ソリューション構造、プロジェクト参照、CPM
- [skill:dotnet-file-based-apps] -- .NET 10 のファイルベースアプリ、
#:ディレクティブ、.csproj なし
2. C# の基礎と言語パターン planned
- [skill:dotnet-csharp-modern-patterns] -- C# 14/15 の機能、レコード、パターンマッチング
- [skill:dotnet-csharp-coding-standards] -- 命名、規約、ファイル構成
- [skill:dotnet-csharp-async-patterns] -- async/await のベストプラクティス、よくある間違い
- [skill:dotnet-csharp-nullable-reference-types] -- NRT パターン、注釈、移行
- [skill:dotnet-csharp-dependency-injection] -- MS DI、キー付きサービス、デコレーション
- [skill:dotnet-csharp-configuration] -- オプションパターン、機能フラグ、シークレット
- [skill:dotnet-csharp-source-generators] -- IIncrementalGenerator、コード生成パターン
- [skill:dotnet-csharp-code-smells] -- コードスメル、アンチパターン、よくある落とし穴
- [skill:dotnet-roslyn-analyzers] -- カスタム DiagnosticAnalyzer、CodeFixProvider、テスト、NuGet パッケージ化
- [skill:dotnet-file-io] -- FileStream、RandomAccess、FileSystemWatcher、MemoryMappedFile、パス処理
- [skill:dotnet-io-pipelines] -- System.IO.Pipelines:PipeReader/PipeWriter、バックプレッシャー、プロトコル解析
- [skill:dotnet-linq-optimization] -- IQueryable と IEnumerable、コンパイル済みクエリ、遅延実行
- [skill:dotnet-native-interop] -- P/Invoke、LibraryImport、マーシャリング、クロスプラットフォームのネイティブ呼び出し
3. プロジェクト構造とスキャフォールディング planned
- [skill:dotnet-project-structure] -- .slnx、Directory.Build.props、CPM、アナライザー
- [skill:dotnet-artifacts-output] -- UseArtifactsOutput、ArtifactsPath、CI と Docker への影響
- [skill:dotnet-scaffold-project] -- ベストプラクティスに沿ったプロジェクトのスキャフォールディング
- [skill:dotnet-add-analyzers] -- Roslyn アナライザー、nullable、トリミング、AOT 互換性
- [skill:dotnet-add-ci] -- 既存プロジェクトへの CI/CD の追加
- [skill:dotnet-add-testing] -- テスト基盤の追加
- [skill:dotnet-modernize] -- コードのモダン化の機会を分析
4. アーキテクチャパターン planned
- [skill:dotnet-architecture-patterns] -- Minimal API の構成、垂直スライス、エラー処理
- [skill:dotnet-background-services] -- BackgroundService、Channels、プロデューサー/コンシューマー
- [skill:dotnet-resilience] -- Polly v8 + MS.Extensions.Resilience(Http.Polly は使用しない)
- [skill:dotnet-http-client] -- IHttpClientFactory、型指定/名前付きクライアント、レジリエンス
- [skill:dotnet-observability] -- OpenTelemetry、構造化ログ、ヘルスチェック
- [skill:dotnet-efcore-patterns] -- DbContext のライフサイクル、マイグレーション、インターセプター
- [skill:dotnet-efcore-architecture] -- 読み取り/書き込みモデル、N+1 の回避
- [skill:dotnet-data-access-strategy] -- EF Core、Dapper、ADO.NET の選択
- [skill:dotnet-containers] -- マルチステージ Dockerfile、ルートレス、ヘルスチェック
- [skill:dotnet-container-deployment] -- Kubernetes、Docker Compose、レジストリ
- [skill:dotnet-messaging-patterns] -- パブリッシュ/サブスクライブ、競合するコンシューマー、DLQ、サーガ、配信保証
- [skill:dotnet-domain-modeling] -- DDD の集約、値オブジェクト、ドメインイベント、リポジトリの契約
- [skill:dotnet-structured-logging] -- ログ集約、構造化クエリ、サンプリング、PII の除去
- [skill:dotnet-aspire-patterns] -- .NET Aspire:AppHost、サービス検出、コンポーネント、ダッシュボード
5. シリアライゼーションと通信 planned
- [skill:dotnet-serialization] -- AOT ソース生成:STJ、Protobuf、MessagePack
- [skill:dotnet-grpc] -- サービス定義、ストリーミング、認証、ヘルスチェック
- [skill:dotnet-realtime-communication] -- SignalR、JSON-RPC、SSE、gRPC ストリーミング
- [skill:dotnet-service-communication] -- gRPC、リアルタイム通信、REST へのルーティング
6. API 開発 planned
- [skill:dotnet-minimal-apis] -- ルートグループ、フィルター、検証、OpenAPI 3.1
- [skill:dotnet-api-versioning] -- URL バージョニング、Asp.Versioning.Http/Mvc
- [skill:dotnet-openapi] -- OpenAPI:MS.AspNetCore.OpenApi(.NET 9 以降に組み込み)、Swashbuckle からの移行、NSwag、トランスフォーマー
- [skill:dotnet-api-security] -- Identity、OAuth/OIDC、JWT、パスキー(WebAuthn)、CORS、CSP、レート制限
- [skill:dotnet-input-validation] -- .NET 10 AddValidation、FluentValidation、Data Annotations、エンドポイントフィルター、ProblemDetails
- [skill:dotnet-library-api-compat] -- バイナリ/ソース互換性のルール、型フォワーダー、SemVer への影響
- [skill:dotnet-api-surface-validation] -- PublicApiAnalyzers、Verify スナップショットパターン、ApiCompat による CI での適用
7. セキュリティ planned
- [skill:dotnet-security-owasp] -- .NET 向け OWASP Top 10
- [skill:dotnet-secrets-management] -- ユーザーシークレット、安全な構成パターン
- [skill:dotnet-cryptography] -- ポスト量子暗号を含む最新の暗号技術(.NET 10)
8. テスト planned
- [skill:dotnet-testing-strategy] -- 単体テストと統合テスト、E2E テストの使い分けと構成
- [skill:dotnet-xunit] -- xUnit v3、理論、フィクスチャ、並列実行
- [skill:dotnet-integration-testing] -- WebApplicationFactory、Testcontainers
- [skill:dotnet-ui-testing-core] -- UI テストの基本パターン
- [skill:dotnet-blazor-testing] -- Blazor コンポーネント向け bUnit
- [skill:dotnet-maui-testing] -- MAUI 向け Appium、XHarness
- [skill:dotnet-uno-testing] -- Uno WASM 向け Playwright
- [skill:dotnet-playwright] -- ブラウザーの自動化、E2E テスト
- [skill:dotnet-snapshot-testing] -- スナップショットテスト向け Verify
- [skill:dotnet-test-quality] -- カバレッジ、CRAP 分析、ミューテーションテスト
9. パフォーマンスとベンチマーク implemented
- [skill:dotnet-benchmarkdotnet] -- BenchmarkDotNet のセットアップ、構成、CI
- [skill:dotnet-performance-patterns] -- Span、プーリング、アロケーションゼロ、sealed
- [skill:dotnet-profiling] -- dotnet-counters、trace、dump、メモリ
- [skill:dotnet-ci-benchmarking] -- 継続的なベンチマーク、リグレッションの検出
- [skill:dotnet-gc-memory] -- GC モード、LOH/POH、Gen0/1/2 のチューニング、Span/Memory、ArrayPool、プロファイリング
10. Native AOT とトリミング planned
- [skill:dotnet-native-aot] -- トリミング、RD.xml、リフレクション不使用、サイズ最適化
- [skill:dotnet-aot-architecture] -- 最初から AOT を前提に設計
- [skill:dotnet-trimming] -- トリミングセーフな注釈、リンカー構成、テスト
- [skill:dotnet-aot-wasm] -- Blazor と Uno 向け WASM AOT
11. CLI ツール開発
- [skill:dotnet-system-commandline] -- System.CommandLine、ミドルウェア、ホスティング
- [skill:dotnet-cli-architecture] -- レイヤー化された CLI 設計、テスト容易性
- [skill:dotnet-cli-distribution] -- Native AOT とクロスプラットフォーム配布戦略
- [skill:dotnet-cli-packaging] -- Homebrew、apt/deb、winget、Scoop、Chocolatey、dotnet tool
- [skill:dotnet-cli-release-pipeline] -- マルチプラットフォームの CI/CD リリースワークフローを統一
- [skill:dotnet-tool-management] -- グローバル/ローカル .NET ツールのインストール、管理、復元
12. UI フレームワーク planned
- [skill:dotnet-blazor-patterns] -- Server、WASM、Hybrid、自動/ストリーミング
- [skill:dotnet-blazor-components] -- コンポーネントアーキテクチャ、JS 相互運用
- [skill:dotnet-blazor-auth] -- ホスティングモデルをまたいだ認証
- [skill:dotnet-uno-platform] -- Extensions、MVUX、Toolkit、テーマ
- [skill:dotnet-uno-targets] -- Web/WASM、モバイル、デスクトップ、組み込み
- [skill:dotnet-uno-mcp] -- ライブドキュメント用の Uno MCP サーバー
- [skill:dotnet-maui-development] -- MAUI のパターン、現状
- [skill:dotnet-maui-aot] -- iOS/Mac Catalyst 上の MAUI Native AOT
- [skill:dotnet-winui] -- WinUI 3/Windows App SDK、XAML、MSIX、UWP からの移行
- [skill:dotnet-wpf-modern] -- .NET 8 以降の WPF、Host builder、MVVM Toolkit、Fluent テーマ
- [skill:dotnet-wpf-migration] -- WPF/WinForms から .NET 8 以降への移行、WPF から WinUI または Uno への移行、UWP からの移行
- [skill:dotnet-winforms-basics] -- .NET 8 以降の WinForms、高 DPI、ダークモード、DI
- [skill:dotnet-accessibility] -- クロスプラットフォームのアクセシビリティ:SemanticProperties、ARIA、AutomationPeer、テストツール
- [skill:dotnet-ui-chooser] -- UI フレームワーク選択のための決定ツリー
13. マルチターゲティングとポリフィル planned
- [skill:dotnet-multi-targeting] -- PolySharp、Polyfill、条件付きコンパイル
- [skill:dotnet-version-upgrade] -- .NET 8 -> 10 -> 11 のアップグレードガイダンス
14. ローカライズと国際化 implemented
- [skill:dotnet-localization] -- i18n:.resx、IStringLocalizer、RTL、複数形
15. パッケージ化と公開 implemented
- [skill:dotnet-nuget-authoring] -- NuGet パッケージの作成、署名、検証、ソースジェネレーター
- [skill:dotnet-msix] -- MSIX の作成、署名、配布、自動更新
- [skill:dotnet-github-releases] -- リリースノート付きの GitHub Releases
16. リリース管理 implemented
- [skill:dotnet-release-management] -- NBGV、変更履歴、SemVer 戦略
17. CI/CD implemented
- [skill:dotnet-gha-patterns] -- 再利用可能なワークフロー、複合アクション、マトリックス
- [skill:dotnet-gha-build-test] -- .NET のビルドとテストのワークフロー
- [skill:dotnet-gha-publish] -- NuGet/コンテナーの公開ワークフロー
- [skill:dotnet-gha-deploy] -- デプロイパターン(Pages、レジストリ)
- [skill:dotnet-ado-patterns] -- ADO YAML パイプライン、Environments、Gates
- [skill:dotnet-ado-build-test] -- ADO のビルドとテストのパイプライン
- [skill:dotnet-ado-publish] -- ADO の公開パイプライン
- [skill:dotnet-ado-unique] -- ADO 固有の機能:クラシックパイプライン、サービス接続
18. ドキュメント implemented
- [skill:dotnet-documentation-strategy] -- Starlight、Docusaurus、DocFX
- [skill:dotnet-mermaid-diagrams] -- アーキテクチャ図/シーケンス図/クラス図
- [skill:dotnet-github-docs] -- README、CONTRIBUTING、Issue テンプレート
- [skill:dotnet-xml-docs] -- XML ドキュメントコメント
- [skill:dotnet-api-docs] -- API ドキュメントの生成、OpenAPI 仕様
19. エージェントのメタスキル planned
- [skill:dotnet-agent-gotchas] -- .NET でエージェントがよく犯す間違い
- [skill:dotnet-build-analysis] -- ビルド出力、MSBuild エラーの理解
- [skill:dotnet-csproj-reading] -- .csproj、MSBuild プロパティの読み取りと変更
- [skill:dotnet-solution-navigation] -- ソリューション内の移動、エントリポイントの検索
20. AI と LLM の統合
- [skill:dotnet-semantic-kernel] -- Semantic Kernel:プラグイン、プロンプトテンプレート、メモリ、エージェント
ルーティングロジック
この決定ツリーを使って、現在のタスクに適したスキルを読み込みます。
新しいプロジェクトを開始する
- [skill:dotnet-version-detection] -- ターゲットフレームワークの検出または選択
- [skill:dotnet-project-analysis] -- 既存のソリューションがあれば、その内容を把握
- [skill:dotnet-project-structure], [skill:dotnet-scaffold-project] -- プロジェクトをスキャフォールド
- [skill:dotnet-architecture-patterns] -- 設計上の判断
- ファイルベースのアプリ(.csproj なし、.NET 10 以降) -> [skill:dotnet-file-based-apps]
- ビルド出力のレイアウト(UseArtifactsOutput、.NET 8 以降) -> [skill:dotnet-artifacts-output]
C# コードの記述または変更
- モダンな C# パターン -> [skill:dotnet-csharp-modern-patterns]
- コーディング規約 -> [skill:dotnet-csharp-coding-standards]
- NRT -> [skill:dotnet-csharp-nullable-reference-types]
- DI -> [skill:dotnet-csharp-dependency-injection]
- 構成 -> [skill:dotnet-csharp-configuration]
- Async/await、並行処理 -> [skill:dotnet-csharp-async-patterns]
- ソースジェネレーター -> [skill:dotnet-csharp-source-generators]
- コードレビュー、コード品質、アンチパターン -> [skill:dotnet-csharp-code-smells]
- カスタムアナライザー/コード修正 -> [skill:dotnet-roslyn-analyzers]
- ファイル I/O、FileStream、RandomAccess、FileSystemWatcher、MemoryMappedFile、パス処理 -> [skill:dotnet-file-io]
- IO.Pipelines、高性能ネットワーク I/O -> [skill:dotnet-io-pipelines]
- LINQ の最適化、IQueryable の落とし穴 -> [skill:dotnet-linq-optimization]
- P/Invoke、ネイティブ相互運用、LibraryImport、マーシャリング -> [skill:dotnet-native-interop]
API の構築
- Minimal API(新規作成時のデフォルト) -> [skill:dotnet-minimal-apis]
- API のバージョン管理 -> [skill:dotnet-api-versioning]
- OpenAPI/Swagger、Swashbuckle の移行 -> [skill:dotnet-openapi]
- 認証、CORS、レート制限、CSP -> [skill:dotnet-api-security]
- 入力検証、FluentValidation、Data Annotations -> [skill:dotnet-input-validation]
- ライブラリのバイナリ/ソース互換性 -> [skill:dotnet-library-api-compat]
- API サーフェスの追跡、PublicApiAnalyzers -> [skill:dotnet-api-surface-validation]
- レジリエンス/HTTP クライアント -> [skill:dotnet-resilience]、[skill:dotnet-http-client]
データの操作
- EF Core の使用 -> [skill:dotnet-efcore-patterns]、[skill:dotnet-efcore-architecture]
- データアクセス方式の選択 -> [skill:dotnet-data-access-strategy]
- シリアル化(JSON、Protobuf) -> [skill:dotnet-serialization]
- ドメインモデリング、DDD パターン -> [skill:dotnet-domain-modeling]
UI の構築
- フレームワークの選択 -> [skill:dotnet-ui-chooser]
- アクセシビリティ(任意の UI フレームワーク) -> [skill:dotnet-accessibility]
- Blazor -> [skill:dotnet-blazor-patterns]、[skill:dotnet-blazor-components]、[skill:dotnet-blazor-auth]
- Uno Platform -> [skill:dotnet-uno-platform]、[skill:dotnet-uno-targets]、[skill:dotnet-uno-mcp]
- MAUI -> [skill:dotnet-maui-development]、[skill:dotnet-maui-aot]
- WPF -> [skill:dotnet-wpf-modern](移行: [skill:dotnet-wpf-migration])
- WinUI -> [skill:dotnet-winui]
- WinForms -> [skill:dotnet-winforms-basics]
テスト
- 戦略/テスト対象 -> [skill:dotnet-testing-strategy]
- xUnit v3 -> [skill:dotnet-xunit]
- 統合テスト -> [skill:dotnet-integration-testing]
- UI テスト -> [skill:dotnet-ui-testing-core] + フレームワーク固有のスキル
- スナップショットテスト -> [skill:dotnet-snapshot-testing]
- カバレッジ/品質 -> [skill:dotnet-test-quality]
パフォーマンス作業
- ベンチマーク -> [skill:dotnet-benchmarkdotnet]
- 最適化パターン -> [skill:dotnet-performance-patterns]
- プロファイリング -> [skill:dotnet-profiling]
- CI ベンチマーク -> [skill:dotnet-ci-benchmarking]
- GC チューニング、メモリ管理 -> [skill:dotnet-gc-memory]
Native AOT/トリミング
- AOT コンパイル -> [skill:dotnet-native-aot]
- AOT を考慮したアーキテクチャ設計 -> [skill:dotnet-aot-architecture]
- トリミング -> [skill:dotnet-trimming]
- WASM AOT -> [skill:dotnet-aot-wasm]
CLI ツール
- System.CommandLine -> [skill:dotnet-system-commandline]
- CLI 設計 -> [skill:dotnet-cli-architecture]
- 配布 -> [skill:dotnet-cli-distribution]、[skill:dotnet-cli-packaging]、[skill:dotnet-cli-release-pipeline]
- ツールのインストール、マニフェスト、復元 -> [skill:dotnet-tool-management]
コンテナーとデプロイ
- Dockerfile -> [skill:dotnet-containers]
- Kubernetes/Compose -> [skill:dotnet-container-deployment]
セキュリティ
- OWASP 準拠 -> [skill:dotnet-security-owasp]
- シークレット管理 -> [skill:dotnet-secrets-management]
- 暗号化 -> [skill:dotnet-cryptography]
通信パターン
- gRPC -> [skill:dotnet-grpc]
- リアルタイム通信(SignalR、SSE) -> [skill:dotnet-realtime-communication]
- プロトコルの選択 -> [skill:dotnet-service-communication]
- メッセージング、イベント駆動(Service Bus、RabbitMQ) -> [skill:dotnet-messaging-patterns]
CI/CD のセットアップ
- GitHub Actions -> [skill:dotnet-gha-patterns], [skill:dotnet-gha-build-test], [skill:dotnet-gha-publish], [skill:dotnet-gha-deploy]
- Azure DevOps -> [skill:dotnet-ado-patterns], [skill:dotnet-ado-build-test], [skill:dotnet-ado-publish], [skill:dotnet-ado-unique]
パッケージ化とリリース
- NuGet の公開 -> [skill:dotnet-nuget-authoring]
- MSIX -> [skill:dotnet-msix]
- GitHub Releases -> [skill:dotnet-github-releases]
- バージョン管理 -> [skill:dotnet-release-management]
マルチターゲティング
- マルチ TFM ビルド -> [skill:dotnet-multi-targeting]
- バージョンのアップグレード -> [skill:dotnet-version-upgrade]
ローカライズ
- i18n/l10n -> [skill:dotnet-localization]
ドキュメント
- ドキュメント戦略 -> [skill:dotnet-documentation-strategy]
- 図表 -> [skill:dotnet-mermaid-diagrams]
- GitHub のドキュメント -> [skill:dotnet-github-docs]
- XML ドキュメント -> [skill:dotnet-xml-docs]
- API ドキュメント -> [skill:dotnet-api-docs]
エージェントの支援
- エージェントが .NET で誤りを犯す場合 -> [skill:dotnet-agent-gotchas]
- ビルドエラー -> [skill:dotnet-build-analysis]
- .csproj の読み取り -> [skill:dotnet-csproj-reading]
- ソリューション内の移動 -> [skill:dotnet-solution-navigation]
バックグラウンド処理
- バックグラウンドサービス、キュー -> [skill:dotnet-background-services]
- オブザーバビリティ/ロギング -> [skill:dotnet-observability]
- ログパイプラインの設計、集約、PII の除去 -> [skill:dotnet-structured-logging]
クラウドとオーケストレーション
- .NET Aspire、サービスディスカバリー、AppHost -> [skill:dotnet-aspire-patterns]
AI と LLM の統合
- Semantic Kernel、LLM オーケストレーション、プラグイン -> [skill:dotnet-semantic-kernel]
専門エージェントへのルーティング
ドメインの専門知識が役立つ複雑な分析は、専門エージェントに委任します。
- Async/await のパフォーマンス、ValueTask、ConfigureAwait、IO.Pipelines -> dotnet-async-performance-specialist
- ASP.NET Core ミドルウェア、リクエストパイプライン、DI のライフタイム、診断シナリオ -> dotnet-aspnetcore-specialist
- テストアーキテクチャ、テスト種別の選択、テストデータ管理、マイクロサービスのテスト -> dotnet-testing-specialist
- クラウドへのデプロイ、.NET Aspire、AKS、CI/CD パイプライン、分散トレーシング -> dotnet-cloud-specialist
- 一般的なコードレビュー(正確性、パフォーマンス、セキュリティ、アーキテクチャ) -> dotnet-code-review-agent
コメント
Markdown 対応