Préparer — Planification d'architecture et estimation des coûts
Référence rapide
| Propriété |
Valeur |
| Meilleur pour |
Mapper les composants d'application aux services Azure avec estimation des coûts et validation des quotas |
| Entrées |
prereq-output.json + context.json depuis .copilot-azure/sessions/{id}/ |
| Sorties |
prepare-plan.json écrit dans le répertoire de session |
| Parent |
azure-app-onboard |
Quand utiliser cette skill
Invoquée par l'orchestrateur azure-app-onboard à la Phase 2 quand prereq-output.json existe. Non directement accessible par l'utilisateur.
Retour à l'orchestrateur : Une fois terminé, retournez le contrôle à azure-app-onboard. N'invoquez PAS directement scaffold ou deploy.
Quand NE PAS utiliser
| Scénario |
Utiliser plutôt |
| Vérification de la préparation du code ou scanning des prérequis |
azure-app-onboard Étape 3 (prereq) |
| Génération d'IaC à partir d'un plan complété |
azure-app-onboard Étape 7 (scaffold) |
| Déploiement de ressources sur Azure |
azure-app-onboard Étape 9 (deploy) |
| Optimisation des dépenses Azure existantes |
azure-cost |
| Estimation des coûts spécifiques à une VM |
azure-compute |
| Architecture landing zone entreprise |
azure-enterprise-infra-planner |
Outils MCP
| Outil |
Objectif |
mcp_azure_mcp_pricing / azure-pricing (router → command: pricing_get) |
Estimation des coûts (inline — voir Étape 6). Fallback : dispatch subagent-pricing.md |
mcp_azure_mcp_policy |
Contraintes de politique d'abonnement |
az rest |
Validation des quotas (via sub-agent — voir Étape 5) |
mcp_azure_mcp_cloudarchitect → cloudarchitect_design |
Conception d'architecture alignée WAF |
mcp_azure_mcp_wellarchitectedframework |
Guidance WAF par service |
mcp_azure_mcp_advisor → advisor_recommendation_list |
Recommandations d'optimisation |
Flux de travail
| # |
Étape |
Action |
Référence |
| 1 |
Lire l'état de session |
Charger prereq-output.json + context.json. Résoudre l'abonnement |
Cross-ref subscription-resolution.md si nécessaire |
| 2 |
Interroger les contraintes de politique |
MCP inline : récupérer la politique + recommandations advisor |
mcp_azure_mcp_policy + mcp_azure_mcp_advisor |
| 3 |
Mapper les composants aux services |
Sélection de service Azure par composant, routage Dockerfile, deploy-as-is |
⛔ Vous DEVEZ lire service-mapping.md et deploy-strategy.md |
| 4 |
Sélectionner les SKU + analyse WAF |
Sélection de SKU sensible au budget, guidance service WAF inline |
⛔ Vous DEVEZ lire sku-matrix.md |
| 5 |
Valider les quotas + capacité régionale |
⛔ Lire subagent-quota.md → dispatcher en tant que task (l'action SUIVANTE DOIT être task, ⛔ agent_type: "task" — JAMAIS "general-purpose"). Copier le texte du template COMPLET et NON MODIFIÉ dans le prompt de la task entre les délimiteurs <<<TEMPLATE_START>>> / <<<TEMPLATE_END>>> — ne PAS résumer. Ajouter les entrées fournies par l'appelant listées dans la table Input de subagent-quota.md APRÈS le bloc template. ⛔ Après dispatch, procéder à l'Étape 6 (estimation des coûts) pendant que le subagent s'exécute. N'exécutez PAS les contrôles de quota vous-même — le subagent s'en charge. Collecter les résultats du subagent avant l'Étape 9 (écrire le plan). |
⛔ Vous DEVEZ lire subagent-quota.md |
| 6 |
Estimer les coûts |
⛔ Vous DEVEZ lire pricing-guide.md pour la méthodologie, puis pricing-guide-services.md pour les filtres par service. Appeler le router de pricing (mcp_azure_mcp_pricing/azure-pricing) avec command: "pricing_get" + un objet parameters{} inline par service payant. Si MCP indisponible ou échoue → ⛔ Lire subagent-pricing.md → dispatcher en tant que task (l'action SUIVANTE DOIT être task, ⛔ agent_type: "task" — JAMAIS "general-purpose"). Copier le texte du template COMPLET et NON MODIFIÉ dans le prompt de la task entre les délimiteurs <<<TEMPLATE_START>>> / <<<TEMPLATE_END>>> — ne PAS résumer. Ajouter les données (services[], region, budget tier) APRÈS le bloc template. Écrire les résultats dans prepare-plan.json.costEstimate. |
pricing-guide.md |
| 7 |
Générer le naming |
Naming centralisé : suffix, prefix, tous les noms de ressources |
⛔ Vous DEVEZ lire naming-patterns.md |
| 8 |
Déterminer le format IaC |
.tf non-Azure existant → ask_user Bicep vs TF, écrire dans overrides[].iacFormat. Pas de .tf → Bicep par défaut. |
(inline) |
| 9 |
Écrire prepare-plan.json |
Par schéma PreparePlan. Inclure postDeployRecommendations, deploymentVariables |
⛔ Vous DEVEZ lire prepare-schemas.ts pour le schéma PreparePlan |
| 10 |
Retourner un résumé |
Résumé structuré pour la porte d'approbation de l'orchestrateur |
(inline — 1 ligne) |
| 11 |
Valider le plan |
Contrôle 4 dimensions : Alignement des objectifs, Alignement WAF, Complétude des dépendances, Viabilité du déploiement. Corriger inline en cas d'échec, documenter les tradeoffs dans assumptions[]. |
Tous doivent passer avant d'écrire |
Étape 5 — Post-Validation des quotas
⛔ NE JAMAIS présenter une région sans vérifier d'abord les quotas. Ignorer la validation des quotas cause des défaillances de déploiement en cascade et des boucles de guérison prolongées.
⛔ Si le plan inclut PostgreSQL/MySQL, vérifier offerRestrictionsVerified: true — si false/absent, la région est bloquée. N'ALLEZ PAS à scaffold avec des services BD non vérifiés.
⛔ Gratuit ≠ illimité. Chaque SKU de calcul — y compris les tiers F1, Consumption et Serverless — a un quota par abonnement, par région. N'IGNOREZ PAS les contrôles de quota parce qu'un SKU est gratuit.
⛔ Après fallback de région, mettre à jour TOUS les services[].region dans prepare-plan.json. Ne pas laisser de valeurs obsolètes.
Gestion des erreurs
| Erreur |
Remédiation |
| Pricing API 400 |
Vérifier que --sku est inclus. Tiers gratuits : ignorer l'API |
| MCP pricing indisponible |
Dispatcher subagent-pricing.md en tant que fallback task (utilise HTTP direct vers prices.azure.com) |
| Sortie prereq manquante |
Déclencher le backfill de prereq |
| Vérification des quotas échoue |
Revenir à une estimation au mieux + disclaimer |
| Conflits de override |
Re-exécuter depuis l'Étape 3 avec nouvelles contraintes |