dotnet-advisor について
dotnet-artisanのルーティング兼インデックススキルで、.NETの意図が確認された後、開発依頼を適切なドメインスキルや専門エージェントへ振り分けます。対象フレームワークの検出と、コード作業でのC#基準ガイダンスの読み込みも求めます。
主な機能
- 01.NETの領域別に依頼を振り分け
- 02プロジェクトの対象フレームワークを検出
- 03コード作業でC#基準を読み込み
- 04複数領域のスキル読み込みを調整
- 05複雑な分析を専門エージェントに委任
活用シーン
- 01.NET依頼に適したガイダンスを選択
- 02複数の.NET領域にまたがる作業に対応
- 03対象フレームワーク検出後に方針を選定
- 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 コードの作成、変更、レビューにつながる可能性があるタスクでは、次の手順を実行します。
dotnet-csharpを呼び出し、常時読み込む基準リファレンス(コーディング規約、非同期処理の正確性、コードスメル)を読み込みます。これらはエージェントがデフォルトで対応する正確性に関する事項です。正しい async/await の使用、スレッドセーフ性、アンチパターンの回避について、ユーザーがわざわざ依頼する必要はありません。- 最終的なクリーンアップだけでなく、計画と実装の全工程で規約を適用します。
- タスクがトピック領域(並行処理、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、WinForms | dotnet-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/CD | dotnet-testing(テストフレームワークの設定) |
「アプリを作って」という広範な依頼では、次の順に包括的に読み込みます:dotnet-csharp -> dotnet-tooling -> 主要なドメインスキル -> dotnet-testing -> dotnet-devops。
別のスキルを読み込む
name は説明文であり、呼び出しではありません。Codex はルータースキルが挿入される前に、元のターン入力に明示されたスキルを収集します。挿入されたテキスト内にネストされたスキルへの言及があっても、再スキャンしません。そのため、このファイル内でスキル名を示すだけでは、スキルは読み込まれません。実際に行ったことを伝えてください。スキル名を示しただけで、呼び出したと報告してはいけません。
次のいずれかの方法で読み込みます。優先順位は上から順です。
- ホストが提供している場合は、ネイティブの呼び出しを使用します。 Claude Code では、修飾名(例:
dotnet-artisan:dotnet-api)を指定したSkillツールを使います。これによりスキルのメタデータ、ポリシー、依存関係が保持されるため、利用可能な場合は常にこの方法を優先してください。 - ネイティブの呼び出しが使えない場合は、ファイルを読み込みます。 このプラグイン内の各スキルは兄弟ディレクトリにあるため、対象ファイルは常に、このファイルからの相対パス
../<skill-name>/SKILL.mdにあります。ファイルを読み込み、挿入された場合と同様に従ってください。
相対パスを使うのは意図的です。カタログ検索を行わずに解決できるため、スキルがインストールされ有効になっていても、モデルから参照できるカタログの切り詰めによって表示されない場合でも機能します。スキル名による検索で何も見つからないケースにも対応できます。
どちらの方法も使えない場合は、スキルを読み込めなかったことを伝え、そのまま続行してください。そのガイダンスをコンテキストに含めたかのように扱ってはいけません。
スキルカタログ
| スキル | 概要 | 特徴 |
|---|---|---|
using-dotnet | .NET のルーティング規律を管理するプロセスゲートウェイ | このスキルの直前に必ず実行してください |
dotnet-csharp | C# 言語のパターン、コーディング標準、async/await、DI、LINQ、ドメインモデリング | 言語レベルのガイダンスであり、常にベースラインとして読み込まれます |
dotnet-api | ASP.NET Core、EF Core、gRPC、SignalR、レジリエンス、セキュリティ、Aspire | バックエンドサービスとデータアクセス |
dotnet-ui | Blazor、MAUI、Uno Platform、WPF、WinUI、WinForms、アクセシビリティ | すべての UI フレームワークとクロスプラットフォームのターゲット |
dotnet-testing | xUnit v3、統合/E2E、Playwright、スナップショット、ベンチマーク | テスト戦略、フレームワーク、品質ゲート |
dotnet-devops | GitHub Actions、Azure DevOps、コンテナー、NuGet、オブザーバビリティ | CI/CD パイプライン、パッケージング、運用 |
dotnet-tooling | プロジェクトのセットアップ、MSBuild、Native AOT、プロファイリング、CLI アプリ、バージョン検出 | ビルドシステム、パフォーマンス、開発者ツール |
dotnet-debugging | WinDbg MCP、クラッシュダンプ、ハング解析、メモリ診断 | ライブダンプと事後ダンプの解析 |
dotnet-library-docs | Context7 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