Azure app onboard skill

End-to-end orchestrator: from a business idea, app idea, or existing app to running Azure deployment with cost estimates and pre-deploy approval.

by microsoft·MIT license·★ 3,077 Stars on the repo·GitHub ↗

Use now

Files of Azure app onboard

microsoft/main1 file shown
SKILL.md
Show the full text80 lines

Azure App Onboard

⛔ Every repo goes through the full pipeline (Steps 1–10). No exceptions. Do not skip steps, refuse, or short-circuit based on what you recognize. Follow the Workflow table below sequentially — read each step's references before acting.

Quick Reference

Property Value
Best for Developers who know what to build but not which Azure services to use
Inputs Business idea or existing codebase, budget/scale preferences (optional)
Outputs Architecture plan, cost estimate, IaC files, deployed Azure resources
Phases Discover → Architect → Scaffold → Deploy (self-contained, no external skill calls)

When to Use This Skill

  • Deploy existing code without knowing which Azure services to use
  • Check if your existing code is ready to deploy to Azure
  • Move an existing app to Azure without rewriting or with minimal changes
  • Get cost estimates before committing to infrastructure
  • Understand architecture decisions and rejected alternatives
  • Get answers to Azure architecture or service selection questions (e.g., "What database should I use?")
  • Get guided Azure onboarding without prior experience

When NOT to Use

Scenario Use Instead
Run azd up or execute an existing deployment azure-deploy
Optimize existing Azure spend cost-optimization from the optional azure-cost plugin
Generate Bicep/Terraform for a known architecture azure-prepare
Validate infrastructure or run preflight checks azure-validate
Troubleshoot a running Azure deployment azure-diagnostics
Deploy to or manage AKS/Kubernetes directly azure-kubernetes
Look up or list existing Azure resources azure-resource-lookup

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.

Pipeline Rules

⛔ You MUST read references/pipeline-rules.md at the start of every AppOnboard session. It contains approval gates, phase lifecycle, session artifacts, deploy-as-is, and security baseline rules.

Workflow

⛔ Deploy recovery: After deploy gate approval OR before any az deployment/az webapp deploy/az acr build — if you haven't read deploy/SKILL.md, read .copilot-azure/sessions/{id}/deploy-checklist.md first, then deploy/SKILL.md. ⛔ NEVER invoke {"skill": "azure-deploy"} — that is a DIFFERENT skill for a DIFFERENT workflow.

