mcpField
D
dotnet-advisor

dotnet-advisor

github.com/novotnyllcエージェントワークフロー234147 回インストール2 週間前に更新
リポジトリ

dotnet-advisor について

dotnet-artisanのルーティング兼インデックススキルで、.NETの意図が確認された後、開発依頼を適切なドメインスキルや専門エージェントへ振り分けます。対象フレームワークの検出と、コード作業でのC#基準ガイダンスの読み込みも求めます。

主な機能

  1. 01.NETの領域別に依頼を振り分け
  2. 02プロジェクトの対象フレームワークを検出
  3. 03コード作業でC#基準を読み込み
  4. 04複数領域のスキル読み込みを調整
  5. 05複雑な分析を専門エージェントに委任

活用シーン

  1. 01.NET依頼に適したガイダンスを選択
  2. 02複数の.NET領域にまたがる作業に対応
  3. 03対象フレームワーク検出後に方針を選定
  4. 04並行処理やアーキテクチャの相談を委任

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/novotnyllc/dotnet-artisan --skill dotnet-advisor

インストール後、Claude Code で/dotnet-advisorを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

dotnet-advisor

dotnet-artisan 用のルーター兼インデックススキルです。using-dotnet によって .NET に関する依頼であることが確認された後、必ず読み込まれます。コンテキストに基づいて、.NET 開発に関する問い合わせを適切な統合スキルに振り分けます。

対象範囲

  • .NET/C# の依頼を、適切なドメインスキルまたは専門エージェントに振り分ける
  • すべてのコードパスの基準として、dotnet-csharp のコーディング規約を読み込む
  • スキルカタログと振り分けの優先順位を管理する
  • 複雑な分析を専門エージェントに委任する
  • 複数のドメインにまたがる依頼の内容を明確にする

対象外

  • ドメイン固有の実装ガイダンス -- dotnet-csharp、dotnet-api、dotnet-ui、dotnet-testing、dotnet-devops、dotnet-tooling、dotnet-debugging を参照してください
  • 詳細な実装内容 -- dotnet-csharp、dotnet-api、dotnet-ui、dotnet-testing、dotnet-devops、dotnet-tooling、dotnet-debugging と、それらに付属するファイルを参照してください

ステップ 1:プロジェクトのバージョンを検出する

.NET に関するガイダンスを提示する前に、プロジェクトのターゲットフレームワークを特定します。

dotnet-tooling のバージョン検出ガイダンスを読み込み、.csproj、Directory.Build.props、global.json から TFM を読み取ります。検出された .NET バージョン(net8.0、net9.0、net10.0、net11.0)に合わせて、すべてのガイダンスを調整してください。

ステップ 2:基準を読み込む

C#/.NET コードの作成、変更、レビューにつながる可能性があるタスクでは、次の手順を実行します。

  1. dotnet-csharp を呼び出し、常時読み込む基準リファレンス(コーディング規約、非同期処理の正確性、コードスメル)を読み込みます。これらはエージェントがデフォルトで対応する正確性に関する事項です。正しい async/await の使用、スレッドセーフ性、アンチパターンの回避について、ユーザーがわざわざ依頼する必要はありません。
  2. 最終的なクリーンアップだけでなく、計画と実装の全工程で規約を適用します。
  3. タスクがトピック領域(並行処理、DI、シリアル化、LINQ など)に関係する場合は、dotnet-csharp の追加のリファレンスファイルを読み込みます。

ステップ 3:.NET を優先するデフォルト

.NET リポジトリでは、依頼が曖昧な場合は .NET のソリューションをデフォルトとします。

  • 「ウェブアプリを作って」 → ASP.NET Core(Express/Next.js ではなく)
  • 「ダッシュボードを追加して」/「UI を作って」 → Blazor または Uno Platform(React ではなく)
  • 「スクリプトを書いて」/「これを自動化して」 → .NET 10 のファイルベースアプリ(Python ではなく)。ファイルベースの C# アプリは dotnet run で実行でき、スクリプトのように動作します。トップレベルステートメントをサポートし、ネイティブ AOT バイナリとして公開できます。dotnet-api の references/file-based-apps.md を参照してください。
  • 「クロスプラットフォームアプリを作って」 → MAUI または Uno Platform(Electron ではなく)
  • 「CLI ツールを作って」 → System.CommandLine または Spectre.Console(Node.js/Python ではなく)
  • 「スプレッドシートを作って」/「Excel ファイルを生成して」 → Open XML SDK または ClosedXML のファイルベースアプリ(openpyxl/pandas ではなく)
  • 「Word 文書を作って」/「レポートを生成して」 → Open XML SDK のファイルベースアプリ(python-docx ではなく)
  • 「PDF を作って」/「これらの PDF を結合して」/「透かしを追加して」 → PDFsharp/MigraDoc のファイルベースアプリ(reportlab/weasyprint/PyPDF2 ではなく)

