aks-cost-optimization
Analyze advanced AKS cost efficiency. WHEN: \"AKS NAP readiness\", \"AKS bin packing\", \"AKS node scaling bottleneck\", \"AKS…
Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create
Claude Code
$ npx -y skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model --agent claude-code
Codex
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model -a codex -y
Cursor
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model -a cursor -y
Gemini CLI
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model -a gemini-cli -y
GitHub Copilot
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model -a github-copilot -y
OpenCode
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model -a opencode -y
Windsurf
$ npx skills add microsoft/GitHub-Copilot-for-Azure --skill deploy-model -a windsurf -y
name: deploy-model description: "Unified Azure OpenAI model deployment skill with intelligent intent-based routing. Handles quick preset deployments, fully customized deployments (version/SKU/capacity/RAI policy), and capacity discovery across regions and projects. USE FOR: deploy model, deploy gpt, create deployment, model deployment, deploy openai model, set up model, provision model, find capacity, check model availability, where can I deploy, best region for model, capacity analysis. DO NOT USE FOR: listing existing deployments (use foundry_models_deployments_list MCP tool), deleting deployments, agent creation (use agent/create), project creation (use project/create)." license: MIT metadata: author: Microsoft version: "1.0.0"
> **Scope — read this first.** This skill creates model deployments **out-of-band** via Azure CLI / MCP / portal. For azd-managed Foundry projects (those scaffolded from `azd ai agent init`), declare deployments in `azure.yaml services.ai-project.deployments[]` instead — `azd ai agent init` writes the entry from the sample manifest and `azd provision` creates the deployment through Bicep. See [foundry-agent/create/create-hosted.md](../../foundry-agent/create/create-hosted.md) for the Golden Path. Use this skill only for: (a) Foundry projects not managed by an azd project, (b) ad-hoc deployments outside the azd lifecycle.
Unified entry point for all Azure OpenAI model deployment workflows. Analyzes user intent and routes to the appropriate deployment mode.
| Mode | When to Use | Sub-Skill | |------|-------------|-----------| | **Preset** | Quick deployment, no customization needed | [preset/SKILL.md](preset/SKILL.md) | | **Customize** | Full control: version, SKU, capacity, RAI policy | [customize/SKILL.md](customize/SKILL.md) | | **Capacity Discovery** | Find where you can deploy with specific capacity | [capacity/SKILL.md](capacity/SKILL.md) |
Analyze the user's prompt and route to the correct mode:
User Prompt
│
├─ Simple deployment (no modifiers)
│ "deploy gpt-4o", "set up a model"
│ └─> PRESET mode
│
├─ Customization keywords present
│ "custom settings", "choose version", "select SKU",
│ "set capacity to X", "configure content filter",
│ "PTU deployment", "with specific quota"
│ └─> CUSTOMIZE mode
│
├─ Capacity/availability query
│ "find where I can deploy", "check capacity",
│ "which region has X capacity", "best region for 10K TPM",
│ "where is this model available"
│ └─> CAPACITY DISCOVERY mode
│
└─ Ambiguous (has capacity target + deploy intent)
"deploy gpt-4o with 10K capacity to best region"
└─> CAPACITY DISCOVERY first → then PRESET or CUSTOMIZE| Signal in Prompt | Route To | Reason | |------------------|----------|--------| | Just model name, no options | **Preset** | User wants quick deployment | | "custom", "configure", "choose", "select" | **Customize** | User wants control | | "find", "check", "where", "which region", "available" | **Capacity** | User wants discovery | | Specific capacity number + "best region" | **Capacity → Preset** | Discover then deploy quickly | | Specific capacity number + "custom" keywords | **Capacity → Customize** | Discover then deploy with options | | "PTU", "provisioned throughput" | **Customize** | PTU requires SKU selection | | "optimal region", "best region" (no capacity target) | **Preset** | Region optimization is preset's specialty |
Some prompts require two modes in sequence:
**Pattern: Capacity → Deploy** When a user specifies a capacity requirement AND wants deployment: 1. Run **Capacity Discovery** to find regions/projects with sufficient quota 2. Present findings to user 3. Ask: "Would you like to deploy with **quick defaults** or **customize settings**?" 4. Route to **Preset** or **Customize** based on answer
> 💡 **Tip:** If unsure which mode the user wants, default to **Preset** (quick deployment). Users who want customization will typically use explicit keywords like "custom", "configure", or "with specific settings".
Before any deployment, resolve which project to deploy to. This applies to **all** modes (preset, customize, and after capacity discovery).
1. **Check `PROJECT_RESOURCE_ID` env var** — if set, use it as the default 2. **Check user prompt** — if user named a specific project or region, use that 3. **If neither** — query the user's projects and suggest the current one
**Always confirm the target before deploying.** Show the user what will be used and give them a chance to change it:
Deploying to: Project: <project-name> Region: <region> Resource: <resource-group> Is this correct? Or choose a different project: 1. ✅ Yes, deploy here (default) 2. 📋 Show me other projects in this region 3. 🌍 Choose a different region
If user picks option 2, show top 5 projects in that region:
Projects in <region>: 1. project-alpha (rg-alpha) 2. project-beta (rg-beta) 3. project-gamma (rg-gamma) ...
> ⚠️ **Never deploy without showing the user which project will be used.** This prevents accidental deployments to the wrong resource.
Before presenting any deployment options (SKU, capacity), always validate both of these:
1. **Model supports the SKU** — query the model catalog to confirm the selected model+version supports the target SKU:
az cognitiveservices model list --location <region> --subscription <sub-id> -o json
Filter for the model, extract `.model.skus[].name` to get supported SKUs.
2. **Subscription has available quota** — check that the user's subscription has unallocated quota for the SKU+model combination:
az cognitiveservices usage list --location <region> -
GitHub Copilot for Azure is a set of extensions for Visual Studio, VS Code, and Claude Code designed to streamline the process of developing for Azure.
Analyze advanced AKS cost efficiency. WHEN: \"AKS NAP readiness\", \"AKS bin packing\", \"AKS node scaling bottleneck\", \"AKS…
Diagnose Day-2 AKS GPU and KAITO incidents using profile-aware, read-only evidence. WHEN: 'Insufficient nvidia.com/gpu', GPU pod…
Lookup documented AKS fixes only when the prompt includes an exact catalog signature and all of its qualifiers:…
Collects bounded packet captures from AKS nodes and Azure network configuration for wire-level evidence. WHEN: \"capture packets…
Debug live Azure Kubernetes Service (AKS) incidents with a read-only, evidence-first investigation. WHEN: pod crashes or Pending,…
Builds an Azure portal deep link to a specific blade/menu item for supported Microsoft.ContainerService, Microsoft.Kubernetes,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.