Setting the file. One moment.
Subchapter 8.16
references/self-healing.mdMarkdown2 KBView on GitHub
Step 11 runs validation against the generated IaC via CLI commands (az bicep build + az deployment sub what-if). On failure, classify each error and apply the strategy below. Max 3 attempts before pausing to present a diagnosis (explain pattern → propose fix → ask user). After user approves, 5 more attempts before asking again — then every 5 thereafter. See scaffold SKILL.md § Self-Healing Loop for the full escalation protocol.
| Error Type | Class | Auto-Fix Strategy |
|---|---|---|
| Invalid property name | FIXABLE | Replace with correct property from schema summary |
| Syntax error (HCL/Bicep) | FIXABLE | Re-generate affected module from reference patterns |
| Missing required property | FIXABLE | Add with default value from MCP best practices |
| Wrong API version | FIXABLE | Update to version from schema result |
| Provider version conflict | FIXABLE | Update required_providers block |
| Undeclared variable | FIXABLE | Add declaration to variables.tf |
| Policy-blocked SKU | FIXABLE | Substitute with next-best from rejectedAlternatives[] |
| Circular dependency | FIXABLE | Refactor module references — break cycle |
| Permission/RBAC insufficient | BLOCKING | Surface required role + az role assignment create command |
| State backend inaccessible | BLOCKING | Surface az storage account create instructions |
| Region unsupported for resource | BLOCKING | Suggest alternate regions — requires user decision |
| Quota exhaustion (ALL tiers in ALL regions) | PLAN_LEVEL_CHANGE | ⛔ Service type pivot required — see scaffold SKILL.md § Self-Healing Loop. Update prepare-plan.json → present re-approval gate → regenerate IaC. Counts as 1 healing attempt |
| Quota exhaustion (single region) | PLAN_LEVEL_CHANGE | ⛔ Region pivot required — read prepare-plan.json.quotaValidation.checkedRegions and failedResources to skip already-failed regions. After checking new regions, append results back to these fields. See scaffold SKILL.md § Self-Healing Loop. Update plan region → present re-approval → regenerate IaC |
| Policy blocks planned service entirely | PLAN_LEVEL_CHANGE | ⛔ Alternative service required — see scaffold SKILL.md § Self-Healing Loop. Map to next-best from rejectedAlternatives[] → present re-approval → regenerate IaC |