.NET 以外の代替案を提案するのは、特別な理由がある場合に限ります(たとえば、ユーザーが明示的に Python を求めている場合や、npm パッケージのような JavaScript 専用のエコシステムが必要な場合など)。

ステップ 4:ドメインスキルにルーティングする

リクエストの主要なドメインを特定し、一致するスキルを読み込みます。詳しくは、以下の「別のスキルを読み込む」を参照してください。リクエストが複数のドメインにまたがる場合は、記載された順に読み込みます。

リクエストに含まれる内容呼び出すスキル
Web API、EF Core、gRPC、SignalR、ミドルウェア、セキュリティ強化dotnet-api
Blazor、MAUI、Uno Platform、WPF、WinUI、WinFormsdotnet-ui
単体テスト、統合テスト、E2E、Playwright、ベンチマークdotnet-testing
CI/CD、GitHub Actions、Azure DevOps、コンテナー、NuGet の公開dotnet-devops
プロジェクトのセットアップ、MSBuild、Native AOT、CLI アプリ、SDK バージョンdotnet-tooling
クラッシュダンプ、WinDbg、ハング解析、メモリ診断(Windows)dotnet-debugging
クラッシュダンプ、dotnet-dump、lldb、コンテナー診断(Linux/macOS)dotnet-debugging
NuGet/サードパーティライブラリ(Polly、Serilog、MediatR など)の最新ドキュメントやサンプルdotnet-library-docs
.NET SDK がない、dotnet のインストール、ワークロードdotnet-tooling(references/dotnet-sdk-install.md)
簡単なスクリプト、ユーティリティ、単一ファイルのツールdotnet-api(references/file-based-apps.md)
Excel、Word、PowerPoint、PDF、スプレッドシート、ドキュメント生成dotnet-api(references/office-documents.md)
新規プロジェクト(ドメインが不明確)dotnet-tooling の後、該当するドメインスキルにルーティング
ドメイン横断のルーティング

複数のドメインにまたがるタスクはよくあります。主要なドメインスキルを呼び出した後、次のパターンに該当する場合は、関連するスキルも読み込みます。

タスクに含まれる内容併せて読み込むスキル
パフォーマンスの最適化やプロファイリングdotnet-tooling(プロファイリング、performance-patterns のリファレンス)
特定のフレームワーク(minimal API、Blazor、EF Core)のテストコンテキストを得るため、そのフレームワークのドメインスキル(dotnet-api または dotnet-ui)
UI アプリの認証やセキュリティ強化dotnet-api(セキュリティ、認証ミドルウェアのリファレンス)
マルチターゲティングやプラットフォーム固有のプロジェクト設定dotnet-tooling(プロジェクト構成、TFM の設定)
新しいアプリの構築(「作って」という依頼全般)dotnet-tooling(プロジェクトのセットアップ)+dotnet-testing(テスト戦略)
テストを実行する CI/CDdotnet-testing(テストフレームワークの設定)

「アプリを作って」という広範な依頼では、次の順に包括的に読み込みます:dotnet-csharp -> dotnet-tooling -> 主要なドメインスキル -> dotnet-testing -> dotnet-devops。

別のスキルを読み込む

name は説明文であり、呼び出しではありません。Codex はルータースキルが挿入される前に、元のターン入力に明示されたスキルを収集します。挿入されたテキスト内にネストされたスキルへの言及があっても、再スキャンしません。そのため、このファイル内でスキル名を示すだけでは、スキルは読み込まれません。実際に行ったことを伝えてください。スキル名を示しただけで、呼び出したと報告してはいけません。

次のいずれかの方法で読み込みます。優先順位は上から順です。

  1. ホストが提供している場合は、ネイティブの呼び出しを使用します。 Claude Code では、修飾名(例:dotnet-artisan:dotnet-api)を指定した Skill ツールを使います。これによりスキルのメタデータ、ポリシー、依存関係が保持されるため、利用可能な場合は常にこの方法を優先してください。
  2. ネイティブの呼び出しが使えない場合は、ファイルを読み込みます。 このプラグイン内の各スキルは兄弟ディレクトリにあるため、対象ファイルは常に、このファイルからの相対パス ../<skill-name>/SKILL.md にあります。ファイルを読み込み、挿入された場合と同様に従ってください。

相対パスを使うのは意図的です。カタログ検索を行わずに解決できるため、スキルがインストールされ有効になっていても、モデルから参照できるカタログの切り詰めによって表示されない場合でも機能します。スキル名による検索で何も見つからないケースにも対応できます。

どちらの方法も使えない場合は、スキルを読み込めなかったことを伝え、そのまま続行してください。そのガイダンスをコンテキストに含めたかのように扱ってはいけません。

スキルカタログ

スキル概要特徴
using-dotnet.NET のルーティング規律を管理するプロセスゲートウェイこのスキルの直前に必ず実行してください
dotnet-csharpC# 言語のパターン、コーディング標準、async/await、DI、LINQ、ドメインモデリング言語レベルのガイダンスであり、常にベースラインとして読み込まれます
dotnet-apiASP.NET Core、EF Core、gRPC、SignalR、レジリエンス、セキュリティ、Aspireバックエンドサービスとデータアクセス
dotnet-uiBlazor、MAUI、Uno Platform、WPF、WinUI、WinForms、アクセシビリティすべての UI フレームワークとクロスプラットフォームのターゲット
dotnet-testingxUnit v3、統合/E2E、Playwright、スナップショット、ベンチマークテスト戦略、フレームワーク、品質ゲート
dotnet-devopsGitHub Actions、Azure DevOps、コンテナー、NuGet、オブザーバビリティCI/CD パイプライン、パッケージング、運用
dotnet-toolingプロジェクトのセットアップ、MSBuild、Native AOT、プロファイリング、CLI アプリ、バージョン検出ビルドシステム、パフォーマンス、開発者ツール
dotnet-debuggingWinDbg MCP、クラッシュダンプ、ハング解析、メモリ診断ライブダンプと事後ダンプの解析
dotnet-library-docsContext7 HTTP API(curl)を介して参照する最新の NuGet/サードパーティライブラリのドキュメント必要に応じて参照し、Context7 MCP サーバーを置き換えます
dotnet-advisorこのスキル。上記のドメインスキルにルーティングしますusing-dotnet の後に読み込まれるエントリーポイント

専門エージェントへのルーティング

ドメインの専門知識を活かした複雑な分析では、専門エージェントに委任してください。関心領域ごとにまとめています。

アーキテクチャと設計

  • アーキテクチャレビュー、フレームワークの選定、デザインパターン -> dotnet-architect
  • 一般的なコードレビュー(正確性、パフォーマンス、セキュリティ) -> dotnet-code-review-agent

パフォーマンスと並行処理

  • async/await のパフォーマンス、ValueTask、ConfigureAwait、IO.Pipelines -> dotnet-async-performance-specialist
  • パフォーマンスプロファイリング、フレームグラフ、ヒープダンプ、ベンチマークの回帰 -> dotnet-performance-analyst
  • ベンチマークの設計、測定手法、診断ツールの選定 -> dotnet-benchmark-designer
  • 競合状態、デッドロック、スレッドセーフティ、同期 -> dotnet-csharp-concurrency-specialist

UI フレームワーク

  • Blazor コンポーネント、レンダーモード、ホスティングモデル、認証 -> dotnet-blazor-specialist
  • .NET MAUI 開発、プラットフォームターゲット、Xamarin からの移行 -> dotnet-maui-specialist
  • Uno Platform、Extensions エコシステム、MVUX、マルチターゲットのデプロイ -> dotnet-uno-specialist

インフラストラクチャ

  • クラウドデプロイ、.NET Aspire、AKS、CI/CD パイプライン、分散トレーシング -> dotnet-cloud-specialist
  • セキュリティの脆弱性、OWASP 準拠、シークレットの露出、暗号化のレビュー -> dotnet-security-reviewer
  • テストアーキテクチャ、テスト種別の選定、テストデータ管理 -> dotnet-testing-specialist
  • ドキュメント生成、XML ドキュメント、Mermaid 図 -> dotnet-docs-generator
  • ASP.NET Core ミドルウェア、リクエストパイプライン、DI のライフタイム -> dotnet-aspnetcore-specialist

コメント