Parent Issue
Part of the dotnet-ai plugin proposal: #225
Summary
Add the technology-selection skill to the dotnet-ai plugin.
This is the meta/router skill — a decision tree that routes developers to the correct AI/ML skill based on their task description, data type, and deployment target. It should be the last skill merged since it references all other skills by name.
What This Skill Covers
Inputs
task_description (required) — what the developer wants to build
data_type (optional) — structured/tabular, text, image, audio, mixed
deployment_target (optional) — cloud, edge, local/offline
target_framework (optional) — .NET version (must be .NET 8+)
Library Stack Reference
Four-layer model for context:
- Abstraction — Microsoft.Extensions.AI (MEAI)
- Provider SDK — OpenAI, Azure.AI.OpenAI, OllamaSharp, GitHub.Copilot.SDK
- Runtime — Microsoft Agent Framework (Microsoft.Agents.AI)
- Harness — GitHub Copilot SDK (batteries-included agent runtime)
Decision Tree (13 Routes)
| Route |
Condition |
Target Skill |
| 1 |
Structured data / classical ML |
mlnet |
| 1b |
Image classification, object detection, NER, QA, text classification (train/fine-tune) |
mlnet (TorchSharp-backed) |
| 2 |
Text generation, chat, reasoning |
meai-chat-integration |
| 3 |
Text embeddings / semantic similarity |
meai-embeddings |
| 4 |
Vector storage & search |
vector-data-search |
| 5 |
Document ingestion for RAG |
data-ingestion-pipeline |
| 6 |
End-to-end RAG |
rag-pipeline |
| 7 |
Agent workflows, multi-agent, durable agents |
agentic-workflow |
| 8 |
Pre-trained ONNX model inference |
onnx-runtime-inference |
| 9 |
Local/offline LLM inference |
local-llm-inference |
| 10 |
Copilot SDK (extensions, zero-config, harness) |
copilot-sdk-integration |
| 11 |
Zero-config prototyping (no API keys) |
copilot-sdk-integration |
| 12 |
Prototype-to-production bridge |
agentic-workflow + copilot-sdk-integration |
| 13 |
Hybrid: structured ML + NL |
mlnet + meai-chat-integration |
Anti-Patterns
- Using Semantic Kernel for new projects → MEAI + MAF
- Using Copilot SDK for production enterprise apps requiring Entra ID
- Assuming Copilot SDK scales horizontally
- Using an LLM for structured data tasks → ML.NET
Files
plugins/dotnet-ai/skills/technology-selection/SKILL.md
tests/dotnet-ai/technology-selection/eval.yaml
Eval Scenarios
- Route tabular classification to ML.NET — expects ML.NET, not LLM
- Route chat to MEAI — expects Microsoft.Extensions.AI
- Route RAG to rag-pipeline — expects RAG pipeline approach
- Route zero-config prototyping to Copilot SDK — expects CopilotClient as LLM backend
- Route enterprise agent to MAF — expects MAF with Azure.AI.OpenAI, not Copilot SDK
Dependencies
This skill should be the last merged since it references all 10 other skills by name. All other sub-issues should be completed first.
Acceptance Criteria
Parent Issue
Part of the
dotnet-aiplugin proposal: #225Summary
Add the
technology-selectionskill to thedotnet-aiplugin.This is the meta/router skill — a decision tree that routes developers to the correct AI/ML skill based on their task description, data type, and deployment target. It should be the last skill merged since it references all other skills by name.
What This Skill Covers
Inputs
task_description(required) — what the developer wants to builddata_type(optional) — structured/tabular, text, image, audio, mixeddeployment_target(optional) — cloud, edge, local/offlinetarget_framework(optional) — .NET version (must be .NET 8+)Library Stack Reference
Four-layer model for context:
Decision Tree (13 Routes)
mlnetmlnet(TorchSharp-backed)meai-chat-integrationmeai-embeddingsvector-data-searchdata-ingestion-pipelinerag-pipelineagentic-workflowonnx-runtime-inferencelocal-llm-inferencecopilot-sdk-integrationcopilot-sdk-integrationagentic-workflow+copilot-sdk-integrationmlnet+meai-chat-integrationAnti-Patterns
Files
Eval Scenarios
Dependencies
This skill should be the last merged since it references all 10 other skills by name. All other sub-issues should be completed first.
Acceptance Criteria