github/awesome-copilot · Official

terraform-azurerm-set-diff-analyzer

Analyze Terraform plan JSON output for AzureRM Provider to distinguish between false-positive diffs (order-only changes in Set-type attributes) and actual resource changes. Use when reviewing terraform plan output for Azure resources like Application Gateway, Load Balancer, Firewall, Front Door, NSG, and other resources with Set-type attributes that cause spurious diffs due to internal ordering changes.

All-time #1750 First seen Feb 2, 2026
8-week activity · all time api

Installation

$ npx skills add github/awesome-copilot --skill terraform-azurerm-set-diff-analyzer

Summary

  • Identify false-positive diffs in Terraform AzureRM plans caused by Set-type attribute ordering.
  • Analyzes terraform plan JSON output to distinguish spurious diffs (element reordering in Sets) from actual resource changes Targets AzureRM resources with Set-type attributes: Application Gateway, Load Balancer, NSG, Firewall, Front Door, and others Requires Python 3.8+ and uses only standard library; integrates into CI/CD pipelines with configurable output formats and exit codes Helps reviewers focus on meaningful changes when terraform plan shows "all elements changed" despite minimal actual modifications

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from github/awesome-copilot · top by installs.

npx skills add github/awesome-copilot

Browse all from github/awesome-copilot

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Also listed on

Alternate registries and mirrors of this skill.

Repository health

Stars 38.8K
License LICENSE
Default branch main
Open issues 21
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseMIT
Declared agents github-copilot

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,187 B
  • docs SUMMARY.md 449 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 8,916 installs

SKILL.md

Terraform AzureRM Set Diff Analyzer

A skill to identify "false-positive diffs" in Terraform plans caused by AzureRM Provider's Set-type attributes and distinguish them from actual changes.

When to Use

  • terraform plan shows many changes, but you only added/removed a single element
  • Application Gateway, Load Balancer, NSG, etc. show "all elements changed"
  • You want to automatically filter false-positive diffs in CI/CD

Background

Terraform'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.

Prerequisites

  • Python 3.8+

If Python is unavailable, install via your package manager (e.g., apt install python3, brew install python3) or from python.org.

Basic Usage

# 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

Troubleshooting

  • python: command not found: Use python3 instead, or install Python
  • ModuleNotFoundError: Script uses only standard library; ensure Python 3.8+

Detailed Documentation

  • [scripts/README.md](scripts/README.md) - All options, output formats, exit codes, CI/CD examples
  • [references/azurermsetattributes.md](references/azurermsetattributes.md) - Supported resources and attributes