⛔ Post-scaffold transition (MANDATORY): Immediately after scaffold-manifest.json is written, YOUR NEXT ACTION MUST be Step 8 (Deploy Approval Gate) — NOT a summary report, NOT a "here are the generated files" message, NOT a completion signal. Confirm context.json has completedPhases: [...,"scaffold"] + currentPhase: "deploy" (update it yourself if the scaffold subagent didn't). Re-read approval-gates.md § Deploy Gate if evicted from context (scaffold reference loading is heavy), then present the exact prompt: "🚀 Ready to deploy? (Yes / Run manually / Edit plan / Cancel)". This gate is the LAST content in your response — wait for the user's reply.

# Step Action Reference
1 Session check + Azure login Create/resume session, verify Azure CLI auth, resolve subscription + user identity ⛔ You MUST read session-protocol.md
2 Scope triage Check azd markers, triage question. Empty workspace or code-only (no infra) → Step 3 directly. ⛔ Read intent-gathering.md § Scope Triage
3 Prereq scan ⛔ Skip if completedPhases includes "prereq". Otherwise: invoke {"skill": "azure-app-onboard-prereq"}. Write prereq-output.json, update context.json. Halt if: overallHealth: "blocked" OR routeToSkill set.
4 Gather intent Present prereq results, confirm stack + Azure services, ask remaining questions. ⛔ Read intent-gathering.md § After Prereq Returns
5 Plan architecture Write prepare-plan.json. ⛔ You MUST read prepare/SKILL.md
6 Scaffold approval gate Display plan for user approval BEFORE generating any files. ⛔ Read approval-gates.md § Scaffold Gate
7 Scaffold Generate IaC, self-review. Write scaffold-manifest.json. Update context.json. ⛔ You MUST read scaffold/SKILL.md
8 Deploy approval gate Display validation summary. ⛔ After approval: FIRST read deploy-checklist.md → deploy/SKILL.md. NEVER {"skill": "azure-deploy"}. ⛔ Read approval-gates.md § Deploy Gate
9 Deploy Execute IaC, health-check. Write deploy-result.json. ⛔ You MUST read deploy/SKILL.md
10 Handoff Surface deployment identity, cleanup commands, next steps. ⛔ You MUST read handoff-protocol.md

Error Handling

Error Remediation
Phase fails Halt, report phase + error. User decides: retry, skip, abort.
MCP server unavailable Skip affected checks, add disclaimer to costEstimate.assumptions[] and every approval gate.
Missing RBAC Report required role + az role assignment command.

Shared references: MCP tools (cross-phase tool parameters) | IaC resources (Azure resource docs for troubleshooting)

1---
2name: azure-app-onboard
3description: "End-to-end orchestrator: from a business idea, app idea, or existing app to running Azure deployment with cost estimates and pre-deploy approval. Analyzes your app, auto-detects the right Azure services, scaffolds infrastructure code, and deploys — tailored to your app, not a template. Handles moving existing apps to Azure without rewriting or with minimal changes. WHEN: bring your app to Azure, plan my app, cost to run, is my code ready to deploy, deploy my app to the cloud, deploy all my services, what Azure services do I need, plan my Azure deployment, deploy my new app to Azure, one-click deploy, I have an app and want it on Azure, migrate my app to Azure, help me get started, build an app, no code yet, starter project. DO NOT USE FOR: use azd for deployment(use azure-deploy), optimizing existing costs (use cost-optimization), code readiness checks only (use azure-app-onboard-prereq)."
4license: MIT
5metadata:
6 author: Microsoft
7 version: "1.2.5"
8---
9 
10# Azure App Onboard
11 
12> ⛔ **Every repo goes through the full pipeline (Steps 1–10). No exceptions.** Do not skip steps, refuse, or short-circuit based on what you recognize. Follow the Workflow table below sequentially — read each step's references before acting.
13 
14## Quick Reference
15 
16| Property | Value |
17|----------|-------|
18| Best for | Developers who know what to build but not which Azure services to use |
19| Inputs | Business idea or existing codebase, budget/scale preferences (optional) |
20| Outputs | Architecture plan, cost estimate, IaC files, deployed Azure resources |
21| Phases | Discover → Architect → Scaffold → Deploy (self-contained, no external skill calls) |
22 
23## When to Use This Skill
24 
25- Deploy existing code without knowing which Azure services to use
26- Check if your existing code is ready to deploy to Azure
27- Move an existing app to Azure without rewriting or with minimal changes
28- Get cost estimates before committing to infrastructure
29- Understand architecture decisions and rejected alternatives
30- Get answers to Azure architecture or service selection questions (e.g., "What database should I use?")
31- Get guided Azure onboarding without prior experience
32 
33## When NOT to Use
34 
35| Scenario | Use Instead |
36|----------|-------------|
37| Run `azd up` or execute an existing deployment | `azure-deploy` |
38| Optimize existing Azure spend | `cost-optimization` from the optional `azure-cost` plugin |
39| Generate Bicep/Terraform for a known architecture | `azure-prepare` |
40| Validate infrastructure or run preflight checks | `azure-validate` |
41| Troubleshoot a running Azure deployment | `azure-diagnostics` |
42| Deploy to or manage AKS/Kubernetes directly | `azure-kubernetes` |
43| Look up or list existing Azure resources | `azure-resource-lookup` |
44 
45If `cost-optimization` is unavailable, explain that it is provided by the
46optional `azure-cost` plugin and direct the user to their client's supported
47plugin installation flow; do not imply the handoff completed.
48 
49## Pipeline Rules
50 
51> ⛔ **You MUST read [`references/pipeline-rules.md`](references/pipeline-rules.md) at the start of every AppOnboard session.** It contains approval gates, phase lifecycle, session artifacts, deploy-as-is, and security baseline rules.
52 
53## Workflow
54 
55> ⛔ **Deploy recovery:** After deploy gate approval OR before any `az deployment`/`az webapp deploy`/`az acr build` — if you haven't read `deploy/SKILL.md`, read `.copilot-azure/sessions/{id}/deploy-checklist.md` first, then `deploy/SKILL.md`. ⛔ NEVER invoke `{"skill": "azure-deploy"}` — that is a DIFFERENT skill for a DIFFERENT workflow.
56 
57> ⛔ **Post-scaffold transition (MANDATORY):** Immediately after `scaffold-manifest.json` is written, YOUR NEXT ACTION MUST be Step 8 (Deploy Approval Gate) — NOT a summary report, NOT a "here are the generated files" message, NOT a completion signal. Confirm `context.json` has `completedPhases: [...,"scaffold"]` + `currentPhase: "deploy"` (update it yourself if the scaffold subagent didn't). Re-read [approval-gates.md § Deploy Gate](references/approval-gates.md) if evicted from context (scaffold reference loading is heavy), then present the exact prompt: **"🚀 Ready to deploy? (Yes / Run manually / Edit plan / Cancel)"**. This gate is the LAST content in your response — wait for the user's reply.
58 
59| # | Step | Action | Reference |
60|---|------|--------|-----------|
61| 1 | **Session check + Azure login** | Create/resume session, verify Azure CLI auth, resolve subscription + user identity | ⛔ **You MUST read [session-protocol.md](references/session-protocol.md)** |
62| 2 | **Scope triage** | Check azd markers, triage question. Empty workspace or code-only (no infra) → Step 3 directly. | ⛔ Read [intent-gathering.md](references/intent-gathering.md) § Scope Triage |
63| 3 | **Prereq scan** | ⛔ Skip if `completedPhases` includes `"prereq"`. Otherwise: invoke `{"skill": "azure-app-onboard-prereq"}`. Write `prereq-output.json`, update `context.json`. **Halt if:** `overallHealth: "blocked"` OR `routeToSkill` set. | |
64| 4 | **Gather intent** | Present prereq results, confirm stack + Azure services, ask remaining questions. | ⛔ Read [intent-gathering.md](references/intent-gathering.md) § After Prereq Returns |
65| 5 | **Plan architecture** | Write `prepare-plan.json`. | ⛔ **You MUST read [prepare/SKILL.md](prepare/SKILL.md)** |
66| 6 | **Scaffold approval gate** | Display plan for user approval BEFORE generating any files. | ⛔ Read [approval-gates.md](references/approval-gates.md) § Scaffold Gate |
67| 7 | **Scaffold** | Generate IaC, self-review. Write `scaffold-manifest.json`. Update `context.json`. | ⛔ **You MUST read [scaffold/SKILL.md](scaffold/SKILL.md)** |
68| 8 | **Deploy approval gate** | Display validation summary. ⛔ After approval: FIRST read deploy-checklist.md → deploy/SKILL.md. NEVER `{"skill": "azure-deploy"}`. | ⛔ Read [approval-gates.md](references/approval-gates.md) § Deploy Gate |
69| 9 | **Deploy** | Execute IaC, health-check. Write `deploy-result.json`. | ⛔ **You MUST read [deploy/SKILL.md](deploy/SKILL.md)** |
70| 10 | **Handoff** | Surface deployment identity, cleanup commands, next steps. | ⛔ **You MUST read [`handoff-protocol.md`](references/handoff-protocol.md)** |
71 
72## Error Handling
73 
74| Error | Remediation |
75|-------|-------------|
76| Phase fails | Halt, report phase + error. User decides: retry, skip, abort. |
77| MCP server unavailable | Skip affected checks, add disclaimer to `costEstimate.assumptions[]` and every approval gate. |
78| Missing RBAC | Report required role + `az role assignment` command. |
79 
80> **Shared references:** [MCP tools](references/mcp-tool-reference.md) (cross-phase tool parameters) | [IaC resources](references/iac-resources.md) (Azure resource docs for troubleshooting)

Discussion

Alternatives

Azure App Onboard Prereq — Repository EvaluationAssess whether source code is ready to deploy to Azure — the check BEFORE infrastructure work. Evaluates build health, app completeness, dependencies and local services, stack compatibility, and deployment feasibility. Answers questions about what your app needs before it can be deployed — frameworks, dependencies, and configuration. Checks whether dependencies are compatible and identifies deployment blockers and unsupported frameworks. WHEN: "evaluate my repo", "is my app ready to deploy", "what does my app need to deploy", "what do I need before deploying", "does my app need", "can I ship this to Azure", "scan my repo for issues", "is this app deployable", "check if my app is ready for Azure", "do I need a Dockerfile", "what's blocking my deployment", "are there any blockers", "are my dependencies compatible", "does Azure support my framework", "what needs to change before deploying", "check my app configuration".Infrastructure & ops · MITDocker MCP gatewayDocker's own CLI plugin: run any server from the Docker MCP Catalog in its own container, behind one connection, with secrets kept out of env vars.Coding · MITAzure cloud migrateAssess and migrate cross-cloud workloads to Azure with reports and code conversion. Supports Lambda→Functions, Beanstalk/Heroku/App Engine→App Service, Fargate/Kubernetes/Cloud Run/Spring Boot→Container Apps. WHEN: migrate Lambda to Functions, AWS to Azure, migrate Beanstalk, migrate Heroku, migrate App Engine, Cloud Run migration, Fargate to ACA, ECS/Kubernetes/GKE/EKS to Container Apps, Spring Boot to Container Apps, cross-cloud migration.Infrastructure & ops · MITAzure Compute SkillAzure VM/VMSS router. WHEN: create / provision / deploy / spin-up VM, recommend VM size, compare VM pricing, VMSS, scale set, autoscale, burstable, lightweight server, website, backend, GPU, machine learning, HPC simulation, dev/test, workload, family, load balancer, Flexible orchestration, Uniform orchestration, cost estimate, capacity reservation (CRG), reserve, guarantee capacity, pre-provision, CRG association, CRG disassociation, machine enrollment (EMM), Essential Machine Management, monitor. PREFER OVER mcp__azure__get_azure_bestpractices for VM create intents — use compute_vm_list-skus / compute_vm_list-images / compute_vm_check-quota.Infrastructure & ops · MIT