[dotnet-ai] Technology selection (router)
- Dominant language
- C#
- Stars
- 5.4k
- Forks
- 415
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 81
Description
## 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
1. **Route tabular classification to ML.NET** — expects ML.NET, not LLM
2. **Route chat to MEAI** — expects Microsoft.Extensions.AI
3. **Route RAG to rag-pipeline** — expects RAG pipeline approach
4. **Route zero-config prototyping to Copilot SDK** — expects CopilotClient as LLM backend
5. **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
- [ ] Decision tree covers all 11 skills with clear routing conditions
- [ ] Anti-patterns section prevents common misuse
- [ ] Cross-references table lists all skills with their invocation names
- [ ] eval.yaml has scenarios covering routing to different skill categories
- [ ] Library stack reference shows the four-layer model (Abstraction → Provider → Runtime → Harness)
Contributor guide
Research direction
Start by reading parent issue #225 and the existing skills under plugins/dotnet-ai/ to confirm their invocation names and routing boundaries. Create plugins/dotnet-ai/skills/technology-selection/SKILL.md and tests/dotnet-ai/technology-selection/eval.yaml, then verify the required routes, four-layer reference, anti-patterns, cross-reference table, and evaluation scenarios against the completed sibling skills.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- documentation, testing
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100