The default subscription may be scanned without an explicit scope choice and its topology stored in the project
Source references: 4When no insights file exists, the workflow asks for a scan scope but defaults to the current subscription if the user does not respond. A sub-agent processes the environment through insights_get, and the result is saved as project JSON.
Azure resources, relationships, configuration, and resource IDs may be processed by the MCP tool and sub-agent and persist in the workspace, exposing cloud topology to anyone or any process that can read the project.
The flow asks for a scope, but defaults to the current subscription if the user does not respond. A sub-agent then calls the environment-insights tool and saves its JSON in the project. If the result includes inventory or topology, that information may become available to anyone with project access. A user can ask for no silent default, a field-level disclosure, and affirmative scope consent; they can also restrict Azure read permissions and sharing of `.azure/insights.json`.
1. Check whether insights already exist at `<project-root>/.azure/insights.json`. If they do, reuse the existing entries and skip the scan in steps 2–6. In referenced mode, still execute step 7 before completing the gate; in greenfield mode, proceed to the gate.2. If no insights file exists, check whether the `insights_get` tool is available. If it is not, initialize the file with `[]`, then continue to step 7 in referenced mode or proceed to the gate in greenfield mode.3. Ask the user which scope to use for generating insights. Present these three options: a. "Subscription-scoped (default subscription)" — use this as the default if the user does not respond. b. "Subscription-scoped (choose a subscription)" — if selected, ask the user to provide a subscription name or ID. c. "Tenant-scoped (slower)"4. Ask the user whether there are specific areas they want the insights to focus on. Present these options:Show 3 other places
f. "Other" — this should be a custom input field.5. Run the `insights_get` tool using a general-purpose subagent. Pass a one-line summary via the `--query` option that describes the user's infrastructure and the types of insights to prioritise. Do not pass the `--nocache` flag unless the user has explicitly asked for it. Begin Phase 2 while this tool runs.6. Once the tool finishes, save the resulting JSON to `<project-root>/.azure/insights.json`. Do not include tool call metadata. If the tool errors or returns no insights, write an empty array `[]` to the file instead.7. In referenced mode, merge one insight entry for every existing resource into the current insights array. Set `existingResource.id`, `type`, `name`, `role`, `must_not_recreate: true`, and `integrationPoints` using the normalized inventory. Preserve full ARM IDs for actual-state resources and do not duplicate an entry already identified by the same resource ID. Do this even when the resource produces no broader insight.In referenced mode:- Include exactly one entry for every inventoried existing resource, uniquely identified by `existingResource.id`.- Preserve the full ARM ID in `existingResource.id` for actual-state resources.- Use an empty `integrationPoints` array when the resource has no integration points.- A resource-only entry may omit `pattern` and `implication`; when recording a broader insight, include both.2. If no insights file exists, check whether the `insights_get` tool is available. If it is not, initialize the file with `[]`, then continue to step 7 in referenced mode or proceed to the gate in greenfield mode.3. Ask the user which scope to use for generating insights. Present these three options: a. "Subscription-scoped (default subscription)" — use this as the default if the user does not respond. b. "Subscription-scoped (choose a subscription)" — if selected, ask the user to provide a subscription name or ID. c. "Tenant-scoped (slower)"4. Ask the user whether there are specific areas they want the insights to focus on. Present these options: