Skip to content

dotnet-ai-ml#177

Merged
jeffschwMSFT merged 20 commits into
dotnet:mainfrom
jeffschwMSFT:skill/dotnet-ai-ml
Mar 11, 2026
Merged

dotnet-ai-ml#177
jeffschwMSFT merged 20 commits into
dotnet:mainfrom
jeffschwMSFT:skill/dotnet-ai-ml

Conversation

@jeffschwMSFT
Copy link
Copy Markdown
Member

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)

Copilot AI review requested due to automatic review settings March 4, 2026 00:51
@jeffschwMSFT
Copy link
Copy Markdown
Member Author

Scenario Improvement Avg Per-Run Score Skill Activated
ML.NET classification on tabular data 0.61 0.51 ✅ dotnet-ai-ml
LLM integration with MEAI abstraction 0.56 0.31 ✅ dotnet-ai-ml
Reject LLM for tabular classification 0.77 0.78 ✅ dotnet-ai-ml
Agentic workflow with guardrails 0.14 0.31 ✅ dotnet-ai-ml
Natural-language scenario decomposition — RAG chatbot 0.35 0.41 ✅ dotnet-ai-ml
RAG pipeline with vector search 0.14 0.01 ✅ dotnet-ai-ml

Overall: ✅ Passed | Model: claude-opus-4.6 | Overfitting: 🟡 0.25

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-ai with plugin.json and a new technology-selection skill document.
  • Adds tests/dotnet-ai/technology-selection/eval.yaml with 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.

Comment thread tests/dotnet-ai/technology-selection/eval.yaml Outdated
Comment thread plugins/dotnet-ai/plugin.json Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread tests/dotnet-ai/technology-selection/eval.yaml Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
@jeffschwMSFT jeffschwMSFT requested a review from a team March 6, 2026 20:11
@jeffschwMSFT
Copy link
Copy Markdown
Member Author

Scenario Baseline With Skill Δ Verdict
ML.NET classification on tabular data 2.3/5 5.0/5 +2.7
LLM integration with MEAI abstraction 1.0/5 3.0/5 +2.0
Reject LLM for tabular classification 3.0/5 4.7/5 +1.7
Agentic workflow with guardrails 2.0/5 3.0/5 +1.0
Natural-language scenario decomposition — RAG chatbot 4.0/5 4.3/5 +0.3
RAG pipeline with vector search 3.3/5 5.0/5 +1.7

Overall: ✅ Passed (6/6) | Model: claude-opus-4.6 | Overfitting: 🟡 0.32

@jeffschwMSFT
Copy link
Copy Markdown
Member Author

@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

Copy link
Copy Markdown
Member

@ViktorHofer ViktorHofer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs marketplace.json and README.md updates. See https://github.com/dotnet/skills/blob/main/CONTRIBUTING.md#plugin-organization

@ManishJayaswal
Copy link
Copy Markdown
Contributor

@artl93 @joperezr @jeffhandley - please review

Copy link
Copy Markdown
Member

@artl93 artl93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving on the basis that this will be rectified with @luisquintanilla's comments once merged as stated.

@jeffschwMSFT
Copy link
Copy Markdown
Member Author

/evaluate

@github-actions
Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
technology-selection ML.NET classification on tabular data 3.0/5 → 4.3/5 ⏰ 🟢 ✅ technology-selection; tools: skill 🟡 0.33
technology-selection LLM integration with MEAI abstraction 1.0/5 → 2.3/5 🟢 ✅ technology-selection; tools: skill 🟡 0.33
technology-selection Reject LLM for tabular classification 3.0/5 → 4.3/5 🟢 ✅ technology-selection; tools: skill, task, read_bash, create 🟡 0.33
technology-selection Agentic workflow with guardrails 1.7/5 ⏰ → 1.0/5 ⏰ 🔴 ✅ technology-selection; tools: skill, task, read_bash 🟡 0.33
technology-selection Natural-language scenario decomposition — RAG chatbot 3.7/5 → 4.0/5 🟢 ✅ technology-selection; tools: skill 🟡 0.33
technology-selection RAG pipeline with vector search 4.0/5 → 4.7/5 🟢 ✅ technology-selection; tools: skill 🟡 0.33

timeout — run hit the scenario timeout limit; scoring may be impacted by aborting model execution before it could produce its full output

Model: claude-opus-4.6 | Judge: claude-opus-4.6

Full results

Copy link
Copy Markdown
Contributor

@luisquintanilla luisquintanilla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Added a few suggestions around ML.NET determinism, numeric libraries and token counting

Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md Outdated
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Copilot AI review requested due to automatic review settings March 11, 2026 20:08
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
Co-authored-by: Luis Quintanilla <46974588+luisquintanilla@users.noreply.github.com>
jeffschwMSFT and others added 7 commits March 11, 2026 13:09
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>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread .github/CODEOWNERS
Comment thread .github/CODEOWNERS Outdated
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md
Copilot AI review requested due to automatic review settings March 11, 2026 20:58
@jeffschwMSFT jeffschwMSFT enabled auto-merge (squash) March 11, 2026 20:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 source paths 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.

Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md
Comment thread plugins/dotnet-ai/skills/technology-selection/SKILL.md
jeffschwMSFT and others added 2 commits March 11, 2026 15:04
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>
Copilot AI review requested due to automatic review settings March 11, 2026 22:05
@jeffschwMSFT jeffschwMSFT merged commit 551461a into dotnet:main Mar 11, 2026
17 of 18 checks passed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.*"
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
PackageReference Include="System.Numerics.Tensors" Version="10.*"
<PackageReference Include="System.Numerics.Tensors" Version="10.*" />

Copilot uses AI. Check for mistakes.
Comment on lines +94 to +97
<!-- Cloud LLM provider (pick one) -->
<PackageReference Include="Azure.AI.OpenAI" Version="2.*" />
<!-- OR -->
<PackageReference Include="OpenAI" Version="2.*" />
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
<!-- 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.*" />

Copilot uses AI. Check for mistakes.
```csharp
services.AddPredictionEnginePool<ModelInput, ModelOutput>()
.FromFile(modelPath);
```
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
```

Requires the Microsoft.Extensions.ML package, which provides PredictionEnginePool and AddPredictionEnginePool.

Copilot uses AI. Check for mistakes.
Comment thread .github/CODEOWNERS
Comment on lines +61 to +62
/plugins/dotnet/agents/optimizing-dotnet-performance.agent.md @dotnet/appmodel

Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
/plugins/dotnet/agents/optimizing-dotnet-performance.agent.md @dotnet/appmodel

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants