Prepare Azure apps for deployment (infra Bicep/Terraform, azure.yaml, Dockerfiles). Use for create/modernize or create+deploy; not cross-cloud migration (use azure-cloud-migrate). DO NOT USE FOR: copilot-sdk apps (use azure-hosted-copilot-sdk). WHEN: "create app", "build web app", "create API", "create serverless HTTP API", "create frontend", "create back end", "build a service", "modernize application", "update application", "add authentication", "add caching", "host on Azure", "create and deploy", "deploy to Azure", "deploy to Azure using Terraform", "deploy to Azure App Service", "deploy to Azure App Service using Terraform", "deploy to Azure Container Apps", "deploy to Azure Container Apps using Terraform", "generate Terraform", "generate Bicep", "function app", "timer trigger", "service bus trigger", "event-driven function", "containerized Node.js app", "social media app", "static portfolio website", "todo list with frontend and API", "prepare my Azure application to use Key Vault", "managed identity".
63
73%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Failed to scan
The risk profile of this skill
Optimize this skill with Tessl
npx tessl skill review --optimize ./.github/plugins/azure-skills/skills/azure-prepare/SKILL.mdQuality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong skill description that excels across all dimensions. It provides specific capabilities, extensive natural trigger terms, clear what/when guidance, and explicit boundary-setting with named alternative skills for overlapping scenarios. The only minor concern is that the sheer length of the trigger list could be slightly unwieldy, but it serves the purpose of disambiguation well.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: prepare Azure apps for deployment, infrastructure via Bicep/Terraform, azure.yaml, Dockerfiles, create/modernize apps, add authentication, add caching, and more. Very detailed about what it does. | 3 / 3 |
Completeness | Clearly answers both 'what' (prepare Azure apps for deployment with infra Bicep/Terraform, azure.yaml, Dockerfiles) and 'when' with an extensive explicit WHEN clause listing numerous trigger phrases. Also includes explicit exclusions (DO NOT USE FOR) which further clarifies when to use it. | 3 / 3 |
Trigger Term Quality | Excellent coverage of natural user phrases including 'create app', 'build web app', 'deploy to Azure', 'generate Terraform', 'generate Bicep', 'function app', 'todo list with frontend and API', 'static portfolio website', and many more variations users would naturally say. | 3 / 3 |
Distinctiveness Conflict Risk | Explicitly distinguishes itself from related skills by name: 'not cross-cloud migration (use azure-cloud-migrate)' and 'DO NOT USE FOR: copilot-sdk apps (use azure-hosted-copilot-sdk)'. This clear boundary-setting with named alternatives makes it highly distinctive and reduces conflict risk. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
47%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The skill has excellent workflow clarity with well-defined phases, blocking gates, and validation checkpoints that would guide Claude through a complex multi-step Azure deployment preparation process. However, it is severely undermined by extreme verbosity and repetition — critical instructions like the plan-first requirement and the azure-validate hand-off are restated 3-5 times each, wasting significant token budget. The actionability is moderate since concrete implementation details are delegated to reference files, leaving the main skill as an orchestration document with limited executable content.
Suggestions
Consolidate the repeated plan-first and azure-validate instructions into single authoritative statements — the plan requirement is stated in Rules #1, the PLAN-FIRST WORKFLOW box, Phase 1 intro, and Phase 1 Step 6; reduce to one clear statement plus a brief reminder at the phase boundary.
Add at least one concrete example of what `.azure/deployment-plan.md` should look like (even a minimal skeleton) directly in the skill, rather than only referencing plan-template.md.
Remove redundant warning boxes (⛔, ❌, ⚠️) that repeat the same information — for example, the 'Next' section at the bottom largely duplicates Phase 2 Step 7 and Rules #5 and #9.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Extremely verbose and repetitive. The same instructions are stated multiple times — the plan-first requirement is repeated at least 4-5 times with nearly identical wording (Rules #1, the PLAN-FIRST WORKFLOW box, Phase 1 intro, Phase 1 Step 6). The mandatory hand-off to azure-validate is repeated 3+ times. The file name `.azure/deployment-plan.md` is mentioned over a dozen times. Much of this redundancy wastes tokens without adding clarity. | 1 / 3 |
Actionability | The skill provides structured steps with references to external files for concrete details, and includes specific file paths and tool names (azd, Bicep, Terraform). However, the skill itself contains no executable code examples, no concrete command snippets beyond mentioning `azd init -t`, and delegates nearly all concrete guidance to reference files that are not provided. The routing tables and phase tables are helpful but still abstract. | 2 / 3 |
Workflow Clarity | The two-phase workflow (Planning → Execution) is clearly sequenced with numbered steps, explicit blocking gates ('STOP HERE — Do NOT proceed to Phase 2 until the user approves'), mandatory validation checkpoints (update plan status before hand-off, invoke azure-validate before azure-deploy), and error prevention rules. Feedback loops are present (destructive actions require ask_user, validate before deploy). | 3 / 3 |
Progressive Disclosure | The skill references many external files (references/analyze.md, references/requirements.md, etc.) which is good progressive disclosure structure. However, no bundle files were provided so we cannot verify these exist, and the main SKILL.md itself is very long (~200+ lines) with significant inline repetition that could be condensed. The SDK Quick References section is a good example of well-structured disclosure, but the repeated mandatory warnings bloat the main file. | 2 / 3 |
Total | 8 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
d02fd24
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.