Agent skill · AI & Agents

technology-selection

Guides technology selection and implementation of AI and ML features in .NET 8+ applications using ML.NET, Microsoft.Extensions.AI (MEAI), Microsoft Agent Framework (MAF), GitHub Copilot SDK, ONNX Runtime, and OllamaSharp. Covers the full spectrum from classic ML through modern LLM orchestration to local inference. Use when adding classification, regression, clustering, anomaly detection, recommendation, LLM integration (text generation, summarization, reasoning), RAG pipelines with vector search, agentic workflows with tool calling, Copilot extensions, or custom model inference via ONNX Runti

dotnetgithub.com/dotnetGitHub ↗
copilotMIT
Install
npx skills add dotnet/skills --skill technology-selection --agent copilot

Same command for any agent — swap --agent for claude-code, codex, cursor.

Facts
Files in the skill folder: 1
SKILL.md size: 22 KB
Bundled scripts: none
Path: plugins/dotnet-ai/skills/technology-selection/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 4,927
Language: C#
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Guides technology selection and implementation of AI and ML features in .NET 8+ applications using ML.NET, Microsoft.Extensions.AI (MEAI), Microsoft Agent Framework (MAF), GitHub Copilot SDK, ONNX Runtime, and OllamaSharp. Covers the full spectrum from classic ML through modern LLM orchestration to local inference. Use when adding classification, regression, clustering, anomaly detection, recommendation, LLM integration (text generation, summarization, reasoning), RAG pipelines with vector search, agentic workflows with tool calling, Copilot extensions, or custom model inference via ONNX Runtime to a .NET project. DO NOT USE FOR projects targeting .NET Framework (requires .NET 8+), the task is pure data engineering or ETL with no ML/AI component, or the project needs a custom deep learning training loop (use Python with PyTorch/TensorFlow, then export to ONNX for .NET inference).

How it works

The skill prescribes a task-driven workflow to classify tasks and select technology layers. It starts with MEAI for provider-agnostic chat/embedding abstractions, then adds a provider SDK (OpenAI, Azure OpenAI) as the concrete implementation, and uses Microsoft.Agents.AI for tool/agent orchestration when needed. For Copilot extensions, it suggests GitHub.Copilot.SDK. It defines the recommended packages for Classic ML and Modern AI, and provides DI registration guidance to ensure all services are injected rather than instantiated directly. Guardrails are provided for both Classic ML and LLM/Agent workflows, including reproducibility, data splitting, structured output parsing, retry logic, cost control, secret management, and model version pinning. It enforces layering rules to avoid mixing raw HttpClient calls with abstraction layers and requires that Agent Framework be used for any tool-driven or multi-step reasoning tasks. It also outlines how to implement agentic iteration limits, token budgeting, observability, explicit tool schemas, and a preference for simpler single-agent-with-tools designs when appropriate. It concludes with non-determinism handling guidance for LLM/agent outputs, including acknowledgement, validation, and graceful degradation.

When to use it

Use when adding AI/ML features in .NET 8+ projects that involve classification, regression, clustering, anomaly detection, recommendation, LLM integration (text generation, summarization, reasoning), RAG pipelines with vector search, agentic workflows with tool calling, Copilot extensions, or custom model inference via ONNX Runtime. Do not use for projects targeting .NET Framework, or where the task is pure data engineering/ETL with no ML/AI component, or where a custom deep learning training loop is required.

What it can touch

The workflow involves DI-enabled AI/ML services and specific packages: Microsoft.Extensions.AI, Microsoft.Agents.AI, OpenAI or Azure OpenAI SDKs, OllamaSharp, Microsoft.ML.OnnxRuntime, Microsoft.Extensions.VectorData.Abstractions, Microsoft.Extensions.AI.DataIngestion, and GitHub.Copilot.SDK. It specifies using these packages in XML PackageReference blocks and registering via DI; it also references tokenizers for cost control and logging guardrails.

Caveats

Prerelease notes: Microsoft.Agents.AI is prerelease and installable via dotnet add package Microsoft.Agents.AI --prerelease. The approach requires layering: MEAI underpinned by a provider SDK, with Agent Framework for tool-based tasks, and Copilot SDK only for Copilot extensions. It cautions against mixing raw HttpClient calls with abstraction layers in the same workflow and emphasizes guarded iteration, observability, and strict model-version pinning. License: MIT.

From the SKILL.md

# .NET AI and Machine Learning ## Inputs | Input | Required | Description | |-------|----------|-------------| | Task description | Yes | What the AI/ML feature should accomplish (e.g., "classify support tickets", "summarize documents") | | Data description | Yes | Type and shape of input data (structured/tabular, unstructured text, images, mixed) | | Deployment constraints | No | Cloud vs. local, latency SLO, cost budget, offline requirements | | Existing project context | No | Current .csproj, existing packages, target framework | ## Workflow ### Step 1: Classify the task using the decision tree Evaluate the developer's task against this decision tree and select the appropriate technology. State which branch applies and why. | Task type | Technology | Rationale | |-----------|-----------|-----------| | Structured/tabular data: classification, regression, clustering, anomaly detection, recommendation | **ML.NET** (`Microsoft.ML`) | Reproducible (given a fixed seed and dataset), no cloud dependency, purpose-built models for these tasks | | Natural language understanding, generation, summarization, reasoning over unstructured text (single prompt → response, no tool calling) | **LLM

What's inside
Steps it walks through
  1. Inputs
  2. Workflow
  3. Step 1: Classify the task using the decision tree
  4. Step 1b: Select the correct library layer
  5. Step 2: Select packages and set up the project
  6. Step 3: Implement with guardrails
  7. Step 4: Handle non-determinism
  8. Step 5: Apply performance and cost controls
  9. Step 6: Validate the implementation
  10. Validation
  11. Anti-Patterns to Reject
  12. Common Pitfalls
Commands it runs
dotnet build -c Release -warnaserror
dotnet test -c Release
More from skills
All skills →
About this skill
What does the technology-selection skill do?

Guides technology selection and implementation of AI and ML features in .NET 8+ applications using ML.NET, Microsoft.Extensions.AI (MEAI), Microsoft Agent Framework (MAF), GitHub Copilot SDK, ONNX Runtime, and OllamaSharp. Covers the full spectrum from classic ML through modern LLM orchestration to local inference. Use when adding classification, regression, clustering, anomaly detection, recommendation, LLM integration (text generation, summarization, reasoning), RAG pipelines with vector search, agentic workflows with tool calling, Copilot extensions, or custom model inference via ONNX Runti

How do I install it?

Run `npx skills add dotnet/skills --skill technology-selection --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From dotnet/skills, a repository with 4,927 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going