Skip to main content
skill

prepare — Claude Code skill: what it does, how to install

Maps application components to Azure services, calculates pricing, and checks quotas before infrastructure generation.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add microsoft/skills --skill prepare -a claude-code
Open on GitHub

What prepare does

This skill acts as Phase 2 of Microsoft's azure-app-onboard orchestrator. It inspects application requirements, applies Well-Architected Framework guidance, and maps components to Azure services before saving the layout into prepare-plan.json.

The workflow uses tools like mcp_azure_mcp_pricing and az rest, running regional quota checks through a separate subagent. Quota verification applies to compute tiers without exception, including free tiers like F1 and Consumption. If non-Azure .tf files exist, the user chooses between Bicep and Terraform; otherwise, it defaults to Bicep.

The skill cannot run independently because it requires existing prereq-output.json and context.json files in .copilot-azure/sessions/{id}/.

What it helps with

  • map application components to Azure services
  • estimate monthly Azure infrastructure costs
  • validate regional quota limits and subscription policies
  • prepare resource specifications for Bicep or Terraform

Example prompts for the agent

  • Run the prepare phase for the Azure onboarding session
  • Estimate Azure monthly costs and map services using prereq-output.json
  • Validate subscription quotas and select SKUs for project components

How to install prepare

1Skills CLI (Vercel)

npx skills add microsoft/skills --skill prepare -a claude-code

2Manually: put the files in place

~/.claude/skills/prepare/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/prepare/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about prepare

How to install prepare in Claude Code?

Run npx skills add microsoft/skills --skill prepare -a claude-code. The file will be saved to ~/.claude/skills/prepare/SKILL.md.

Can prepare be triggered directly by a user?

No, it is not directly user-routable. It must be called by the azure-app-onboard orchestrator after prereq-output.json is generated.

How does it estimate costs if the pricing MCP tool fails?

It dispatches subagent-pricing.md as a fallback task. The subagent queries prices.azure.com directly over HTTP.

Source text

SKILL.md · MIT
# Prepare — Architecture Planning & Cost Estimation

## Quick Reference

| Property | Value |
|----------|-------|
| Best for | Mapping app components to Azure services with cost estimation and quota validation |
| Inputs | `prereq-output.json` + `context.json` from `.copilot-azure/sessions/{id}/` |
| Outputs | `prepare-plan.json` written to session directory |
| Parent | [azure-app-onboard](../SKILL.md) |

## When to Use This Skill

Invoked by the `azure-app-onboard` orchestrator at Phase 2 when `prereq-output.json` exists. Not directly user-routable.

> **Return to orchestrator:** When complete, return control to `azure-app-onboard`. Do NOT directly invoke scaffold or deploy.

## When NOT to Use

| Scenario | Use Instead |
|----------|-------------|
| Code readiness or prereq scanning | `azure-app-onboard` Step 3 (prereq) |
| IaC generation from a completed plan | `azure-app-onboard` Step 7 (scaffold) |
| Deploying resources to Azure | `azure-app-onboard` Step 9 (deploy) |
| Optimizing existing Azure spend | `cost-optimization` from the optional `azure-cost` plugin |
| Estimating VM-specific costs | `azure-compute` |
| Enterprise landing zone architecture | `azure-enterprise-infra-planner` |

If `cost-optimization` is unavailable, explain that it is provided by the
optional `azure-cost` plugin and direct the user to their client's supported
plugin installation flow; do not imply the handoff completed.

## MCP Tools

| Tool | Purpose |
|------|----------|
| `mcp_azure_mcp_pricing` / `azure-pricing` (router → `command: pricing_get`) | Cost estimation (inline — see Step 6). Fallback: dispatch [`subagent-pricing.md`](references/subagent-pricing.md) |
| `mcp_azure_mcp_policy` | Subscription policy constraints |
| `az rest` | Quota validation (via sub-agent — see Step 5) |
| `mcp_azure_mcp_cloudarchitect` → `cloudarchitect_design` | WAF-aligned architecture design |
| `mcp_azure_mcp_wellarchitectedframework` | Per-service WAF guidance |
| `mcp_azure_mcp_advisor` → `advisor_recommendation_list` | Optimization recommendations |

## Workflow

| # | Step | Action | Reference |
|---|------|--------|-----------|
| 1 | **Read session state** | Load `prereq-output.json` + `context.json`. Resolve subscription | Cross-ref [subscription-resolution.md](../references/subscription-resolution.md) if needed |
| 2 | **Query policy constraints** | Inline MCP: fetch policy + advisor recommendations | `mcp_azure_mcp_policy` + `mcp_azure_mcp_advisor` |
| 3 | **Map components to services** | Per-component Azure service selection, Dockerfile routing, deploy-as-is | ⛔ **You MUST read [service-mapping.md](references/service-mapping.md) and [deploy-strategy.md](references/deploy-strategy.md)** |
| 4 | **Select SKUs + WAF analysis** | Budget-aware SKU selection, inline WAF service guidance | ⛔ **You MUST read [sku-matrix.md](references/sku-matrix.md)** |
| 5 | **Validate quotas + region capacity** | ⛔ Read [`subagent-quota.md`](references/subagent-quota.md) → dispatch as `task` (NEXT action MUST be `task`, ⛔ agent_type: `"task"` — NEVER `"general-purpose"`). Copy the **COMPLETE and UNMODIFIED** template text into the task prompt between `<<<TEMPLATE_START>>>` / `<<<TEMPLATE_END>>>` delimiters — do NOT summarize. Append the caller-provided inputs listed in [`subagent-quota.md`](references/subagent-quota.md)'s Input table AFTER the template block. ⛔ **After dispatching, proceed to Step 6 (cost estimation) while the subagent runs. Do NOT run quota checks yourself — the subagent handles it. Collect subagent results before Step 9 (write plan).** | ⛔ **You MUST read [`subagent-quota.md`](references/subagent-quota.md)** |
| 6 | **Estimate costs** | ⛔ **You MUST read [pricing-guide.md](references/pricing-guide.md)** for methodology, then [pricing-guide-services.md](references/pricing-guide-services.md) for per-service filters. Call the pricing router (`mcp_azure_mcp_pricing`/`azure-pricing`) with `command: "pricing_get"` + a `parameters{}` object inline per paid service. If MCP unavailable or fails → ⛔ Read [`subagent-pricing.md`](references/subagent-pricing.md) → dispatch as `task` (NEXT action MUST be `task`, ⛔ agent_type: `"task"` — NEVER `"general-purpose"`). Copy the **COMPLETE and UNMODIFIED** template text into the task prompt between `<<<TEMPLATE_START>>>` / `<<<TEMPLATE_END>>>` delimiters — do NOT summarize. Append data (services[], region, budget tier) AFTER the template block. Write results to `prepare-plan.json.costEstimate`. | [pricing-guide.md](references/pricing-guide.md) |
| 7 | **Generate naming** | Centralized naming: suffix, prefix, all resource names | ⛔ **You MUST read [naming-patterns.md](references/naming-patterns.md)** |
| 8 | **Determine IaC format** | Existing non-Azure `.tf` → `ask_user` Bicep vs TF, write to `overrides[].iacFormat`. No `.tf` → default Bicep. | (inline) |
| 9 | **Write prepare-plan.json** | Per `PreparePlan` schema. Include postDeployRecommendations, deploymentVariables | ⛔ **You MUST read [prepare-schemas.ts](references/prepare-schemas.ts)** for `PreparePlan` schema |
| 10 | **Return summary** | Structured summary for orchestrator approval gate | (inline — 1 line) |
| 11 | **Validate plan** | 4-dimension check: Goal Alignment, WAF Alignment, Dependency Completeness, Deployment Viability. Fix inline on failure, document tradeoffs in `assumptions[]`. | All must pass before writing |

### Step 5 — Post-Quota Validation

> ⛔ **NEVER present a region without checking quota first.** Skipping quota validation causes cascading deploy failures and extended healing loops.
> ⛔ If plan includes PostgreSQL/MySQL, verify `offerRestrictionsVerified: true` — if false/missing, region is blocked. Do NOT proceed to scaffold with unchecked DB services.
> ⛔ **Free ≠ unlimited.** Every compute SKU — including F1, Consumption, and Serverless tiers — has a per-subscription, per-region quota. Do NOT skip quota checks because a SKU is free.
> ⛔ After region fallback, update ALL `services[].region` in `prepare-plan.json`. Do not leave stale values.

## Error Handling

| Error | Remediation |
|-------|-------------|
| Pricing API 400 | Verify `--sku` included. Free tiers: skip API |
| MCP pricing unavailable | Dispatch [`subagent-pricing.md`](references/subagent-pricing.md) as `task` fallback (uses direct HTTP to `prices.azure.com`) |
| Prereq output missing | Trigger prereq backfill |
| Quota check fails | Fall back to best-effort estimate + disclaimer |
| Override conflicts | Re-run from Step 3 with new constraints |

© microsoft · MIT · microsoft/skills

Similar skills

All skills for Cloud: AWS, Azure, GCP →

From the same set242

The whole set →
azure-kubernetes-app-deploy Containerizes web apps and APIs to deploy them directly onto an active Azure Kubernetes Service cluster. Validates manifests against AKS Deployment Safeguards. ★ 3,149repo stars azure-kubernetes Plans and configures Azure Kubernetes Service clusters, covering SKU choice, networking, security, observability, upgrades, and cost decisions. ★ 3,149repo stars azure-enterprise-infra-planner The skill plans enterprise Azure infrastructure from a workload description and generates Bicep or Terraform. Useful when you need a landing zone, hub-spoke network or DR topology. ★ 3,149repo stars scaffold Turns the service list in prepare-plan.json into Bicep templates with secure-by-default settings. Runs as part of the azure-app-onboard pipeline. ★ 3,149repo stars azure-app-onboard Takes a business idea or existing codebase to a running Azure deployment: picks services, estimates cost, writes IaC. ★ 3,149repo stars azure-app-onboard-prereq Assesses source code readiness before initiating Azure infrastructure deployment. It checks dependencies, frameworks, and tools without running build commands. ★ 3,149repo stars airunway-aks-setup Guides AI Runway setup on an existing AKS cluster, from checking nodes to deploying a model. Use it to install the controller and configure an inference provider. ★ 3,149repo stars azure-servicebus-ts This skill guides TypeScript work with Azure Service Bus queues, topics, sessions, and dead-letter flows. Use it when building message-driven applications. ★ 3,149repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor