dotnet / dotnet/skills

[dotnet-ai] Technology selection (router)

Open
#234 0 comments 0 reactions 0 assignees View on GitHub
area-ai skill
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.