azure-app-onboard-prereq

Par microsoft · azure-skills

Évalue si le code source est prêt à être déployé sur Azure — la vérification à effectuer AVANT tout travail d'infrastructure. Analyse l'état du build, la complétude de l'application, les dépendances et services locaux, la compatibilité de la stack, et la faisabilité du déploiement. Répond aux questions sur ce dont votre application a besoin avant de pouvoir être déployée — frameworks, dépendances et configuration. Vérifie la compatibilité des dépendances et identifie les blocages au déploiement ainsi que les frameworks non supportés. QUAND : « évaluer mon repo », « mon app est-elle prête à déployer », « de quoi mon app a-t-elle besoin pour être déployée », « que me faut-il avant de déployer », « est-ce que mon app nécessite », « puis-je envoyer ça sur Azure », « analyser mon repo pour détecter des problèmes », « cette app est-elle déployable », « vérifier si mon app est prête pour Azure », « ai-je besoin d'un Dockerfile », « qu'est-ce qui bloque mon déploiement », « y a-t-il des blocages », « mes dépendances sont-elles compatibles », « Azure supporte-t-il mon framework », « que faut-il changer avant de déployer », « vérifier la configuration de mon app ».

npx skills add https://github.com/microsoft/azure-skills --skill azure-app-onboard-prereq

Azure App Onboard Prereq — Évaluation du référentiel

Évaluez le référentiel d'un utilisateur pour la santé de la compilation, l'exhaustivité de l'application et la faisabilité du déploiement Azure — avant la planification de l'infrastructure. Produit des verdicts par composant (PASS/WARN/FAIL) consommés par les phases suivantes.

Relation orchestrateur : Appelé par azure-app-onboard à l'étape 3, ou autonome pour les vérifications de disponibilité du code. Appelé par l'orchestrateur, restituez le contrôle à azure-app-onboard après l'écriture des artefacts — N'INVOQUEZ PAS directement les phases suivantes.

Phase 1 sur 4 dans le pipeline AppOnboard. Session : .copilot-azure/sessions/{session-id}/. Lit context.json. Écrit components[], repo{}, detectedInfra[]. Produit prereq-output.json. Schéma : prereq-schemas.tsPrereqOutput, BuildRequirements. Entrée directe supportée.

Quand ne pas utiliser

Signal Redirection
Valider l'infrastructure (Bicep/TF/azure.yaml) azure-validate
Générer IaC azure-prepare
Idée-à-production de bout en bout azure-app-onboard
Exécuter azd up ou déployer azure-deploy

Règles

PROHIBITION ABSOLUE — npm install, npm test, npx jest, pytest, et TOUTES les commandes install/build/test sont JAMAIS autorisées. En AUCUN cas vous ne devez exécuter npm install, npm test, npx jest, pip install, pytest, dotnet build, dotnet restore, dotnet test, go mod download, cargo build, ou AUCUNE commande de gestionnaire de paquets, compilation ou test pendant la phase prereq. Ne testez PAS les suites de tests pour vérifier le code — vérifiez plutôt les fichiers de configuration de test statiquement. La phase prereq est une évaluation en lecture seule + vérification statique uniquement. SEULE exception — deux contextes autorisés, tous deux contrôlés par consentement : (a) code que l'agent a modifié lors de la migration/correction (voir remediation-protocol.md étape 6), ou (b) code que l'agent a écrit de zéro sur le chemin zero-code (voir zero-code-path.md). Dans l'un ou l'autre cas, les exécutions install/build/test se font UNIQUEMENT via la porte de validation de compilation confirmée par l'utilisateur (build-check.md étape 3), après que l'utilisateur répond à cette invite spécifique de consentement par commande. Le consentement préalable général ne compte jamais.

  1. Pipeline complet (étapes 1–8), sans exceptions. Tous les prompts → étape 1 directement. Répondez aux questions spécifiques EN TANT QUE PARTIE des conclusions (étape 5), pas avant.
  2. Pas de sous-agents pour l'évaluation. L'évaluation 3 axes est inline. Exception : scaffolding zero-code-path (étape 2).
  3. Les modifications de code/destructrices nécessitent ask_user. Max 3 questions avant les résultats. Entrée directe : ne répétez pas les questions d'intention de l'orchestrateur.

Outils MCP

Outil Objectif
mcp_azure_mcp_get_azure_bestpractices Valider les modèles de pile détectés par rapport aux meilleures pratiques Azure
mcp_azure_mcp_extension_cli_install Vérifier/installer les outils CLI requis (az, azd, func)

Workflow

Étape 1 : Vérification de la session

Entrée orchestrateur : Session existe — lire context.json, procéder à l'étape 2.

Entrée directe : Vérifier .copilot-azure/sessions/active-session.json :

  • Existe → ⛔ lire session-protocol.md pour la porte de reprise/nouvelle. Ne procédez PAS jusqu'à ce que l'utilisateur réponde.
  • Manquant → créer session : générer UUID, New-Item -ItemType Directory -Path ".copilot-azure/sessions/{uuid}" -Force, écrire context.json + active-session.json via l'outil create.

Puis : az account show → fusionner {id, name, tenantId} dans context.json.azure. ⛔ La session DOIT exister sur disque avant tout scan.

Étape 2 : Scan de l'espace de travail

Scannez les fichiers de projet. Détectez les composants, repo{}, detectedInfra[], detectedServices[]. Classifiez les fournisseurs Terraform. Vérifiez la disponibilité de l'interface CLI. Conflits de détection de pile : la déclaration explicite de l'utilisateur gagne (écrire dans context.json, marquer le scan comme remplacé) ; scan uniquement → confirmer avec l'utilisateur ; piles multiples → afficher tous et demander (voir component-mapping.md) ; pas de code → zero-code-path.md.

