
The terraform-azurerm-set-diff-analyzer skill identifies false-positive diffs in Terraform plans for Azure resources caused by Set-type attribute reordering, helping infrastructure engineers distinguish spurious changes from actual modifications. It solves the problem where adding or removing a single element in resources like Application Gateways, Load Balancers, and NSGs causes Terraform to report all elements as changed, making plan reviews difficult and error-prone. The skill uses Python to analyze Terraform plan JSON output and filter out order-only changes while preserving genuine resource modifications.
$ npx -y skills add github/awesome-copilot --skill terraform-azurerm-set-diff-analyzer --agent claude-codeInstalls into .claude/skills of the current project.
A skill to identify "false-positive diffs" in Terraform plans caused by AzureRM Provider's Set-type attributes and distinguish them from actual changes.
terraform plan shows many changes, but you only added/removed a single elementTerraform's Set type compares by position rather than by key, so when adding or removing elements, all elements appear as "changed". This is a general Terraform issue, but it's particularly noticeable with AzureRM resources that heavily use Set-type attributes like Application Gateway, Load Balancer, and NSG.
These "false-positive diffs" don't actually affect the resources, but they make reviewing terraform plan output difficult.
If Python is unavailable, install via your package manager (e.g., apt install python3, brew install python3) or from python.org.
# 1. Generate plan JSON output
terraform plan -out=plan.tfplan
terraform show -json plan.tfplan > plan.json
# 2. Analyze
python scripts/analyze_plan.py plan.json
python: command not found: Use python3 instead, or install PythonModuleNotFoundError: Script uses only standard library; ensure Python 3.8+Sponsors