[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-azure-azure-functions-deploy":3,"mdc-p1gy3k-key":32,"related-repo-azure-azure-functions-deploy":1307,"related-org-azure-azure-functions-deploy":1402},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":30,"mdContent":31},"azure-functions-deploy","deploy Azure Functions applications","Proxy Azure Functions deployment requests to the Azure Skills prepare, validate, and deploy workflow while preserving Azure Functions-specific guidance",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"azure","Azure (Microsoft)","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fazure.png","Azure",[13,15,18],{"name":11,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Deployment","deployment",{"name":19,"slug":20,"type":14},"CI\u002FCD","ci-cd",12,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-functions-skills","2026-07-12T08:19:34.579423",null,1,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":29},[],"A repository for Azure Functions skills, prompts, and reusable definitions to support agentic development and operational workflows.","https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-functions-skills\u002Ftree\u002FHEAD\u002Ftemplates\u002Fskills\u002Fazure-functions-deploy","---\nname: azure-functions-deploy\ntitle: Deploy Azure Functions\ndescription: Proxy Azure Functions deployment requests to the Azure Skills prepare, validate, and deploy workflow while preserving Azure Functions-specific guidance\ncategory: task\n---\n\n> **Language**: Always respond in the same language the user is using.\n\n# azure-functions-deploy — Deploy Azure Functions\n\nDeploy your Azure Functions app to Azure by proxying to the Azure Skills deployment workflow.\n\nThis skill is the Azure Functions-facing entry point. It should not run deployment commands directly. It prepares Azure Functions-specific context, then delegates execution to `azure-prepare`, `azure-validate`, and `azure-deploy` from the Azure Skills plugin.\n\n## Prerequisites\n\n- Azure CLI installed and logged in (`az login`)\n- Azure Developer CLI installed and logged in (`azd auth login`) for AZD-based deployments\n- An Azure subscription (`az account show`)\n- A Functions project with `host.json` in the current directory\n- Azure Skills plugin installed with `azure-prepare`, `azure-validate`, and `azure-deploy` available\n\nIf any prerequisite is missing, suggest running **azure-functions-setup** first.\n\n## Required delegation model\n\nUse Azure Skills as the deployment engine:\n\n1. If `.azure\u002Fdeployment-plan.md` is missing, invoke `azure-prepare` first — **unless the shortcut path below applies**.\n2. If `.azure\u002Fdeployment-plan.md` exists but is not `Validated`, invoke `azure-validate` before any deployment attempt.\n3. If `.azure\u002Fdeployment-plan.md` exists and status is `Validated`, invoke `azure-deploy` directly.\n4. Never mark the plan as `Validated` from this skill. Only `azure-validate` may do that.\n5. Do not run `azd up`, `azd deploy`, `terraform apply`, `az deployment`, or `func azure functionapp publish` directly from this skill unless Azure Skills cannot handle the scenario and the user explicitly approves a fallback.\n\n### Shortcut path for MCP-template projects\n\nWhen a project was scaffolded from an Azure MCP template (e.g., via `azure-functions-create` Path A), it already contains complete infrastructure. Detect this by checking **all** of these conditions:\n\n1. `azure.yaml` exists in the project root\n2. `infra\u002Fmain.bicep` or `infra\u002F*.tf` exists\n3. `host.json` exists\n4. `azure.yaml` contains a `metadata.template` field (indicates MCP template origin)\n\nIf all conditions are met, **skip `azure-prepare`** and proceed directly:\n\n1. Generate a lightweight `.azure\u002Fplan.md` noting the pre-existing infrastructure\n2. Invoke `azure-validate` (provisions preview, environment setup)\n3. Invoke `azure-deploy` (runs `azd up`)\n\nThis avoids the redundant 5–10 minute analysis and planning phase for projects that already have production-ready infrastructure.\n\nThe normal workflow is:\n\n```text\nazure-functions-deploy → azure-prepare → azure-validate → azure-deploy\n```\n\nWhen a validated plan already exists:\n\n```text\nazure-functions-deploy → azure-deploy\n```\n\n## Azure Functions context to inject\n\nBefore handing off, collect and pass the following Azure Functions-specific guidance to Azure Skills:\n\n- Use Azure Functions deployment best-practices MCP guidance (`get_azure_bestpractices` with `resource: azurefunctions` and `action: deployment`) when available.\n- Prefer Flex Consumption \u002F FC1 for new serverless Function Apps.\n- Include `functionAppConfig` with deployment storage for FC1 Function Apps.\n- Use Linux for Python Function Apps.\n- Configure Function authentication or stronger mechanisms; avoid anonymous access unless intentional.\n- Enable Application Insights for monitoring, exception tracking, and dependency monitoring.\n- Consider private networking and one Function App per independently scaling workload when appropriate.\n- Use Azure Functions endpoint verification after deploy; do not use `curl -I` for HTTP trigger verification because HEAD can return false negatives.\n\n## Azure Skills plugin installation guidance\n\nIf Azure Skills is unavailable, stop and ask the user to install it for their host:\n\n| Host | Install guidance |\n| --- | --- |\n| GitHub Copilot CLI | `\u002Fplugin marketplace add microsoft\u002Fazure-skills`, then `\u002Fplugin install azure@azure-skills` |\n| Claude Code | `\u002Fplugin install azure@claude-plugins-official` |\n| Codex CLI | `codex plugin marketplace add microsoft\u002Fazure-skills`, then install `azure` from `\u002Fplugins` |\n| VS Code | Install the Azure MCP extension and companion Azure Skills integration, then reload VS Code |\n| GitHub Copilot fallback | `npx skills add https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Ftree\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills -a github-copilot -g -y` |\n\n## Fallback policy\n\nPrefer Azure Skills for all deployment execution. Use a Functions-specific fallback only when:\n\n- Azure Skills cannot be installed or invoked in the current host,\n- the user explicitly asks for a quick publish to an existing Function App, or\n- a scenario is not covered by Azure Skills and must be handled by Azure Functions Core Tools.\n\nBefore using a fallback, explain what will be skipped compared with `azure-prepare` → `azure-validate` → `azure-deploy`, and ask for confirmation.\n\n## Post-deploy verification\n\nLet `azure-deploy` own post-deploy verification. Add Azure Functions-specific reminders when relevant:\n\n- List deployed functions and verify the app is running.\n- Test HTTP trigger endpoints with GET, not HEAD.\n- Suggest `azure-functions-health-status` for runtime health, metrics, and Application Insights checks.\n- Suggest `azure-functions-best-practices` for production readiness after successful deployment.\n\n## Monitoring `azd up` progress\n\nThe `azd up` command uses animated progress bars that may not render correctly in agent terminal capture. If the output appears stuck on a spinner (e.g., repeated \"Initialize bicep provider\"), the deployment is likely still progressing normally in the background.\n\nTo monitor deployment progress independently:\n\n```bash\n# Check resource group creation\naz group show --name rg-\u003Cenv-name> -o json\n\n# Check deployment status\naz deployment group list --resource-group rg-\u003Cenv-name> \\\n  --query \"[].{name:name, state:properties.provisioningState}\" -o table\n\n# Check Function App status\naz functionapp list --resource-group rg-\u003Cenv-name> \\\n  --query \"[].{name:name, state:state}\" -o table\n```\n\nDo not kill and restart the `azd up` process based solely on lack of terminal output. Instead, use the commands above to verify whether the deployment is progressing.\n\n## After Deployment\n\n> ✅ Your app is deployed through Azure Skills. Consider running `azure-functions-best-practices` for a production readiness review.\n\n## Next steps\n\n- On missing Azure Skills, suggest `azure-functions-setup` to install or configure the Azure Skills plugin.\n- On missing or unvalidated plan, invoke `azure-prepare` and `azure-validate` before `azure-deploy`.\n- On successful deployment, suggest `azure-functions-best-practices` for production readiness.\n- On deployment failure, suggest `azure-functions-diagnostics` after `azure-deploy` error recovery is exhausted.\n",{"data":33,"body":36},{"name":4,"title":34,"description":6,"category":35},"Deploy Azure Functions","task",{"type":37,"children":38},"root",[39,57,64,69,99,106,186,198,204,209,351,358,378,438,455,500,505,510,522,527,536,542,547,630,636,641,773,779,784,802,827,833,845,883,896,908,913,1191,1203,1209,1224,1230,1301],{"type":40,"tag":41,"props":42,"children":43},"element","blockquote",{},[44],{"type":40,"tag":45,"props":46,"children":47},"p",{},[48,55],{"type":40,"tag":49,"props":50,"children":51},"strong",{},[52],{"type":53,"value":54},"text","Language",{"type":53,"value":56},": Always respond in the same language the user is using.",{"type":40,"tag":58,"props":59,"children":61},"h1",{"id":60},"azure-functions-deploy-deploy-azure-functions",[62],{"type":53,"value":63},"azure-functions-deploy — Deploy Azure Functions",{"type":40,"tag":45,"props":65,"children":66},{},[67],{"type":53,"value":68},"Deploy your Azure Functions app to Azure by proxying to the Azure Skills deployment workflow.",{"type":40,"tag":45,"props":70,"children":71},{},[72,74,81,83,89,91,97],{"type":53,"value":73},"This skill is the Azure Functions-facing entry point. It should not run deployment commands directly. It prepares Azure Functions-specific context, then delegates execution to ",{"type":40,"tag":75,"props":76,"children":78},"code",{"className":77},[],[79],{"type":53,"value":80},"azure-prepare",{"type":53,"value":82},", ",{"type":40,"tag":75,"props":84,"children":86},{"className":85},[],[87],{"type":53,"value":88},"azure-validate",{"type":53,"value":90},", and ",{"type":40,"tag":75,"props":92,"children":94},{"className":93},[],[95],{"type":53,"value":96},"azure-deploy",{"type":53,"value":98}," from the Azure Skills plugin.",{"type":40,"tag":100,"props":101,"children":103},"h2",{"id":102},"prerequisites",[104],{"type":53,"value":105},"Prerequisites",{"type":40,"tag":107,"props":108,"children":109},"ul",{},[110,124,137,149,162],{"type":40,"tag":111,"props":112,"children":113},"li",{},[114,116,122],{"type":53,"value":115},"Azure CLI installed and logged in (",{"type":40,"tag":75,"props":117,"children":119},{"className":118},[],[120],{"type":53,"value":121},"az login",{"type":53,"value":123},")",{"type":40,"tag":111,"props":125,"children":126},{},[127,129,135],{"type":53,"value":128},"Azure Developer CLI installed and logged in (",{"type":40,"tag":75,"props":130,"children":132},{"className":131},[],[133],{"type":53,"value":134},"azd auth login",{"type":53,"value":136},") for AZD-based deployments",{"type":40,"tag":111,"props":138,"children":139},{},[140,142,148],{"type":53,"value":141},"An Azure subscription (",{"type":40,"tag":75,"props":143,"children":145},{"className":144},[],[146],{"type":53,"value":147},"az account show",{"type":53,"value":123},{"type":40,"tag":111,"props":150,"children":151},{},[152,154,160],{"type":53,"value":153},"A Functions project with ",{"type":40,"tag":75,"props":155,"children":157},{"className":156},[],[158],{"type":53,"value":159},"host.json",{"type":53,"value":161}," in the current directory",{"type":40,"tag":111,"props":163,"children":164},{},[165,167,172,173,178,179,184],{"type":53,"value":166},"Azure Skills plugin installed with ",{"type":40,"tag":75,"props":168,"children":170},{"className":169},[],[171],{"type":53,"value":80},{"type":53,"value":82},{"type":40,"tag":75,"props":174,"children":176},{"className":175},[],[177],{"type":53,"value":88},{"type":53,"value":90},{"type":40,"tag":75,"props":180,"children":182},{"className":181},[],[183],{"type":53,"value":96},{"type":53,"value":185}," available",{"type":40,"tag":45,"props":187,"children":188},{},[189,191,196],{"type":53,"value":190},"If any prerequisite is missing, suggest running ",{"type":40,"tag":49,"props":192,"children":193},{},[194],{"type":53,"value":195},"azure-functions-setup",{"type":53,"value":197}," first.",{"type":40,"tag":100,"props":199,"children":201},{"id":200},"required-delegation-model",[202],{"type":53,"value":203},"Required delegation model",{"type":40,"tag":45,"props":205,"children":206},{},[207],{"type":53,"value":208},"Use Azure Skills as the deployment engine:",{"type":40,"tag":210,"props":211,"children":212},"ol",{},[213,240,266,290,309],{"type":40,"tag":111,"props":214,"children":215},{},[216,218,224,226,231,233,238],{"type":53,"value":217},"If ",{"type":40,"tag":75,"props":219,"children":221},{"className":220},[],[222],{"type":53,"value":223},".azure\u002Fdeployment-plan.md",{"type":53,"value":225}," is missing, invoke ",{"type":40,"tag":75,"props":227,"children":229},{"className":228},[],[230],{"type":53,"value":80},{"type":53,"value":232}," first — ",{"type":40,"tag":49,"props":234,"children":235},{},[236],{"type":53,"value":237},"unless the shortcut path below applies",{"type":53,"value":239},".",{"type":40,"tag":111,"props":241,"children":242},{},[243,244,249,251,257,259,264],{"type":53,"value":217},{"type":40,"tag":75,"props":245,"children":247},{"className":246},[],[248],{"type":53,"value":223},{"type":53,"value":250}," exists but is not ",{"type":40,"tag":75,"props":252,"children":254},{"className":253},[],[255],{"type":53,"value":256},"Validated",{"type":53,"value":258},", invoke ",{"type":40,"tag":75,"props":260,"children":262},{"className":261},[],[263],{"type":53,"value":88},{"type":53,"value":265}," before any deployment attempt.",{"type":40,"tag":111,"props":267,"children":268},{},[269,270,275,277,282,283,288],{"type":53,"value":217},{"type":40,"tag":75,"props":271,"children":273},{"className":272},[],[274],{"type":53,"value":223},{"type":53,"value":276}," exists and status is ",{"type":40,"tag":75,"props":278,"children":280},{"className":279},[],[281],{"type":53,"value":256},{"type":53,"value":258},{"type":40,"tag":75,"props":284,"children":286},{"className":285},[],[287],{"type":53,"value":96},{"type":53,"value":289}," directly.",{"type":40,"tag":111,"props":291,"children":292},{},[293,295,300,302,307],{"type":53,"value":294},"Never mark the plan as ",{"type":40,"tag":75,"props":296,"children":298},{"className":297},[],[299],{"type":53,"value":256},{"type":53,"value":301}," from this skill. Only ",{"type":40,"tag":75,"props":303,"children":305},{"className":304},[],[306],{"type":53,"value":88},{"type":53,"value":308}," may do that.",{"type":40,"tag":111,"props":310,"children":311},{},[312,314,320,321,327,328,334,335,341,343,349],{"type":53,"value":313},"Do not run ",{"type":40,"tag":75,"props":315,"children":317},{"className":316},[],[318],{"type":53,"value":319},"azd up",{"type":53,"value":82},{"type":40,"tag":75,"props":322,"children":324},{"className":323},[],[325],{"type":53,"value":326},"azd deploy",{"type":53,"value":82},{"type":40,"tag":75,"props":329,"children":331},{"className":330},[],[332],{"type":53,"value":333},"terraform apply",{"type":53,"value":82},{"type":40,"tag":75,"props":336,"children":338},{"className":337},[],[339],{"type":53,"value":340},"az deployment",{"type":53,"value":342},", or ",{"type":40,"tag":75,"props":344,"children":346},{"className":345},[],[347],{"type":53,"value":348},"func azure functionapp publish",{"type":53,"value":350}," directly from this skill unless Azure Skills cannot handle the scenario and the user explicitly approves a fallback.",{"type":40,"tag":352,"props":353,"children":355},"h3",{"id":354},"shortcut-path-for-mcp-template-projects",[356],{"type":53,"value":357},"Shortcut path for MCP-template projects",{"type":40,"tag":45,"props":359,"children":360},{},[361,363,369,371,376],{"type":53,"value":362},"When a project was scaffolded from an Azure MCP template (e.g., via ",{"type":40,"tag":75,"props":364,"children":366},{"className":365},[],[367],{"type":53,"value":368},"azure-functions-create",{"type":53,"value":370}," Path A), it already contains complete infrastructure. Detect this by checking ",{"type":40,"tag":49,"props":372,"children":373},{},[374],{"type":53,"value":375},"all",{"type":53,"value":377}," of these conditions:",{"type":40,"tag":210,"props":379,"children":380},{},[381,392,411,420],{"type":40,"tag":111,"props":382,"children":383},{},[384,390],{"type":40,"tag":75,"props":385,"children":387},{"className":386},[],[388],{"type":53,"value":389},"azure.yaml",{"type":53,"value":391}," exists in the project root",{"type":40,"tag":111,"props":393,"children":394},{},[395,401,403,409],{"type":40,"tag":75,"props":396,"children":398},{"className":397},[],[399],{"type":53,"value":400},"infra\u002Fmain.bicep",{"type":53,"value":402}," or ",{"type":40,"tag":75,"props":404,"children":406},{"className":405},[],[407],{"type":53,"value":408},"infra\u002F*.tf",{"type":53,"value":410}," exists",{"type":40,"tag":111,"props":412,"children":413},{},[414,419],{"type":40,"tag":75,"props":415,"children":417},{"className":416},[],[418],{"type":53,"value":159},{"type":53,"value":410},{"type":40,"tag":111,"props":421,"children":422},{},[423,428,430,436],{"type":40,"tag":75,"props":424,"children":426},{"className":425},[],[427],{"type":53,"value":389},{"type":53,"value":429}," contains a ",{"type":40,"tag":75,"props":431,"children":433},{"className":432},[],[434],{"type":53,"value":435},"metadata.template",{"type":53,"value":437}," field (indicates MCP template origin)",{"type":40,"tag":45,"props":439,"children":440},{},[441,443,453],{"type":53,"value":442},"If all conditions are met, ",{"type":40,"tag":49,"props":444,"children":445},{},[446,448],{"type":53,"value":447},"skip ",{"type":40,"tag":75,"props":449,"children":451},{"className":450},[],[452],{"type":53,"value":80},{"type":53,"value":454}," and proceed directly:",{"type":40,"tag":210,"props":456,"children":457},{},[458,471,483],{"type":40,"tag":111,"props":459,"children":460},{},[461,463,469],{"type":53,"value":462},"Generate a lightweight ",{"type":40,"tag":75,"props":464,"children":466},{"className":465},[],[467],{"type":53,"value":468},".azure\u002Fplan.md",{"type":53,"value":470}," noting the pre-existing infrastructure",{"type":40,"tag":111,"props":472,"children":473},{},[474,476,481],{"type":53,"value":475},"Invoke ",{"type":40,"tag":75,"props":477,"children":479},{"className":478},[],[480],{"type":53,"value":88},{"type":53,"value":482}," (provisions preview, environment setup)",{"type":40,"tag":111,"props":484,"children":485},{},[486,487,492,494,499],{"type":53,"value":475},{"type":40,"tag":75,"props":488,"children":490},{"className":489},[],[491],{"type":53,"value":96},{"type":53,"value":493}," (runs ",{"type":40,"tag":75,"props":495,"children":497},{"className":496},[],[498],{"type":53,"value":319},{"type":53,"value":123},{"type":40,"tag":45,"props":501,"children":502},{},[503],{"type":53,"value":504},"This avoids the redundant 5–10 minute analysis and planning phase for projects that already have production-ready infrastructure.",{"type":40,"tag":45,"props":506,"children":507},{},[508],{"type":53,"value":509},"The normal workflow is:",{"type":40,"tag":511,"props":512,"children":517},"pre",{"className":513,"code":515,"language":53,"meta":516},[514],"language-text","azure-functions-deploy → azure-prepare → azure-validate → azure-deploy\n","",[518],{"type":40,"tag":75,"props":519,"children":520},{"__ignoreMap":516},[521],{"type":53,"value":515},{"type":40,"tag":45,"props":523,"children":524},{},[525],{"type":53,"value":526},"When a validated plan already exists:",{"type":40,"tag":511,"props":528,"children":531},{"className":529,"code":530,"language":53,"meta":516},[514],"azure-functions-deploy → azure-deploy\n",[532],{"type":40,"tag":75,"props":533,"children":534},{"__ignoreMap":516},[535],{"type":53,"value":530},{"type":40,"tag":100,"props":537,"children":539},{"id":538},"azure-functions-context-to-inject",[540],{"type":53,"value":541},"Azure Functions context to inject",{"type":40,"tag":45,"props":543,"children":544},{},[545],{"type":53,"value":546},"Before handing off, collect and pass the following Azure Functions-specific guidance to Azure Skills:",{"type":40,"tag":107,"props":548,"children":549},{},[550,579,584,597,602,607,612,617],{"type":40,"tag":111,"props":551,"children":552},{},[553,555,561,563,569,571,577],{"type":53,"value":554},"Use Azure Functions deployment best-practices MCP guidance (",{"type":40,"tag":75,"props":556,"children":558},{"className":557},[],[559],{"type":53,"value":560},"get_azure_bestpractices",{"type":53,"value":562}," with ",{"type":40,"tag":75,"props":564,"children":566},{"className":565},[],[567],{"type":53,"value":568},"resource: azurefunctions",{"type":53,"value":570}," and ",{"type":40,"tag":75,"props":572,"children":574},{"className":573},[],[575],{"type":53,"value":576},"action: deployment",{"type":53,"value":578},") when available.",{"type":40,"tag":111,"props":580,"children":581},{},[582],{"type":53,"value":583},"Prefer Flex Consumption \u002F FC1 for new serverless Function Apps.",{"type":40,"tag":111,"props":585,"children":586},{},[587,589,595],{"type":53,"value":588},"Include ",{"type":40,"tag":75,"props":590,"children":592},{"className":591},[],[593],{"type":53,"value":594},"functionAppConfig",{"type":53,"value":596}," with deployment storage for FC1 Function Apps.",{"type":40,"tag":111,"props":598,"children":599},{},[600],{"type":53,"value":601},"Use Linux for Python Function Apps.",{"type":40,"tag":111,"props":603,"children":604},{},[605],{"type":53,"value":606},"Configure Function authentication or stronger mechanisms; avoid anonymous access unless intentional.",{"type":40,"tag":111,"props":608,"children":609},{},[610],{"type":53,"value":611},"Enable Application Insights for monitoring, exception tracking, and dependency monitoring.",{"type":40,"tag":111,"props":613,"children":614},{},[615],{"type":53,"value":616},"Consider private networking and one Function App per independently scaling workload when appropriate.",{"type":40,"tag":111,"props":618,"children":619},{},[620,622,628],{"type":53,"value":621},"Use Azure Functions endpoint verification after deploy; do not use ",{"type":40,"tag":75,"props":623,"children":625},{"className":624},[],[626],{"type":53,"value":627},"curl -I",{"type":53,"value":629}," for HTTP trigger verification because HEAD can return false negatives.",{"type":40,"tag":100,"props":631,"children":633},{"id":632},"azure-skills-plugin-installation-guidance",[634],{"type":53,"value":635},"Azure Skills plugin installation guidance",{"type":40,"tag":45,"props":637,"children":638},{},[639],{"type":53,"value":640},"If Azure Skills is unavailable, stop and ask the user to install it for their host:",{"type":40,"tag":642,"props":643,"children":644},"table",{},[645,664],{"type":40,"tag":646,"props":647,"children":648},"thead",{},[649],{"type":40,"tag":650,"props":651,"children":652},"tr",{},[653,659],{"type":40,"tag":654,"props":655,"children":656},"th",{},[657],{"type":53,"value":658},"Host",{"type":40,"tag":654,"props":660,"children":661},{},[662],{"type":53,"value":663},"Install guidance",{"type":40,"tag":665,"props":666,"children":667},"tbody",{},[668,694,711,743,756],{"type":40,"tag":650,"props":669,"children":670},{},[671,677],{"type":40,"tag":672,"props":673,"children":674},"td",{},[675],{"type":53,"value":676},"GitHub Copilot CLI",{"type":40,"tag":672,"props":678,"children":679},{},[680,686,688],{"type":40,"tag":75,"props":681,"children":683},{"className":682},[],[684],{"type":53,"value":685},"\u002Fplugin marketplace add microsoft\u002Fazure-skills",{"type":53,"value":687},", then ",{"type":40,"tag":75,"props":689,"children":691},{"className":690},[],[692],{"type":53,"value":693},"\u002Fplugin install azure@azure-skills",{"type":40,"tag":650,"props":695,"children":696},{},[697,702],{"type":40,"tag":672,"props":698,"children":699},{},[700],{"type":53,"value":701},"Claude Code",{"type":40,"tag":672,"props":703,"children":704},{},[705],{"type":40,"tag":75,"props":706,"children":708},{"className":707},[],[709],{"type":53,"value":710},"\u002Fplugin install azure@claude-plugins-official",{"type":40,"tag":650,"props":712,"children":713},{},[714,719],{"type":40,"tag":672,"props":715,"children":716},{},[717],{"type":53,"value":718},"Codex CLI",{"type":40,"tag":672,"props":720,"children":721},{},[722,728,730,735,737],{"type":40,"tag":75,"props":723,"children":725},{"className":724},[],[726],{"type":53,"value":727},"codex plugin marketplace add microsoft\u002Fazure-skills",{"type":53,"value":729},", then install ",{"type":40,"tag":75,"props":731,"children":733},{"className":732},[],[734],{"type":53,"value":8},{"type":53,"value":736}," from ",{"type":40,"tag":75,"props":738,"children":740},{"className":739},[],[741],{"type":53,"value":742},"\u002Fplugins",{"type":40,"tag":650,"props":744,"children":745},{},[746,751],{"type":40,"tag":672,"props":747,"children":748},{},[749],{"type":53,"value":750},"VS Code",{"type":40,"tag":672,"props":752,"children":753},{},[754],{"type":53,"value":755},"Install the Azure MCP extension and companion Azure Skills integration, then reload VS Code",{"type":40,"tag":650,"props":757,"children":758},{},[759,764],{"type":40,"tag":672,"props":760,"children":761},{},[762],{"type":53,"value":763},"GitHub Copilot fallback",{"type":40,"tag":672,"props":765,"children":766},{},[767],{"type":40,"tag":75,"props":768,"children":770},{"className":769},[],[771],{"type":53,"value":772},"npx skills add https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazure-skills\u002Ftree\u002Fmain\u002F.github\u002Fplugins\u002Fazure-skills\u002Fskills -a github-copilot -g -y",{"type":40,"tag":100,"props":774,"children":776},{"id":775},"fallback-policy",[777],{"type":53,"value":778},"Fallback policy",{"type":40,"tag":45,"props":780,"children":781},{},[782],{"type":53,"value":783},"Prefer Azure Skills for all deployment execution. Use a Functions-specific fallback only when:",{"type":40,"tag":107,"props":785,"children":786},{},[787,792,797],{"type":40,"tag":111,"props":788,"children":789},{},[790],{"type":53,"value":791},"Azure Skills cannot be installed or invoked in the current host,",{"type":40,"tag":111,"props":793,"children":794},{},[795],{"type":53,"value":796},"the user explicitly asks for a quick publish to an existing Function App, or",{"type":40,"tag":111,"props":798,"children":799},{},[800],{"type":53,"value":801},"a scenario is not covered by Azure Skills and must be handled by Azure Functions Core Tools.",{"type":40,"tag":45,"props":803,"children":804},{},[805,807,812,814,819,820,825],{"type":53,"value":806},"Before using a fallback, explain what will be skipped compared with ",{"type":40,"tag":75,"props":808,"children":810},{"className":809},[],[811],{"type":53,"value":80},{"type":53,"value":813}," → ",{"type":40,"tag":75,"props":815,"children":817},{"className":816},[],[818],{"type":53,"value":88},{"type":53,"value":813},{"type":40,"tag":75,"props":821,"children":823},{"className":822},[],[824],{"type":53,"value":96},{"type":53,"value":826},", and ask for confirmation.",{"type":40,"tag":100,"props":828,"children":830},{"id":829},"post-deploy-verification",[831],{"type":53,"value":832},"Post-deploy verification",{"type":40,"tag":45,"props":834,"children":835},{},[836,838,843],{"type":53,"value":837},"Let ",{"type":40,"tag":75,"props":839,"children":841},{"className":840},[],[842],{"type":53,"value":96},{"type":53,"value":844}," own post-deploy verification. Add Azure Functions-specific reminders when relevant:",{"type":40,"tag":107,"props":846,"children":847},{},[848,853,858,871],{"type":40,"tag":111,"props":849,"children":850},{},[851],{"type":53,"value":852},"List deployed functions and verify the app is running.",{"type":40,"tag":111,"props":854,"children":855},{},[856],{"type":53,"value":857},"Test HTTP trigger endpoints with GET, not HEAD.",{"type":40,"tag":111,"props":859,"children":860},{},[861,863,869],{"type":53,"value":862},"Suggest ",{"type":40,"tag":75,"props":864,"children":866},{"className":865},[],[867],{"type":53,"value":868},"azure-functions-health-status",{"type":53,"value":870}," for runtime health, metrics, and Application Insights checks.",{"type":40,"tag":111,"props":872,"children":873},{},[874,875,881],{"type":53,"value":862},{"type":40,"tag":75,"props":876,"children":878},{"className":877},[],[879],{"type":53,"value":880},"azure-functions-best-practices",{"type":53,"value":882}," for production readiness after successful deployment.",{"type":40,"tag":100,"props":884,"children":886},{"id":885},"monitoring-azd-up-progress",[887,889,894],{"type":53,"value":888},"Monitoring ",{"type":40,"tag":75,"props":890,"children":892},{"className":891},[],[893],{"type":53,"value":319},{"type":53,"value":895}," progress",{"type":40,"tag":45,"props":897,"children":898},{},[899,901,906],{"type":53,"value":900},"The ",{"type":40,"tag":75,"props":902,"children":904},{"className":903},[],[905],{"type":53,"value":319},{"type":53,"value":907}," command uses animated progress bars that may not render correctly in agent terminal capture. If the output appears stuck on a spinner (e.g., repeated \"Initialize bicep provider\"), the deployment is likely still progressing normally in the background.",{"type":40,"tag":45,"props":909,"children":910},{},[911],{"type":53,"value":912},"To monitor deployment progress independently:",{"type":40,"tag":511,"props":914,"children":918},{"className":915,"code":916,"language":917,"meta":516,"style":516},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Check resource group creation\naz group show --name rg-\u003Cenv-name> -o json\n\n# Check deployment status\naz deployment group list --resource-group rg-\u003Cenv-name> \\\n  --query \"[].{name:name, state:properties.provisioningState}\" -o table\n\n# Check Function App status\naz functionapp list --resource-group rg-\u003Cenv-name> \\\n  --query \"[].{name:name, state:state}\" -o table\n","bash",[919],{"type":40,"tag":75,"props":920,"children":921},{"__ignoreMap":516},[922,933,996,1006,1015,1067,1100,1108,1117,1162],{"type":40,"tag":923,"props":924,"children":926},"span",{"class":925,"line":25},"line",[927],{"type":40,"tag":923,"props":928,"children":930},{"style":929},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[931],{"type":53,"value":932},"# Check resource group creation\n",{"type":40,"tag":923,"props":934,"children":936},{"class":925,"line":935},2,[937,943,949,954,959,964,970,975,981,986,991],{"type":40,"tag":923,"props":938,"children":940},{"style":939},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[941],{"type":53,"value":942},"az",{"type":40,"tag":923,"props":944,"children":946},{"style":945},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[947],{"type":53,"value":948}," group",{"type":40,"tag":923,"props":950,"children":951},{"style":945},[952],{"type":53,"value":953}," show",{"type":40,"tag":923,"props":955,"children":956},{"style":945},[957],{"type":53,"value":958}," --name",{"type":40,"tag":923,"props":960,"children":961},{"style":945},[962],{"type":53,"value":963}," rg-",{"type":40,"tag":923,"props":965,"children":967},{"style":966},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[968],{"type":53,"value":969},"\u003C",{"type":40,"tag":923,"props":971,"children":972},{"style":945},[973],{"type":53,"value":974},"env-nam",{"type":40,"tag":923,"props":976,"children":978},{"style":977},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[979],{"type":53,"value":980},"e",{"type":40,"tag":923,"props":982,"children":983},{"style":966},[984],{"type":53,"value":985},">",{"type":40,"tag":923,"props":987,"children":988},{"style":945},[989],{"type":53,"value":990}," -o",{"type":40,"tag":923,"props":992,"children":993},{"style":945},[994],{"type":53,"value":995}," json\n",{"type":40,"tag":923,"props":997,"children":999},{"class":925,"line":998},3,[1000],{"type":40,"tag":923,"props":1001,"children":1003},{"emptyLinePlaceholder":1002},true,[1004],{"type":53,"value":1005},"\n",{"type":40,"tag":923,"props":1007,"children":1009},{"class":925,"line":1008},4,[1010],{"type":40,"tag":923,"props":1011,"children":1012},{"style":929},[1013],{"type":53,"value":1014},"# Check deployment status\n",{"type":40,"tag":923,"props":1016,"children":1018},{"class":925,"line":1017},5,[1019,1023,1028,1032,1037,1042,1046,1050,1054,1058,1062],{"type":40,"tag":923,"props":1020,"children":1021},{"style":939},[1022],{"type":53,"value":942},{"type":40,"tag":923,"props":1024,"children":1025},{"style":945},[1026],{"type":53,"value":1027}," deployment",{"type":40,"tag":923,"props":1029,"children":1030},{"style":945},[1031],{"type":53,"value":948},{"type":40,"tag":923,"props":1033,"children":1034},{"style":945},[1035],{"type":53,"value":1036}," list",{"type":40,"tag":923,"props":1038,"children":1039},{"style":945},[1040],{"type":53,"value":1041}," --resource-group",{"type":40,"tag":923,"props":1043,"children":1044},{"style":945},[1045],{"type":53,"value":963},{"type":40,"tag":923,"props":1047,"children":1048},{"style":966},[1049],{"type":53,"value":969},{"type":40,"tag":923,"props":1051,"children":1052},{"style":945},[1053],{"type":53,"value":974},{"type":40,"tag":923,"props":1055,"children":1056},{"style":977},[1057],{"type":53,"value":980},{"type":40,"tag":923,"props":1059,"children":1060},{"style":966},[1061],{"type":53,"value":985},{"type":40,"tag":923,"props":1063,"children":1064},{"style":977},[1065],{"type":53,"value":1066}," \\\n",{"type":40,"tag":923,"props":1068,"children":1070},{"class":925,"line":1069},6,[1071,1076,1081,1086,1091,1095],{"type":40,"tag":923,"props":1072,"children":1073},{"style":945},[1074],{"type":53,"value":1075},"  --query",{"type":40,"tag":923,"props":1077,"children":1078},{"style":966},[1079],{"type":53,"value":1080}," \"",{"type":40,"tag":923,"props":1082,"children":1083},{"style":945},[1084],{"type":53,"value":1085},"[].{name:name, state:properties.provisioningState}",{"type":40,"tag":923,"props":1087,"children":1088},{"style":966},[1089],{"type":53,"value":1090},"\"",{"type":40,"tag":923,"props":1092,"children":1093},{"style":945},[1094],{"type":53,"value":990},{"type":40,"tag":923,"props":1096,"children":1097},{"style":945},[1098],{"type":53,"value":1099}," table\n",{"type":40,"tag":923,"props":1101,"children":1103},{"class":925,"line":1102},7,[1104],{"type":40,"tag":923,"props":1105,"children":1106},{"emptyLinePlaceholder":1002},[1107],{"type":53,"value":1005},{"type":40,"tag":923,"props":1109,"children":1111},{"class":925,"line":1110},8,[1112],{"type":40,"tag":923,"props":1113,"children":1114},{"style":929},[1115],{"type":53,"value":1116},"# Check Function App status\n",{"type":40,"tag":923,"props":1118,"children":1120},{"class":925,"line":1119},9,[1121,1125,1130,1134,1138,1142,1146,1150,1154,1158],{"type":40,"tag":923,"props":1122,"children":1123},{"style":939},[1124],{"type":53,"value":942},{"type":40,"tag":923,"props":1126,"children":1127},{"style":945},[1128],{"type":53,"value":1129}," functionapp",{"type":40,"tag":923,"props":1131,"children":1132},{"style":945},[1133],{"type":53,"value":1036},{"type":40,"tag":923,"props":1135,"children":1136},{"style":945},[1137],{"type":53,"value":1041},{"type":40,"tag":923,"props":1139,"children":1140},{"style":945},[1141],{"type":53,"value":963},{"type":40,"tag":923,"props":1143,"children":1144},{"style":966},[1145],{"type":53,"value":969},{"type":40,"tag":923,"props":1147,"children":1148},{"style":945},[1149],{"type":53,"value":974},{"type":40,"tag":923,"props":1151,"children":1152},{"style":977},[1153],{"type":53,"value":980},{"type":40,"tag":923,"props":1155,"children":1156},{"style":966},[1157],{"type":53,"value":985},{"type":40,"tag":923,"props":1159,"children":1160},{"style":977},[1161],{"type":53,"value":1066},{"type":40,"tag":923,"props":1163,"children":1165},{"class":925,"line":1164},10,[1166,1170,1174,1179,1183,1187],{"type":40,"tag":923,"props":1167,"children":1168},{"style":945},[1169],{"type":53,"value":1075},{"type":40,"tag":923,"props":1171,"children":1172},{"style":966},[1173],{"type":53,"value":1080},{"type":40,"tag":923,"props":1175,"children":1176},{"style":945},[1177],{"type":53,"value":1178},"[].{name:name, state:state}",{"type":40,"tag":923,"props":1180,"children":1181},{"style":966},[1182],{"type":53,"value":1090},{"type":40,"tag":923,"props":1184,"children":1185},{"style":945},[1186],{"type":53,"value":990},{"type":40,"tag":923,"props":1188,"children":1189},{"style":945},[1190],{"type":53,"value":1099},{"type":40,"tag":45,"props":1192,"children":1193},{},[1194,1196,1201],{"type":53,"value":1195},"Do not kill and restart the ",{"type":40,"tag":75,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":53,"value":319},{"type":53,"value":1202}," process based solely on lack of terminal output. Instead, use the commands above to verify whether the deployment is progressing.",{"type":40,"tag":100,"props":1204,"children":1206},{"id":1205},"after-deployment",[1207],{"type":53,"value":1208},"After Deployment",{"type":40,"tag":41,"props":1210,"children":1211},{},[1212],{"type":40,"tag":45,"props":1213,"children":1214},{},[1215,1217,1222],{"type":53,"value":1216},"✅ Your app is deployed through Azure Skills. Consider running ",{"type":40,"tag":75,"props":1218,"children":1220},{"className":1219},[],[1221],{"type":53,"value":880},{"type":53,"value":1223}," for a production readiness review.",{"type":40,"tag":100,"props":1225,"children":1227},{"id":1226},"next-steps",[1228],{"type":53,"value":1229},"Next steps",{"type":40,"tag":107,"props":1231,"children":1232},{},[1233,1245,1269,1281],{"type":40,"tag":111,"props":1234,"children":1235},{},[1236,1238,1243],{"type":53,"value":1237},"On missing Azure Skills, suggest ",{"type":40,"tag":75,"props":1239,"children":1241},{"className":1240},[],[1242],{"type":53,"value":195},{"type":53,"value":1244}," to install or configure the Azure Skills plugin.",{"type":40,"tag":111,"props":1246,"children":1247},{},[1248,1250,1255,1256,1261,1263,1268],{"type":53,"value":1249},"On missing or unvalidated plan, invoke ",{"type":40,"tag":75,"props":1251,"children":1253},{"className":1252},[],[1254],{"type":53,"value":80},{"type":53,"value":570},{"type":40,"tag":75,"props":1257,"children":1259},{"className":1258},[],[1260],{"type":53,"value":88},{"type":53,"value":1262}," before ",{"type":40,"tag":75,"props":1264,"children":1266},{"className":1265},[],[1267],{"type":53,"value":96},{"type":53,"value":239},{"type":40,"tag":111,"props":1270,"children":1271},{},[1272,1274,1279],{"type":53,"value":1273},"On successful deployment, suggest ",{"type":40,"tag":75,"props":1275,"children":1277},{"className":1276},[],[1278],{"type":53,"value":880},{"type":53,"value":1280}," for production readiness.",{"type":40,"tag":111,"props":1282,"children":1283},{},[1284,1286,1292,1294,1299],{"type":53,"value":1285},"On deployment failure, suggest ",{"type":40,"tag":75,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":53,"value":1291},"azure-functions-diagnostics",{"type":53,"value":1293}," after ",{"type":40,"tag":75,"props":1295,"children":1297},{"className":1296},[],[1298],{"type":53,"value":96},{"type":53,"value":1300}," error recovery is exhausted.",{"type":40,"tag":1302,"props":1303,"children":1304},"style",{},[1305],{"type":53,"value":1306},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1308,"total":1401},[1309,1324,1340,1354,1367,1373,1389],{"slug":1310,"name":1310,"fn":1311,"description":1312,"org":1313,"tags":1314,"stars":21,"repoUrl":22,"updatedAt":1323},"azure-functions-agents","build and deploy Azure Functions agents","Build, scaffold, extend, deploy, and troubleshoot Azure Functions serverless agents and event-driven AI agents using the Azure Functions serverless agents runtime. Use when the user says serverless agent, serverless agents, Azure Functions agent, scheduled agent, morning briefing, daily digest, timer agent, inbox summary, email or Teams briefing, background AI workflow, connector-triggered agent, event-driven AI automation, HTTP\u002Fchat agent, webhook-style agent, or Azure Functions hosted agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1315,1318,1319,1320],{"name":1316,"slug":1317,"type":14},"Agents","agents",{"name":11,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":1321,"slug":1322,"type":14},"Serverless","serverless","2026-07-12T08:19:28.200894",{"slug":880,"name":880,"fn":1325,"description":1326,"org":1327,"tags":1328,"stars":21,"repoUrl":22,"updatedAt":1339},"apply Azure Functions best practices","Use when reviewing an existing Azure Function App against Azure Functions best practices and proposing safe, approval-gated remediations for runtime, configuration, identity, security, observability, performance, scale, cost, triggers, and bindings.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1329,1330,1333,1336],{"name":11,"slug":8,"type":14},{"name":1331,"slug":1332,"type":14},"Best Practices","best-practices",{"name":1334,"slug":1335,"type":14},"Observability","observability",{"name":1337,"slug":1338,"type":14},"Security","security","2026-07-15T06:02:48.801578",{"slug":1341,"name":1341,"fn":1342,"description":1343,"org":1344,"tags":1345,"stars":21,"repoUrl":22,"updatedAt":1353},"azure-functions-common","reference Azure Functions documentation and configuration","Shared Azure Functions reference material for the Azure Functions skill suite: runtime\u002Flanguage routing, trigger\u002Fbinding extension references, official docs and repository pointers. Use only when another Azure Functions skill needs reusable language or binding context. Not intended as a standalone user-facing workflow.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1346,1347,1350],{"name":11,"slug":8,"type":14},{"name":1348,"slug":1349,"type":14},"Configuration","configuration",{"name":1351,"slug":1352,"type":14},"Documentation","documentation","2026-07-15T06:02:47.557542",{"slug":368,"name":368,"fn":1355,"description":1356,"org":1357,"tags":1358,"stars":21,"repoUrl":22,"updatedAt":1366},"scaffold Azure Functions projects and triggers","Scaffold a new Azure Functions project, or add a new function\u002Ftrigger to an existing project without re-initializing it",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1359,1362,1363],{"name":1360,"slug":1361,"type":14},"API Development","api-development",{"name":11,"slug":8,"type":14},{"name":1364,"slug":1365,"type":14},"Edge Functions","edge-functions","2026-07-12T08:19:36.401016",{"slug":4,"name":4,"fn":5,"description":6,"org":1368,"tags":1369,"stars":21,"repoUrl":22,"updatedAt":23},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1370,1371,1372],{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},{"slug":1291,"name":1291,"fn":1374,"description":1375,"org":1376,"tags":1377,"stars":21,"repoUrl":22,"updatedAt":1388},"diagnose and resolve Azure Functions issues","Use when diagnosing or resolving Azure Functions issues: deployment failures, runtime errors, trigger\u002Fbinding failures, language worker issues, telemetry\u002Flog analysis, known issue research, source investigation, and remediation. Acts as a facade that routes to focused Azure Functions skills and small language\u002Fextension references.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1378,1379,1382,1385],{"name":11,"slug":8,"type":14},{"name":1380,"slug":1381,"type":14},"Debugging","debugging",{"name":1383,"slug":1384,"type":14},"Logs","logs",{"name":1386,"slug":1387,"type":14},"Monitoring","monitoring","2026-07-12T08:19:30.738425",{"slug":1390,"name":1390,"fn":1391,"description":1392,"org":1393,"tags":1394,"stars":21,"repoUrl":22,"updatedAt":1400},"azure-functions-doctor","diagnose Azure Functions workspace configuration","Analyze local Azure Functions workspace code and configuration for common issues. Produces structured JSON findings for integration with the doctor CLI command. This skill targets local workspaces only — use azure-functions-diagnostics for deployed Azure resources.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1395,1396,1399],{"name":11,"slug":8,"type":14},{"name":1397,"slug":1398,"type":14},"Code Analysis","code-analysis",{"name":1380,"slug":1381,"type":14},"2026-07-15T06:02:46.335328",11,{"items":1403,"total":1572},[1404,1423,1440,1455,1470,1485,1496,1511,1522,1536,1547,1560],{"slug":1405,"name":1405,"fn":1406,"description":1407,"org":1408,"tags":1409,"stars":1420,"repoUrl":1421,"updatedAt":1422},"azure-arg-external-evaluation-policy-author","author and test Azure Resource Graph policies","Use when the user wants to author, design, or test an Azure Policy that queries Azure Resource Graph (ARG) at request-time — i.e. a policy whose deny\u002Faudit decision depends on data from elsewhere in the subscription (sibling\u002Fparent resource state, RG-wide invariants, multi-hop relationships, etc.). Formally called Azure Policy External Evaluation; sometimes referred to colloquially as \"Invoke\". Drives an iterative KQL co-design loop against the user's real subscription via `az graph query`, then emits a policy definition, assignment, `.http` test flow, and an `EXPLANATION.md` companion. Read-only; never provisions anything.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1410,1411,1414,1417],{"name":11,"slug":8,"type":14},{"name":1412,"slug":1413,"type":14},"Compliance","compliance",{"name":1415,"slug":1416,"type":14},"Governance","governance",{"name":1418,"slug":1419,"type":14},"Policy","policy",1686,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-policy","2026-07-12T08:17:48.378432",{"slug":1424,"name":1424,"fn":1425,"description":1426,"org":1427,"tags":1428,"stars":1437,"repoUrl":1438,"updatedAt":1439},"azure-blueprints-migration","migrate Azure Blueprints to Template Specs","Use when a user needs to migrate off Azure Blueprints (definitions and\u002For assignments) to Template Specs and Deployment Stacks before the January 31, 2027 retirement. Covers inventory, export, conversion to Bicep, policy decoupling, Template Spec publishing, Deployment Stack deployment with deny-settings, validation, and cutover.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1429,1430,1431,1434],{"name":11,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":1432,"slug":1433,"type":14},"Infrastructure as Code","infrastructure-as-code",{"name":1435,"slug":1436,"type":14},"Migration","migration",260,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-blueprints","2026-07-12T08:17:49.646405",{"slug":1441,"name":1441,"fn":1442,"description":1443,"org":1444,"tags":1445,"stars":1452,"repoUrl":1453,"updatedAt":1454},"apiview-feedback-resolution","resolve APIView feedback on Azure SDKs","Analyze and resolve APIView review feedback on Azure SDK PRs. **UTILITY SKILL**. USE FOR: APIView comments, API review feedback, SDK API surface changes. DO NOT USE FOR: general code review, non-APIView feedback. INVOKES: azure-sdk-mcp:azsdk_apiview_get_comments, azure-sdk-mcp:azsdk_typespec_customized_code_update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1446,1447,1448,1451],{"name":1360,"slug":1361,"type":14},{"name":11,"slug":8,"type":14},{"name":1449,"slug":1450,"type":14},"Code Review","code-review",{"name":1351,"slug":1352,"type":14},133,"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-tools","2026-07-12T08:17:43.350876",{"slug":1456,"name":1456,"fn":1457,"description":1458,"org":1459,"tags":1460,"stars":1452,"repoUrl":1453,"updatedAt":1469},"azsdk-common-live-and-recorded-tests","deploy resources and run Azure SDK tests","Deploy test resources and run Azure SDK tests in live, record, or playback mode. WHEN: \"run live tests\", \"run recorded tests\", \"deploy test resources\", \"record tests\", \"run tests in record mode\", \"clean up test resources\", \"run tests against live resources\". DO NOT USE FOR: writing new tests, authoring Bicep templates, playback-only test runs without resource deployment. INVOKES: azure-sdk-mcp:azsdk_package_run_tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1461,1462,1463,1466],{"name":11,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":1464,"slug":1465,"type":14},"SDK","sdk",{"name":1467,"slug":1468,"type":14},"Testing","testing","2026-07-12T08:17:44.718943",{"slug":1471,"name":1471,"fn":1472,"description":1473,"org":1474,"tags":1475,"stars":1452,"repoUrl":1453,"updatedAt":1484},"azsdk-common-prepare-release-plan","manage Azure SDK release plan work items","Create, get, update, abandon, and link SDK PRs to release plan work items for Azure SDK releases. **UTILITY SKILL**. USE FOR: \"create release plan\", \"get release plan\", \"update release plan\", \"update API spec in release plan\", \"update SDK details in release plan\", \"abandon release plan\", \"link SDK PR to plan\", \"namespace approval\", \"check release plan status\". DO NOT USE FOR: SDK code generation, pipeline troubleshooting, API review feedback. INVOKES: azure-sdk-mcp:azsdk_create_release_plan, azure-sdk-mcp:azsdk_get_release_plan, azure-sdk-mcp:azsdk_get_release_plan_for_spec_pr, azure-sdk-mcp:azsdk_update_release_plan, azure-sdk-mcp:azsdk_update_api_spec_pull_request_in_release_plan, azure-sdk-mcp:azsdk_update_sdk_details_in_release_plan, azure-sdk-mcp:azsdk_abandon_release_plan, azure-sdk-mcp:azsdk_link_sdk_pull_request_to_release_plan, azure-sdk-mcp:azsdk_link_namespace_approval_issue.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1476,1477,1480,1483],{"name":11,"slug":8,"type":14},{"name":1478,"slug":1479,"type":14},"GitHub","github",{"name":1481,"slug":1482,"type":14},"Project Management","project-management",{"name":1464,"slug":1465,"type":14},"2026-07-12T08:17:38.345387",{"slug":1486,"name":1486,"fn":1487,"description":1488,"org":1489,"tags":1490,"stars":1452,"repoUrl":1453,"updatedAt":1495},"azsdk-common-sdk-release","release Azure SDK packages","Check release readiness and trigger the release pipeline for Azure SDK packages. **UTILITY SKILL**. USE FOR: \"release SDK\", \"trigger release\", \"check release readiness\", \"release pipeline\", \"publish package\", \"ship SDK\". DO NOT USE FOR: SDK development, code generation, pipeline debugging, release plan creation. INVOKES: azure-sdk-mcp:azsdk_release_sdk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1491,1492,1493,1494],{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":16,"slug":17,"type":14},{"name":1464,"slug":1465,"type":14},"2026-07-12T08:17:34.27607",{"slug":1497,"name":1497,"fn":1498,"description":1499,"org":1500,"tags":1501,"stars":1452,"repoUrl":1453,"updatedAt":1510},"azure-typespec-author","author and modify Azure TypeSpec API specifications","Authors and modifies Azure TypeSpec (.tsp) API specifications. USE FOR: any TypeSpec\u002Ftsp change — api versions (add, bump, preview, stable, promote), resources, operations, models, properties, decorators, visibility, constraints, breaking changes, LRO, suppressions, operationId, spread model. Covers ARM resource-manager and data-plane services. DO NOT USE FOR: SDK generation, releasing SDK packages, or single MCP tool calls. INVOKES: azure-sdk-mcp:azsdk_typespec_generate_authoring_plan, azure-sdk-mcp:azsdk_run_typespec_validation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1502,1503,1504,1507],{"name":1360,"slug":1361,"type":14},{"name":11,"slug":8,"type":14},{"name":1505,"slug":1506,"type":14},"OpenAPI","openapi",{"name":1508,"slug":1509,"type":14},"Technical Writing","technical-writing","2026-07-12T08:17:39.603232",{"slug":1512,"name":1512,"fn":1513,"description":1514,"org":1515,"tags":1516,"stars":1452,"repoUrl":1453,"updatedAt":1521},"generate-sdk-locally","generate and test Azure SDKs locally","Generate, build, and test Azure SDKs locally from TypeSpec with automatic customization. WHEN: \"generate SDK locally\", \"build SDK\", \"run SDK tests\", \"run CI checks\", \"validate package\", \"run checks\", \"update changelog\", \"fix SDK build errors\", \"fix breaking changes\", \"resolve SDK generation errors\", \"customize TypeSpec\", \"rename SDK client\", \"rename SDK model\", \"hide operation from SDK\", \"fix analyzer errors\", \"resolve customization drift\", \"create subclient\", \"update metadata\", \"update version\". DO NOT USE FOR: publishing to package registries, CI pipeline configuration, API design review. INVOKES: azsdk_verify_setup, azsdk_package_generate_code, azsdk_package_build_code, azsdk_package_run_check, azsdk_package_run_tests, azsdk_customized_code_update, azsdk_package_update_changelog_content, azsdk_package_update_metadata, azsdk_package_update_version.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1517,1518,1519,1520],{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":1464,"slug":1465,"type":14},{"name":1467,"slug":1468,"type":14},"2026-07-12T08:17:37.08523",{"slug":1523,"name":1523,"fn":1524,"description":1525,"org":1526,"tags":1527,"stars":1452,"repoUrl":1453,"updatedAt":1535},"markdown-token-optimizer","optimize markdown files for token efficiency","Analyze markdown files for token efficiency and reduce context-window bloat. **UTILITY SKILL**. DO NOT USE FOR: code optimization, general file editing, non-markdown files. TRIGGERS: optimize markdown, reduce tokens, token count, token bloat, too many tokens, make concise, shrink file, file too large, optimize for AI, token efficiency, verbose markdown, reduce file size. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1528,1531,1534],{"name":1529,"slug":1530,"type":14},"LLM","llm",{"name":1532,"slug":1533,"type":14},"Performance","performance",{"name":1508,"slug":1509,"type":14},"2026-07-12T08:17:42.080413",{"slug":1537,"name":1537,"fn":1538,"description":1539,"org":1540,"tags":1541,"stars":1452,"repoUrl":1453,"updatedAt":1546},"pipeline-troubleshooting","troubleshoot Azure SDK CI pipelines","Diagnose and resolve failures in Azure SDK CI and generation pipelines. **UTILITY SKILL**. USE FOR: \"pipeline failed\", \"build failure\", \"CI check failing\", \"SDK generation error\", \"reproduce pipeline locally\", \"debug SDK pipeline\". DO NOT USE FOR: local build issues without pipeline context, API design review, SDK publishing. INVOKES: azure-sdk-mcp:azsdk_analyze_pipeline, azure-sdk-mcp:azsdk_package_build_code, azure-sdk-mcp:azsdk_package_run_check.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1542,1543,1544,1545],{"name":11,"slug":8,"type":14},{"name":19,"slug":20,"type":14},{"name":1380,"slug":1381,"type":14},{"name":1464,"slug":1465,"type":14},"2026-07-12T08:17:40.821512",{"slug":1548,"name":1548,"fn":1549,"description":1550,"org":1551,"tags":1552,"stars":1452,"repoUrl":1453,"updatedAt":1559},"sensei","improve skill frontmatter compliance","**WORKFLOW SKILL** — Iteratively improve skill frontmatter compliance using the Ralph loop pattern. WHEN: \"run sensei\", \"sensei help\", \"improve skill\", \"fix frontmatter\", \"skill compliance\", \"frontmatter audit\", \"score skill\", \"check skill tokens\". INVOKES: token counting tools, test runners, git commands. FOR SINGLE OPERATIONS: use token CLI directly for counts\u002Fchecks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1553,1554,1555,1558],{"name":11,"slug":8,"type":14},{"name":1412,"slug":1413,"type":14},{"name":1556,"slug":1557,"type":14},"Process Optimization","process-optimization",{"name":1508,"slug":1509,"type":14},"2026-07-12T08:17:32.970921",{"slug":1561,"name":1561,"fn":1562,"description":1563,"org":1564,"tags":1565,"stars":1452,"repoUrl":1453,"updatedAt":1571},"skill-authoring","author agent skills for agentskills.io","Write Agent Skills that comply with the agentskills.io specification. WHEN: \"create a skill\", \"new skill\", \"write a skill\", \"skill template\", \"skill structure\", \"review skill\", \"skill PR\", \"skill compliance\", \"SKILL.md format\", \"skill frontmatter\", \"skill best practices\". DO NOT USE FOR: improving existing skills (use sensei), general documentation. INVOKES: waza CLI.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1566,1567,1570],{"name":1351,"slug":1352,"type":14},{"name":1568,"slug":1569,"type":14},"Plugin Development","plugin-development",{"name":1508,"slug":1509,"type":14},"2026-07-12T08:17:35.873862",109]