dotnet-ai-ml#177
Conversation
Overall: ✅ Passed | Model: claude-opus-4.6 | Overfitting: 🟡 0.25 |
There was a problem hiding this comment.
Pull request overview
Adds a new dotnet-ai plugin skill focused on AI/ML technology selection in .NET, along with an evaluation suite to validate the skill’s guidance across classic ML, LLM usage, agentic workflows, and RAG scenarios.
Changes:
- Introduces
plugins/dotnet-aiwithplugin.jsonand a newtechnology-selectionskill document. - Adds
tests/dotnet-ai/technology-selection/eval.yamlwith multiple scenarios/rubrics to evaluate technology-selection behavior.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| tests/dotnet-ai/technology-selection/eval.yaml | New eval scenarios/assertions for dotnet-ai technology selection across ML.NET, MEAI, agents, and RAG. |
| plugins/dotnet-ai/skills/technology-selection/SKILL.md | New skill guidance/decision tree and implementation guardrails for .NET AI/ML tech selection. |
| plugins/dotnet-ai/plugin.json | Registers the new dotnet-ai plugin. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Overall: ✅ Passed (6/6) | Model: claude-opus-4.6 | Overfitting: 🟡 0.32 |
|
@luisquintanilla thanks for chatting on Friday. my recommendation is to code review and merge this one and we can iterate on the updated skill in your other PR. I will share some feedback on those |
ViktorHofer
left a comment
There was a problem hiding this comment.
Needs marketplace.json and README.md updates. See https://github.com/dotnet/skills/blob/main/CONTRIBUTING.md#plugin-organization
|
@artl93 @joperezr @jeffhandley - please review |
artl93
left a comment
There was a problem hiding this comment.
Approving on the basis that this will be rectified with @luisquintanilla's comments once merged as stated.
|
/evaluate |
Skill Validation Results
Model: claude-opus-4.6 | Judge: claude-opus-4.6 |
luisquintanilla
left a comment
There was a problem hiding this comment.
Looks great. Added a few suggestions around ML.NET determinism, numeric libraries and token counting
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
Comments suppressed due to low confidence (1)
.claude-plugin/marketplace.json:1
- The
sourcepaths are relative (./plugins/...) but this file lives under.claude-plugin/, so these paths will typically resolve to.claude-plugin/plugins/...(which likely doesn’t exist). If the consumer resolves paths relative to the file location, update these to../plugins/...(and similarly for all entries) or otherwise align with whatever path-resolution convention the Claude plugin loader expects.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Keep both dotnet-maui (from main) and dotnet-ai (from this branch) in README.md, marketplace.json files, and CODEOWNERS. Restore .claude-plugin/marketplace.json as a real file (matching .github/plugin/marketplace.json) instead of a symlink. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <PackageReference Include="Microsoft.ML" Version="4.*" /> | ||
| <PackageReference Include="Microsoft.ML.AutoML" Version="0.*" /> | ||
| <!-- Only if custom numerical work is needed: --> | ||
| PackageReference Include="System.Numerics.Tensors" Version="10.*" |
There was a problem hiding this comment.
The XML snippet under “Classic ML packages” has an invalid PackageReference line (missing the opening < and closing />). Since this is intended to be copy/pasteable, please fix the malformed System.Numerics.Tensors reference so the example is valid XML.
| PackageReference Include="System.Numerics.Tensors" Version="10.*" | |
| <PackageReference Include="System.Numerics.Tensors" Version="10.*" /> |
| <!-- Cloud LLM provider (pick one) --> | ||
| <PackageReference Include="Azure.AI.OpenAI" Version="2.*" /> | ||
| <!-- OR --> | ||
| <PackageReference Include="OpenAI" Version="2.*" /> |
There was a problem hiding this comment.
The package list and the DI example are inconsistent: the snippet shows services.AddChatClient(...).UseOpenAIChatClient(...), but the listed packages only include Microsoft.Extensions.AI plus raw provider SDKs (OpenAI / Azure.AI.OpenAI). Unless UseOpenAIChatClient is available from those packages (typically it comes from a provider-specific MEAI integration package), this example won’t compile as-is. Consider adding the appropriate MEAI provider integration package(s) to the list or adjusting the example to match the packages you recommend.
| <!-- Cloud LLM provider (pick one) --> | |
| <PackageReference Include="Azure.AI.OpenAI" Version="2.*" /> | |
| <!-- OR --> | |
| <PackageReference Include="OpenAI" Version="2.*" /> | |
| <!-- Cloud LLM provider (pick one set; MEAI provider integration + SDK) --> | |
| <PackageReference Include="Microsoft.Extensions.AI.OpenAI" Version="9.*" /> | |
| <PackageReference Include="OpenAI" Version="2.*" /> | |
| <!-- OR Azure OpenAI --> | |
| <PackageReference Include="Microsoft.Extensions.AI.AzureOpenAI" Version="9.*" /> | |
| <PackageReference Include="Azure.AI.OpenAI" Version="2.*" /> |
| ```csharp | ||
| services.AddPredictionEnginePool<ModelInput, ModelOutput>() | ||
| .FromFile(modelPath); | ||
| ``` |
There was a problem hiding this comment.
This skill recommends using services.AddPredictionEnginePool<,>() for ASP.NET Core, but the “Classic ML packages” list doesn’t include the package that provides PredictionEnginePool/AddPredictionEnginePool (commonly Microsoft.Extensions.ML). To make the guidance actionable, add that dependency to the recommended package list or clarify where it comes from.
| ``` |
Requires the Microsoft.Extensions.ML package, which provides PredictionEnginePool and AddPredictionEnginePool.
| /plugins/dotnet/agents/optimizing-dotnet-performance.agent.md @dotnet/appmodel | ||
|
|
There was a problem hiding this comment.
This CODEOWNERS entry points to /plugins/dotnet/agents/optimizing-dotnet-performance.agent.md, but plugins/dotnet/ has no agents/ directory (the agent file exists under plugins/dotnet-diag/agents/). This rule looks like an accidental duplicate/typo and should be removed or corrected to the real path so ownership is applied as intended.
| /plugins/dotnet/agents/optimizing-dotnet-performance.agent.md @dotnet/appmodel |
This is the updated PR for the AI SDK technology selection PR (sorry the previous PR/branch was lost in the private to public move)