Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design, create, review, migrate, or troubleshoot Azure Developer CLI (azd) projects using current Microsoft guidance. Use for azd, azure.yaml, AZD templates, Bicep or Terraform under infra, AZD environments and secrets, hooks, deployment workflows, and azd-managed CI/CD.
.claude/skills/github-azure-developer-cli/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 135% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 77% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 94% | 0% |
| case-11 | ✓→✓ | = Same ✓ | 37% | 0% |
Use this skill to produce maintainable, secure, environment-aware azd projects. Prefer repository conventions when they are already coherent, and make the smallest complete change that improves the project.
Before editing:
azure.yaml, the configured infra.path, source projects, deployment scripts, .gitignore, and pipeline definitions.azure.yaml before inferring services or the IaC provider.azure.yaml: references/project-structure.mdDo not assume the default infra path, the default Bicep provider, or a single service when azure.yaml says otherwise.
.azure, environment .env files, credentials, deployment outputs containing secrets, local Terraform state, or generated deployment artifacts.azure.yaml, IaC parameter files, hooks, source control, command arguments that will be logged, or IaC outputs.azd env set-secret when a secret is unavoidable.azd up, azd provision, azd deploy, azd down, or azd pipeline config.azd project.| Concern | Preferred default | | --- | --- | | Project manifest | One azure.yaml at the repository root | | Application code | src/<service-name> per independently deployable service | | Infrastructure | infra with a thin entry point and reusable modules | | IaC provider | Bicep unless the repository or user chooses Terraform | | Deployment environments | Separate named environments for dev, test, staging, and production | | Local AZD state | .azure/<environment-name> and excluded from source control | | Shared environment state | AZD remote environments backed by Azure Blob Storage | | Secrets | Managed identity/RBAC first, then Key Vault references | | Automation scripts | Short, idempotent scripts under scripts/azd | | CI authentication | Workload identity federation/OIDC where supported | | Routine development | azd up for simple workflows; separate phases for controlled workflows |
services entry for each independently deployable component.project, language, and host.azure.yaml fields instead of relying on file order.main.bicep or main.tf as the orchestration entry point.<project>-dev for shared environments and <alias>-dev for personal environments.azd env set, azd env unset, and azd env set-secret rather than editing .env directly.-e or --environment in scripts and automation so the target is explicit.azd env refresh to synchronize deployment outputs after another actor changes an environment.scripts/azd.shell explicitly. Provide windows and posix variants when necessary.azd hooks run <hook-name>.azd pipeline config.--no-prompt in automation.Run only checks applicable to the repository:
textApplication: existing formatter, linter, type-check, build, and tests Bicep: az bicep build --file infra/main.bicep Terraform: terraform fmt -check -recursive terraform init -backend=false terraform validate AZD hooks: azd hooks run <hook-name> Packaging: azd package
For a Bicep what-if or Terraform plan, choose the correct deployment scope and environment. These checks can authenticate to Azure or read remote state, so follow the safety guardrails.
Verify that:
azure.yaml paths exist and service settings match the source projects.azure.yaml..gitignore excludes .azure, secrets, local state, and generated artifacts.State:
Do not claim deployment success unless the target environment was actually deployed and verified.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 29,771 | 16,621 | -44% | 1 | 1 | 0% | 5,884 | 4,500 | -24% | 0 | 0 | — |
case-02 | fail→fail | 26,163 | 13,693 | -48% | 1 | 1 | 0% | 4,568 | 1,970 | -57% | 0 | 0 | — |
case-03 | fail→fail | 32,384 | 31,281 | -3% | 1 | 1 | 0% | 6,631 | 6,780 | +2% | 0 | 0 | — |
case-04 | fail→pass | 10,327 | 11,919 | +15% | 1 | 1 | 0% | 1,746 | 3,320 | +90% | 0 | 0 | — |
case-05 | fail→pass | 7,336 | 8,446 | +15% | 1 | 1 | 0% | 1,174 | 2,756 | +135% | 0 | 0 | — |
case-06 | pass→pass | 7,597 | 4,210 | -45% | 1 | 1 | 0% | 1,170 | 2,271 | +94% | 0 | 0 | — |
case-11 | pass→pass | 13,280 | 6,343 | -52% | 1 | 1 | 0% | 1,987 | 2,713 | +37% | 0 | 0 | — |
case-07 | pass→pass | 8,531 | 5,241 | -39% | 1 | 1 | 0% | 1,252 | 2,287 | +83% | 0 | 0 | — |
case-08 | pass→pass | 5,941 | 7,400 | +25% | 1 | 1 | 0% | 1,005 | 2,325 | +131% | 0 | 0 | — |
case-09 | pass→pass | 10,111 | 7,793 | -23% | 1 | 1 | 0% | 1,420 | 2,588 | +82% | 0 | 0 | — |
case-10 | pass→pass | 12,589 | 11,559 | -8% | 1 | 1 | 0% | 1,981 | 3,196 | +61% | 0 | 0 | — |
case-12 | pass→pass | 12,882 | 10,476 | -19% | 1 | 1 | 0% | 2,476 | 3,429 | +38% | 0 | 0 | — |
case-13 | pass→pass | 10,484 | 5,809 | -45% | 1 | 1 | 0% | 1,531 | 2,540 | +66% | 0 | 0 | — |
case-14 | pass→pass | 14,122 | 14,289 | +1% | 1 | 1 | 0% | 2,031 | 3,636 | +79% | 0 | 0 | — |
case-15 | pass→pass | 5,156 | 3,322 | -36% | 1 | 1 | 0% | 773 | 2,049 | +165% | 0 | 0 | — |
case-16 | fail→pass | 14,255 | 10,857 | -24% | 1 | 1 | 0% | 2,061 | 3,646 | +77% | 0 | 0 | — |
case-17 | fail→fail | 12,627 | 10,526 | -17% | 1 | 1 | 0% | 1,723 | 3,334 | +93% | 0 | 0 | — |
case-18 | pass→pass | 5,417 | 4,571 | -16% | 1 | 1 | 0% | 715 | 2,312 | +223% | 0 | 0 | — |
case-19 | pass→pass | 7,705 | 9,618 | +25% | 1 | 1 | 0% | 1,053 | 2,970 | +182% | 0 | 0 | — |
case-20 | pass→pass | 8,347 | 5,725 | -31% | 1 | 1 | 0% | 1,178 | 2,629 | +123% | 0 | 0 | — |
case-21 | pass→pass | 11,919 | 11,988 | +1% | 1 | 1 | 0% | 2,297 | 3,338 | +45% | 0 | 0 | — |
case-22 | pass→pass | 7,574 | 6,109 | -19% | 1 | 1 | 0% | 1,153 | 2,761 | +139% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +14 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.