Si pas de fichiers de projet, pas de Dockerfile ET pas de index.html → ⛔ lire zero-code-path.md.

Porte anticipée du SDK cloud. Grep pour aws-sdk|@aws-sdk|boto3|google-cloud|@google-cloud|firebase. Si deps fonctionnelles trouvées → lire cloud-sdk-migration.md, puis ask_user : "Redirection vers Azure Cloud Migrate" (définir routeToSkill: "azure-cloud-migrate") · "Continuer l'évaluation de toute façon" (terminer l'évaluation de disponibilité + mappage SDK→Azure, puis ARRÊTER à l'étape 8 — pas de plan jusqu'à ce que les deps soient échangées) · "Annuler".

Étape 3 : Évaluation par composant

Sous-étape Action Référence
3.1 Vérification de compilation Vous DEVEZ lire build-check.md
3.2 Vérification d'exhaustivité Vous DEVEZ lire completeness-check.md
3.3 Vérification de déployabilité Vous DEVEZ lire deployability-check.md
3.3a Mappage de composant (conditionnel) Lire component-mapping.md UNIQUEMENT SI >1 manifeste de projet trouvé (monorepo)

Remplissez buildRequirements par composant après l'évaluation. La propagation des verdicts, les règles de tier et l'agrégation f1Viable se trouvent dans readiness-gate.md et les références de vérification individuelles.

Étape 4 : Écrire les artefacts + Porte de disponibilité

⛔ Vérifier que context.json existe sur disque. Lire readiness-gate.md (verdicts, tiers, batch-then-approve, fast-track) puis prereq-artifacts.md (procédures d'écriture, schémas).

Étape 5 : Présenter les conclusions

Selon readiness-gate.md § Present Findings — montrer les verdicts regroupés par sévérité avant de procéder.

Étape 6 : Correction (conditionnel)

Vous DEVEZ lire remediation-protocol.md SI un verdict ❌ FAIL, 🔧 Recommended Fix, ou ⚠️ WARN avec fixPhase: "prereq" existe. Contient la boucle de correction, la vérification statique, le mandat de ré-évaluation, les mises à jour d'artefacts post-correction et la porte de consentement de validation de compilation. Si tous les verdicts sont ✅ PASS ou ⚠️ WARN sans fixPhase: "prereq", passez à l'étape 7.

Étape 7 : Écrire l'état final

completedPhases contient déjà "prereq" + currentPhase: null (depuis l'étape 4). Puis :

Écrire lastScanCommit. Exécuter git rev-parse HEAD et stocker le SHA complet de 40 caractères en tant que context.json.repo.lastScanCommit. Obligatoire — la garde de fraîcheur à l'étape 1 compare à HEAD à la reprise pour détecter les changements.

Étape 8 : Route

Obligatoire — ne sautez PAS cette étape.

Champs de routage : Tous les écritures de routage écrivent routeToSkill et routeReason dans context.json.

Contexte post-correction : Si l'étape 6 s'est exécutée, lancez le prompt de routage avec : « Correction complète — {N} problèmes résolus, votre application est maintenant {overallHealth}. »

Évaluez les lignes de haut en bas — le premier match gagne.

# Condition Action
1 routeToSkill défini (toute entrée) ask_user : « Redirection vers {routeToSkill} » / « Pas maintenant ». ⛔ Le pipeline s'arrête — ne procédez PAS à la planification de l'architecture.
2 cloudSdkFindings[] non vide (l'utilisateur a choisi « Continuer l'évaluation de toute façon ») Présentez le mappage d'échange SDK cloud → Azure en tant que 🔶 blockers, puis ask_user avec ce prompt exact : « 🔶 Migration SDK cloud requise — ces dépendances doivent être échangées avant que cette application puisse être déployée sur Azure. (Redirection vers azure-cloud-migrate / Arrêter — échanger manuellement et réexécuter) » — Redirect définit routeToSkill: "azure-cloud-migrate", Stop arrête. ⛔ Le pipeline s'arrête — ne procédez PAS à la planification de l'architecture et ne proposez PAS une option « continuer à préparer » ; l'application ne peut pas être déployée jusqu'à ce que les deps soient échangées.
3 Orchestrateur + pas de routeToSkill Dites à l'utilisateur : « ✅ Votre application a été évaluée et est prête — planifions votre déploiement Azure. » Puis invoquez azure-app-onboard. ⛔ Ne vous arrêtez PAS, n'attendez PAS l'entrée de l'utilisateur, ne narrez PAS les handoffs internes. L'utilisateur a déjà consenti au pipeline complet au triage de portée.
4 Direct + ready/readyWithCaveats + pas d'infra Azure ask_user : « Déployer sur Azure (pipeline complet) » → invoquer azure-app-onboard / « Pas maintenant »
5 Direct + ready/readyWithCaveats + infra Azure existante ask_user : « Recommencer de zéro » → invoquer azure-app-onboard / « Utiliser l'infra existante » → invoquer azure-prepare / « Pas maintenant »
6 Direct + blocked Rapport résumé du blocker + « Corriger et réexécuter. »

Les tiers de sévérité (🛑🔶❌🔧⚠️✅) sont définis dans readiness-gate.md.

Sorties

Artefact Emplacement Consommateur
Contexte de session context.jsoncomponents[], repo{}, detectedInfra[], detectedServices[] Toutes les phases suivantes
Sortie prereq prereq-output.json phase prepare (via azure-app-onboard)
Rapport de disponibilité .copilot-azure/sessions/{uuid}/readiness-report.md Utilisateur (référence hors ligne)

Skills similaires