Chapter 4 of 6
Decisions and stop conditions#
Resolve every __REQUIRED_*__ value before a state change. Use team aliases and role names, not personal data.
| Gate | Continue when | Stop when |
|---|---|---|
| Scope | TargetScope, the Bicep parameter file, and the evaluation decision record name the same approved Foundry account and project boundary | The account, project, workspace, action route, or resource group differs from the approved scope |
| Diagnostic setting | The workspace is the approved Log Analytics destination and allLogs is acceptable for the data classification | The workspace has the wrong retention, access model, region decision, or owner |
| Alerts | Thresholds come from baseline telemetry and the action group owner can receive notifications | A threshold lacks an owner, uses the legacy Latency metric, or treats token volume as billed cost |
| Throttling dimension | The owner confirms the StatusCode value used for 429 throttling in Metrics Explorer | The value is unknown, or the alert would split on user, prompt, response, or free text |
| Continuous evaluation | The evaluator list, maxHourlyRuns, and owner roles are recorded | The project managed identity lacks the Foundry User role, the sampling cap is unresolved, or evaluator names are unapproved |
| Preview | The what-if preview contains only the diagnostic setting, action group, and three module-owned alert rules | The preview changes unrelated resources or targets the wrong group |
Do not weaken thresholds or disable sampling to make a result look healthy. Adjust thresholds only after the service owner and AI quality owner review live behavior.