[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DYR7YAFWM5YWYD2S703KGJ":3,"skill-same:01M6DYR7YAFWM5YWYD2S703KGJ":118},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6DYR7YAFWM5YWYD2S703KGJ","technology-selection",null,"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\u002FAI component, or the project needs a custom deep learning training loop (use Python with PyTorch\u002FTensorFlow, then export to ONNX for .NET inference).","managedcode\u002Fdotnet-skills","managedcode","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F78253589?v=4","01M6DYDJR3EG8KB5G4PC65XCTT","Managed Code","01M6DYDJX0ZT432N04NYJW89DN",514,"MIT","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"technology selection","technology","selection","loop","guides","maf","project","deep","llm orchestration","local","regression","model","text","projects","agent framework","vector","search","microsoft agent framework","training","rag","pytorch","onnx","deep learning","copilot","agentic workflows","github copilot","component","workflows","2026-11-10 10:12:30",false,"---\nname: technology-selection\ndescription: \"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\u002FAI component, or the project needs a custom deep learning training loop (use Python with PyTorch\u002FTensorFlow, then export to ONNX for .NET inference).\"\nlicense: MIT\n---\n\n# .NET AI and Machine Learning\n\nPick the right technology first, then deliver **only what the task asks for**. If the task asks for\na plan, comparison, or architecture (or says \"do not write code\"), produce that — do not scaffold,\nbuild, or run code unprompted.\n\n## Step 1: Classify the task (decision tree)\n\nState which branch applies and why, then choose that technology.\n\n| Task type | Technology | Why |\n|-----------|-----------|-----|\n| Structured\u002Ftabular: classification, regression, clustering, anomaly detection, recommendation | **ML.NET** (`Microsoft.ML`) | Deterministic (fixed seed), no cloud dependency, purpose-built |\n| NL understanding, generation, summarization, reasoning (single prompt → response, no tools) | **LLM via Microsoft.Extensions.AI** (`IChatClient`) | Language capability, no orchestration needed |\n| Agentic: multi-step tool\u002Ffunction calling, agent loops, multi-agent | **Microsoft Agent Framework** (`Microsoft.Agents.AI`) on **Microsoft.Extensions.AI** | Needs orchestration, tool dispatch, iteration control `IChatClient` lacks |\n| GitHub Copilot extensions \u002F custom dev-workflow agents | **GitHub Copilot SDK** (`GitHub.Copilot.SDK`) | Integrates with the Copilot agent runtime |\n| Run a pre-trained\u002Fcustom model in production | **ONNX Runtime** (`Microsoft.ML.OnnxRuntime`) | Hardware-accelerated, format-agnostic inference |\n| Local\u002Foffline LLM inference | **OllamaSharp** ([Ollama models](https:\u002F\u002Follama.com\u002Fsearch)) | Privacy-sensitive, air-gapped, cost-constrained |\n| Semantic search, RAG, embedding storage | **Microsoft.Extensions.VectorData.Abstractions** (MEVD) + a provider (Azure AI Search, Milvus, MongoDB, pgvector, Pinecone, Qdrant, Redis, SQL) | Provider-agnostic vector search |\n| Ingest, chunk, load documents into a vector store | **Microsoft.Extensions.AI.DataIngestion** (preview) + MEVD | Parses, chunks, embeds, upserts |\n| Both structured predictions AND NL reasoning | **Hybrid**: ML.NET scoring + LLM reasoning layer | ML.NET is reproducible; LLM adds explanation |\n\n**Critical rule:** Do NOT use an LLM for tasks ML.NET handles well (tabular classification,\nregression, clustering) — LLMs are slower, costlier, and non-deterministic for these.\n\n## Step 1b: Pick the library layer\n\n| Layer | Library | Use when |\n|-------|---------|----------|\n| **Abstraction** | `Microsoft.Extensions.AI` (MEAI) | Always the foundation. Use `IChatClient` directly for prompt-response and simple, bounded function invocation. |\n| **Provider SDK** | `Azure.AI.OpenAI` \u002F `OpenAI` \u002F `Azure.AI.Inference` \u002F `OllamaSharp` | Concrete provider behind MEAI via `AddChatClient`. |\n| **Orchestration** | `Microsoft.Agents.AI` (prerelease) | Multi-step tool use, durable agent loops, and multi-agent workflows. |\n| **Copilot** | `GitHub.Copilot.SDK` | Building Copilot-platform extensions only. |\n\nRules: start with MEAI; put the provider behind it via `AddChatClient` (don't call the provider in\nbusiness logic); use `Microsoft.Agents.AI` for multi-step or durable agent workflows rather than\nhand-rolling an agent loop; never mix a raw `HttpClient`-to-OpenAI call with MEAI in the same\nworkflow. Do **not** use Accord.NET (archived). For new projects, prefer MEAI and Agent Framework\nunless existing Semantic Kernel features or investments are a requirement. Register AI\u002FML services\nvia DI; load secrets from user-secrets \u002F env \u002F Key Vault — never hardcode keys.\n\n## Step 2: Cover the branch essentials, then decide depth\n\nEvery answer — plan or implementation — must address the guardrails for the selected branch:\n\n- **ML.NET** — `new MLContext(seed: …)` (reproducible); `TrainTestSplit` + evaluate on the held-out\n  set; report real metrics (MicroAccuracy\u002FMacroAccuracy\u002FLogLoss, AUC\u002FF1, or RMSE\u002FR²); serve with\n  `PredictionEnginePool\u003CTIn,TOut>` (never a singleton `PredictionEngine`).\n- **LLM (MEAI)** — depend on `IChatClient` registered via `AddChatClient` (provider behind it);\n  set `Temperature` and `MaxOutputTokens` in `ChatOptions`; add retry\u002Ftimeout\n  (`RetryingChatClient`\u002FPolly); pin a dated model; load keys from user-secrets \u002F env \u002F Key Vault —\n  **never hardcode an `sk-…` key**; validate non-deterministic output against a schema with a\n  fallback.\n- **Agentic (Agent Framework)** — orchestrate with `Microsoft.Agents.AI` on `IChatClient` (never a\n  hand-rolled loop); set `MaximumIterations` and a token\u002Fcost ceiling; define each tool with a clear\n  schema (`AIFunctionFactory.Create`); log each step (never raw sensitive content).\n- **RAG \u002F embeddings** — semantic **chunking** (not fixed-size); `IEmbeddingGenerator` and **cache\n  the embeddings** (don't re-embed per query); store\u002Fquery with\n  `Microsoft.Extensions.VectorData.Abstractions` (MEVD) + the provider the user asked for (e.g.\n  pgvector); filter by a **minimum similarity score**; keep **source attribution** for each answer.\n  Honor the UI\u002Fstorage the user specified; use only real, existing NuGet packages.\n\n**Then choose depth:**\n\n- **Plan \u002F comparison \u002F architecture only** (or \"do not write code\"): answer from this file alone\n  using the essentials above. **Do NOT open a reference** — the branch essentials here are\n  sufficient for a selection or plan. For RAG plans, cover chat, ingestion\u002Fchunking, embeddings,\n  vector storage, source attribution, and the requested UI\u002Fstorage.\n- **Writing implementation code**: read the matching reference(s) for packages and implementation\n  guidance (read only the selected branch; for Hybrid, read both Classic ML.NET and LLM):\n  - Classic ML.NET → [`references\u002Fclassic-ml.md`](references\u002Fclassic-ml.md)\n  - LLM integration (MEAI) → [`references\u002Fllm.md`](references\u002Fllm.md)\n  - Agentic (Agent Framework) → [`references\u002Fagentic.md`](references\u002Fagentic.md)\n  - RAG \u002F embeddings \u002F ingestion → [`references\u002Frag.md`](references\u002Frag.md)\n  - GitHub Copilot extensions → [`references\u002Fcopilot.md`](references\u002Fcopilot.md)\n  - ONNX Runtime inference → [`references\u002Fonnx.md`](references\u002Fonnx.md)\n  - Local\u002Foffline LLM with Ollama → [`references\u002Follama.md`](references\u002Follama.md)\n\n## Validation\n\n- [ ] Selection follows the decision tree — no LLM for tasks ML.NET handles\n- [ ] Only what was asked is produced (plan-only requests get a plan, not code)\n- [ ] AI\u002FML services registered via DI; config via `IOptions\u003CT>`; keys from secure sources\n- [ ] Branch guardrails (Step 2 essentials, plus the reference when implementing) are satisfied\n- [ ] After implementing, build and run existing tests\n\n## Anti-Patterns to Reject\n\n| Anti-pattern | Redirect |\n|-------------|----------|\n| LLM for tabular classification | Use **ML.NET** — faster, cheaper, deterministic |\n| LLM calls without retry\u002Ftimeout | Add `RetryingChatClient` or Polly retry |\n| API keys in committed `appsettings.json` | user-secrets \u002F env \u002F Key Vault |\n| Accord.NET, or defaulting to Semantic Kernel without a requirement | ML.NET; prefer MEAI + `Microsoft.Agents.AI` for new work |\n| Hand-rolled multi-step tool loops with `IChatClient` | `Microsoft.Agents.AI` (`MaximumIterations`, tool dispatch) |\n| Agent Framework for a single prompt→response | `IChatClient` directly |\n| Raw `HttpClient`\u002FOpenAI SDK in business logic alongside MEAI | one abstraction layer; depend on `IChatClient` |\n| `PredictionEngine` singleton in ASP.NET Core | `PredictionEnginePool\u003CTIn,TOut>` (not thread-safe) |\n| RAG without chunking or relevance filtering | semantic chunking + minimum similarity score |\n| Building custom neural nets in .NET from scratch | pre-trained via ONNX Runtime or an LLM API |\n","# .NET AI and Machine Learning\n\nPick the right technology first, then deliver **only what the task asks for**. If the task asks for\na plan, comparison, or architecture (or says \"do not write code\"), produce that — do not scaffold,\nbuild, or run code unprompted.\n\n## Step 1: Classify the task (decision tree)\n\nState which branch applies and why, then choose that technology.\n\n| Task type | Technology | Why |\n|-----------|-----------|-----|\n| Structured\u002Ftabular: classification, regression, clustering, anomaly detection, recommendation | **ML.NET** (`Microsoft.ML`) | Deterministic (fixed seed), no cloud dependency, purpose-built |\n| NL understanding, generation, summarization, reasoning (single prompt → response, no tools) | **LLM via Microsoft.Extensions.AI** (`IChatClient`) | Language capability, no orchestration needed |\n| Agentic: multi-step tool\u002Ffunction calling, agent loops, multi-agent | **Microsoft Agent Framework** (`Microsoft.Agents.AI`) on **Microsoft.Extensions.AI** | Needs orchestration, tool dispatch, iteration control `IChatClient` lacks |\n| GitHub Copilot extensions \u002F custom dev-workflow agents | **GitHub Copilot SDK** (`GitHub.Copilot.SDK`) | Integrates with the Copilot agent runtime |\n| Run a pre-trained\u002Fcustom model in production | **ONNX Runtime** (`Microsoft.ML.OnnxRuntime`) | Hardware-accelerated, format-agnostic inference |\n| Local\u002Foffline LLM inference | **OllamaSharp** ([Ollama models](https:\u002F\u002Follama.com\u002Fsearch)) | Privacy-sensitive, air-gapped, cost-constrained |\n| Semantic search, RAG, embedding storage | **Microsoft.Extensions.VectorData.Abstractions** (MEVD) + a provider (Azure AI Search, Milvus, MongoDB, pgvector, Pinecone, Qdrant, Redis, SQL) | Provider-agnostic vector search |\n| Ingest, chunk, load documents into a vector store | **Microsoft.Extensions.AI.DataIngestion** (preview) + MEVD | Parses, chunks, embeds, upserts |\n| Both structured predictions AND NL reasoning | **Hybrid**: ML.NET scoring + LLM reasoning layer | ML.NET is reproducible; LLM adds explanation |\n\n**Critical rule:** Do NOT use an LLM for tasks ML.NET handles well (tabular classification,\nregression, clustering) — LLMs are slower, costlier, and non-deterministic for these.\n\n## Step 1b: Pick the library layer\n\n| Layer | Library | Use when |\n|-------|---------|----------|\n| **Abstraction** | `Microsoft.Extensions.AI` (MEAI) | Always the foundation. Use `IChatClient` directly for prompt-response and simple, bounded function invocation. |\n| **Provider SDK** | `Azure.AI.OpenAI` \u002F `OpenAI` \u002F `Azure.AI.Inference` \u002F `OllamaSharp` | Concrete provider behind MEAI via `AddChatClient`. |\n| **Orchestration** | `Microsoft.Agents.AI` (prerelease) | Multi-step tool use, durable agent loops, and multi-agent workflows. |\n| **Copilot** | `GitHub.Copilot.SDK` | Building Copilot-platform extensions only. |\n\nRules: start with MEAI; put the provider behind it via `AddChatClient` (don't call the provider in\nbusiness logic); use `Microsoft.Agents.AI` for multi-step or durable agent workflows rather than\nhand-rolling an agent loop; never mix a raw `HttpClient`-to-OpenAI call with MEAI in the same\nworkflow. Do **not** use Accord.NET (archived). For new projects, prefer MEAI and Agent Framework\nunless existing Semantic Kernel features or investments are a requirement. Register AI\u002FML services\nvia DI; load secrets from user-secrets \u002F env \u002F Key Vault — never hardcode keys.\n\n## Step 2: Cover the branch essentials, then decide depth\n\nEvery answer — plan or implementation — must address the guardrails for the selected branch:\n\n- **ML.NET** — `new MLContext(seed: …)` (reproducible); `TrainTestSplit` + evaluate on the held-out\n  set; report real metrics (MicroAccuracy\u002FMacroAccuracy\u002FLogLoss, AUC\u002FF1, or RMSE\u002FR²); serve with\n  `PredictionEnginePool\u003CTIn,TOut>` (never a singleton `PredictionEngine`).\n- **LLM (MEAI)** — depend on `IChatClient` registered via `AddChatClient` (provider behind it);\n  set `Temperature` and `MaxOutputTokens` in `ChatOptions`; add retry\u002Ftimeout\n  (`RetryingChatClient`\u002FPolly); pin a dated model; load keys from user-secrets \u002F env \u002F Key Vault —\n  **never hardcode an `sk-…` key**; validate non-deterministic output against a schema with a\n  fallback.\n- **Agentic (Agent Framework)** — orchestrate with `Microsoft.Agents.AI` on `IChatClient` (never a\n  hand-rolled loop); set `MaximumIterations` and a token\u002Fcost ceiling; define each tool with a clear\n  schema (`AIFunctionFactory.Create`); log each step (never raw sensitive content).\n- **RAG \u002F embeddings** — semantic **chunking** (not fixed-size); `IEmbeddingGenerator` and **cache\n  the embeddings** (don't re-embed per query); store\u002Fquery with\n  `Microsoft.Extensions.VectorData.Abstractions` (MEVD) + the provider the user asked for (e.g.\n  pgvector); filter by a **minimum similarity score**; keep **source attribution** for each answer.\n  Honor the UI\u002Fstorage the user specified; use only real, existing NuGet packages.\n\n**Then choose depth:**\n\n- **Plan \u002F comparison \u002F architecture only** (or \"do not write code\"): answer from this file alone\n  using the essentials above. **Do NOT open a reference** — the branch essentials here are\n  sufficient for a selection or plan. For RAG plans, cover chat, ingestion\u002Fchunking, embeddings,\n  vector storage, source attribution, and the requested UI\u002Fstorage.\n- **Writing implementation code**: read the matching reference(s) for packages and implementation\n  guidance (read only the selected branch; for Hybrid, read both Classic ML.NET and LLM):\n  - Classic ML.NET → [`references\u002Fclassic-ml.md`](references\u002Fclassic-ml.md)\n  - LLM integration (MEAI) → [`references\u002Fllm.md`](references\u002Fllm.md)\n  - Agentic (Agent Framework) → [`references\u002Fagentic.md`](references\u002Fagentic.md)\n  - RAG \u002F embeddings \u002F ingestion → [`references\u002Frag.md`](references\u002Frag.md)\n  - GitHub Copilot extensions → [`references\u002Fcopilot.md`](references\u002Fcopilot.md)\n  - ONNX Runtime inference → [`references\u002Fonnx.md`](references\u002Fonnx.md)\n  - Local\u002Foffline LLM with Ollama → [`references\u002Follama.md`](references\u002Follama.md)\n\n## Validation\n\n- [ ] Selection follows the decision tree — no LLM for tasks ML.NET handles\n- [ ] Only what was asked is produced (plan-only requests get a plan, not code)\n- [ ] AI\u002FML services registered via DI; config via `IOptions\u003CT>`; keys from secure sources\n- [ ] Branch guardrails (Step 2 essentials, plus the reference when implementing) are satisfied\n- [ ] After implementing, build and run existing tests\n\n## Anti-Patterns to Reject\n\n| Anti-pattern | Redirect |\n|-------------|----------|\n| LLM for tabular classification | Use **ML.NET** — faster, cheaper, deterministic |\n| LLM calls without retry\u002Ftimeout | Add `RetryingChatClient` or Polly retry |\n| API keys in committed `appsettings.json` | user-secrets \u002F env \u002F Key Vault |\n| Accord.NET, or defaulting to Semantic Kernel without a requirement | ML.NET; prefer MEAI + `Microsoft.Agents.AI` for new work |\n| Hand-rolled multi-step tool loops with `IChatClient` | `Microsoft.Agents.AI` (`MaximumIterations`, tool dispatch) |\n| Agent Framework for a single prompt→response | `IChatClient` directly |\n| Raw `HttpClient`\u002FOpenAI SDK in business logic alongside MEAI | one abstraction layer; depend on `IChatClient` |\n| `PredictionEngine` singleton in ASP.NET Core | `PredictionEnginePool\u003CTIn,TOut>` (not thread-safe) |\n| RAG without chunking or relevance filtering | semantic chunking + minimum similarity score |\n| Building custom neural nets in .NET from scratch | pre-trained via ONNX Runtime or an LLM API |\n",{"name":5,"license":15,"description":7},"main","497cc9aba79a931ac6fb8d36a48cc22fe3d6d74b","catalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection",41,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills","https:\u002F\u002Fskills.managed-code.com","https:\u002F\u002Fgithub.com\u002Fmanagedcode","https:\u002F\u002Fwww.managed-code.com","Open Source Community for .NET Developers: Reliable, Actively Maintained, and Community-Driven. Made in Ukraine 🇺🇦 with ❤️","2026-11-12 19:59:36",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add managedcode\u002Fdotnet-skills --skill technology-selection",{"tool":68,"command":69},"bunx","bunx skills add managedcode\u002Fdotnet-skills --skill technology-selection",{"tool":71,"command":72},"pnpm","pnpm dlx skills add managedcode\u002Fdotnet-skills --skill technology-selection","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002FSKILL.md",true,[76,82,86,90,94,98,102,106,110,114],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"manifest.json","REFERENCE","参考文档",133,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Fmanifest.json",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fagentic.md",1991,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Fagentic.md",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fclassic-ml.md",2439,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Fclassic-ml.md",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fcloudwatch-alarms.md",13736,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__Microck--aws-skills\u002Fskills\u002Faws-cost-operations\u002Freferences\u002Fcloudwatch-alarms.md",{"path":95,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fcopilot.md",1140,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Fcopilot.md",{"path":99,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fllm.md",2001,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Fllm.md",{"path":103,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Follama.md",1018,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Follama.md",{"path":107,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fonnx.md",1103,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Fonnx.md",{"path":111,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Foperations-patterns.md",10477,"https:\u002F\u002Fgithub.com\u002FJSGforever\u002Fskillguard\u002Fblob\u002Fmain\u002Fbenchmarks\u002Ffinal\u002Fskills\u002Fasset1__Microck--aws-skills\u002Fskills\u002Faws-cost-operations\u002Freferences\u002Foperations-patterns.md",{"path":115,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Frag.md",1886,"https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FPlatform\u002FOfficial-DotNet-AI\u002Fskills\u002Ftechnology-selection\u002Freferences\u002Frag.md",[119,154,178,210,220,246],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":135,"publishedAt":47},"01M6DYQE1Y9FHAQHEDTVFQ3447","xtwitter-scraper","Use XTwitterScraper when a .NET application needs typed access to Xquik's X automation REST API for tweet search, user lookup, posting workflows, extraction jobs, monitors, webhooks, or giveaway draws. USE FOR: integrating the XTwitterScraper NuGet package; reviewing Xquik API client usage; modeling API-key configuration, pagination, binary exports, raw responses, retries, and webhook\u002Fevent flows in .NET. DO NOT USE FOR: unrelated stacks; direct browser automation; generic social-media strategy; or code that does not call Xquik. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FLibraries\u002FXTwitterScraper\u002Fskills\u002Fxtwitter-scraper\u002FSKILL.md",[125,130],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":131,"categoryName":132,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[136,137,46,138,139,140,35,141,142,143,144,145,146,147,148,149,150,151,152,153],"xtwitter scraper","browser automation","run","code","browser","repository","api","Media","api client","access","edit","unrelated","webhooks","files","social","commands","modeling","webhook",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":166,"publishedAt":47},"01M6DYQ9S4PE1H6G8MCH9T21HR","sep","Use Sep for high-performance separated-value parsing and writing in .NET, including delimiter inference, explicit parser\u002Fwriter options, and low-allocation row\u002Fcolumn workflows. USE FOR: delimited data needs are performance-sensitive and allocation-aware; project needs explicit control over separator inference, escaping, trimming, and header behavior;. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fcatalog\u002FLibraries\u002FSep\u002Fskills\u002Fsep\u002FSKILL.md",[160,163],{"categoryNo":161,"categoryName":162,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":164,"categoryName":165,"taxonomyType":133,"taxonomyTypeDesc":134},"01JBSEEDCAT000000000000036","内容创作者",[156,167,168,46,169,138,141,170,171,172,146,173,147,149,174,175,176,25,151,177],"writing","performance","tasks","data","parsing","parser","context","do","writer","options","high-performance",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":47},"01M6DZS2DNEPXCGGF6SSCW6G5V","webgpu-threejs-tsl","Comprehensive guide for developing WebGPU-enabled Three.js applications using TSL (Three.js Shading Language). Covers WebGPU renderer setup, TSL syntax and node materials, compute shaders, post-processing effects, and WGSL integration. Use this skill when working with Three.js WebGPU, TSL shaders, node materials, or GPU compute in Three.js.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fwebgpu-claude-skill\u002Fskills\u002Fwebgpu-threejs-tsl\u002FSKILL.md",[],[185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209],"webgpu","threejs","webgpu threejs tsl","setup","shaders","gpu","integration","applications","js","node","syntax","guide","use","language","three","compute","post","processing","with","renderer","for","materials","wgsl","effects","when",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":214,"categories":215,"keywords":216,"publishedAt":47},"01M6DZS0BQXW2B56A289XF1X76","roslynk","Use Roslynk for semantic inspection and edits of *.cs, *.razor and *.cshtml solution files.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Froslynk\u002Fskills\u002Froslynk\u002FSKILL.md",[],[212,197,149,217,218,205,219],"semantic","razor","inspection",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":226,"publishedAt":47},"01M6DZRW6MEJCVW80K3S4XV60K","system-text-json-net11","Imperative guidance for the System.Text.Json APIs added in .NET 11: the built-in `JsonNamingPolicy.PascalCase` naming policy, and the strongly-typed generic `JsonSerializerOptions.GetTypeInfo` and `JsonSerializerOptions.TryGetTypeInfo` metadata accessors (generic overloads that return a typed `JsonTypeInfo`). USE ONLY when the user is targeting net11.0 or later and needs PascalCase JSON property or dictionary-key names without writing a custom naming policy, a strongly-typed generic `JsonTypeInfo` instead of the non-generic `JsonTypeInfo`, or a no-throw way to probe whether a type's serialization metadata is resolved. DO NOT USE when the target is earlier than net11.0, the requested behavior uses an established pre-net11 naming policy, or the user explicitly selected another JSON library.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fdotnet-skills\u002Fplugins\u002Fdotnet11\u002Fskills\u002Fsystem-text-json-net11\u002FSKILL.md",[],[227,228,31,229,167,230,231,232,233,234,235,197,236,237,238,239,174,240,241,242,243,205,244,245,209],"system","json","system text json net11","policy","metadata","library","serialization","behavior","user","only","probe","guidance","later","type","dictionary","naming","targeting","custom","generic",{"skillNo":247,"name":248,"nameZh":6,"description":249,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":250,"categories":251,"keywords":254,"publishedAt":47},"01M6DZRRJP3S662NFSG1RSPQQ7","process-api-net11","Provides guidance on the new System.Diagnostics.Process APIs introduced in .NET 11: Process.Run, Process.RunAndCaptureText, Process.StartAndForget, Process.ReadAllText\u002FBytes\u002FLines, KillOnParentExit, InheritedHandles, and StartDetached. USE FOR: starting, orchestrating, or capturing output from external processes in applications targeting net11.0 or later. DO NOT USE FOR: applications targeting .NET 10 or earlier, or basic pre-.NET 11 Process.Start usage without new APIs.","https:\u002F\u002Fgithub.com\u002Fmanagedcode\u002Fdotnet-skills\u002Fblob\u002Fmain\u002Fexternal-sources\u002Fupstreams\u002Fdotnet-skills\u002Fplugins\u002Fdotnet11\u002Fskills\u002Fprocess-api-net11\u002FSKILL.md",[252,253],{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},{"categoryNo":131,"categoryName":132,"taxonomyType":133,"taxonomyTypeDesc":134},[142,255,256,257,138,258,192,227,197,238,239,174,259,260,261,262,243,205,263],"process","process api net11","diagnostics","start","basic","processes","output","usage","new"]