New to Claude Skills? Learn how to install them →

Tgithub on GitHub

Terraform AzureRM Set Diff Analyzer

OfficialFree

Eliminate false-positive diffs in Terraform plans for Azure.

by github37.7k stars on github/awesome-copilot
2 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Terraform AzureRM Set Diff Analyzer does

The Terraform AzureRM Set Diff Analyzer is designed to help developers and DevOps engineers effectively analyze Terraform plan outputs specifically for Azure resources. When using Terraform with AzureRM Provider, users often encounter misleading diffs caused by Set-type attributes. These diffs can clutter the output, making it difficult to identify actual changes. This skill automates the process of filtering out these false-positive diffs, allowing users to focus on meaningful changes that impact their infrastructure.

To use the analyzer, users first generate a JSON output of their Terraform plan. This is done using the standard Terraform commands to create a plan and convert it into JSON format. Once the JSON file is ready, the analyzer script can be executed, which processes the plan and identifies any false-positive diffs caused by internal ordering changes in Set-type attributes. This is particularly useful for resources like Application Gateways, Load Balancers, and Network Security Groups, which frequently exhibit this behavior.

The skill is straightforward to implement, requiring only Python 3.8 or higher. It leverages the standard library, ensuring compatibility and ease of use. Detailed documentation is provided to guide users through the installation and usage process, including troubleshooting common issues. By integrating this skill into a CI/CD pipeline, teams can streamline their review process, significantly reducing the time spent on analyzing Terraform plans.

Overall, the Terraform AzureRM Set Diff Analyzer is an essential tool for anyone working with Azure resources in Terraform, helping to maintain clarity and accuracy in infrastructure management by eliminating unnecessary noise from plan outputs.

When to use it

Use this skill when your `terraform plan` output shows numerous changes due to Set-type attributes, but you only expect a few actual modifications.

When not to use it

This skill may not be necessary for users who do not work with AzureRM resources or those who do not encounter issues with false-positive diffs in their Terraform plans.

What you can build with it

Reviewing Terraform Plans

When running `terraform plan`, you notice many changes reported for a resource, but you've only made a minor update. Use this skill to filter out the noise.

CI/CD Integration

In a CI/CD pipeline, automatically analyze Terraform plan outputs to ensure only meaningful changes are flagged for review.

Managing Azure Resources

When managing Azure resources with Set-type attributes, this skill helps clarify actual changes, reducing confusion during infrastructure updates.

How to install Terraform AzureRM Set Diff Analyzer

View source

1. Install with the skills CLI

npx skills add github/awesome-copilot/terraform-azurerm-set-diff-analyzer --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by github

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

Frequently asked questions about Terraform AzureRM Set Diff Analyzer

Similar skills