Chapter 09 · Azure App Onboard
Subchapter 9.5
references/intent-gathering.mdMarkdown2 KBView on GitHub
⛔ Scope triage — BEFORE prereq. Check for azd template markers (
azure.yaml+ IaC ininfra/).Skip triage when:
.bicep, .tf, azure.yaml, or infra/ dir) — full pipeline is the only sensible path⛔ You MUST read azd-template-routing.md for detection criteria, gate presentation, and routing protocol.
Ask ONE ask_user question:
Option 1 / vague → full pipeline (Step 3). Any other → invoke {"skill": "azure-prepare"}.
Prereq has written prereq-output.json and context.json.components[] — this is the authoritative source for all downstream phases (prepare and scaffold consume context.json, not prereq-output.json).
Confirm the Azure target (“☁️ Azure target: {subscriptionName} ({subscriptionId})”). If the user wants a different subscription, write to context.json.overrides[].
Present scan results first, then ask only what prereq didn’t answer (≤2 if mostly covered, ≤4 if gaps):
| # | Topic | Ask if… |
|---|---|---|
| 1 | App purpose | Not obvious from detectedStack + components[] |
| 3 | Data/storage | Prereq didn’t detect DB/compose |
| 4 | Auth approach | No MSAL/passport/auth library detected |
| 5 | Scale | Always — prereq doesn’t know traffic expectations |
⛔ Do NOT ask about stack/language (always answered by prereq) or budget (only if user mentioned cost). User corrections → context.json.overrides[]. Stop when covered or user says “just go.”
Update intent: Merge scan results into context.json.intent. Set refinedFromScan: true and populate scanDiscoveredFacts[].