
Terraform Azurerm Set Diff Analyzer
Look up which AzureRM Terraform resource blocks use Set-type attributes so plan diffs and drift reviews do not surprise you mid-apply.
Overview
terraform-azurerm-set-diff-analyzer is an agent skill for the Build phase that supplies AzureRM Terraform Set-type attribute definitions for accurate set-diff and plan review.
Install
npx skills add https://github.com/github/awesome-copilot --skill terraform-azurerm-set-diff-analyzerWhat is this skill?
- Curated Set-type key paths per azurerm_* resource (e.g. application_gateway nested blocks)
- Metadata cites Terraform Registry and AzureRM provider source as of 2026-01-28
- Nested structures use _key fields for set identity (rewrite_rule_set, url_path_map, path_rule)
- Supports set-diff analysis instead of guessing which list vs set attributes force replacement
- Catalog metadata lastUpdated 2026-01-28
- Documents Set-type paths across multiple azurerm_* resources including deeply nested gateway blocks
Adoption & trust: 8.6k installs on skills.sh; 34.6k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You cannot tell which nested Azure resource blocks Terraform treats as sets, so every plan feels like a gamble on forced replacements.
Who is it for?
Indie builders maintaining Terraform modules against the azurerm provider who need a quick set-semantics lookup during code review.
Skip if: Teams not using Terraform on Azure, or anyone expecting executable plan/apply automation—this skill is a definition catalog, not a CLI.
When should I use this skill?
Reviewing or authoring Terraform for Azure and nested blocks show unexpected plan diffs or you need the set identity field for a resource.
What do I get? / Deliverables
You map resources to their set keys before apply, so reviews focus on real infra risk instead of provider guesswork.
- Resource-specific Set-type key paths for diff analysis
- Agent-grounded explanations tied to cataloged azurerm definitions
Recommended Skills
Journey fit
Solo builders wire Azure resources in Terraform during the build phase when modules and provider schemas must match what Terraform will diff. Set-key definitions matter at integration time—application gateways, networking, and composite resources—before those stacks ship to production.
How it compares
Use as a focused Set-attribute companion to registry docs, not instead of terraform plan or policy-as-code scanners.
Common Questions / FAQ
Who is terraform-azurerm-set-diff-analyzer for?
Solo and small-team builders who write or review Terraform for Microsoft Azure and need to reason about set-type nested blocks without re-reading provider source each time.
When should I use terraform-azurerm-set-diff-analyzer?
During Build when designing Azure integrations, before refactoring large azurerm resources, or in Ship when interpreting a confusing terraform plan on nested attributes.
Is terraform-azurerm-set-diff-analyzer safe to install?
It is reference data with no runtime side effects; still review the Security Audits panel on this Prism page before adding any skill to your agent workflow.
SKILL.md
READMESKILL.md - Terraform Azurerm Set Diff Analyzer
{ "metadata": { "description": "AzureRM Provider Set-type attribute definitions", "lastUpdated": "2026-01-28", "source": "Terraform Registry documentation and AzureRM Provider source code" }, "resources": { "azurerm_application_gateway": { "backend_address_pool": "name", "backend_http_settings": "name", "custom_error_configuration": "status_code", "frontend_ip_configuration": "name", "frontend_port": "name", "gateway_ip_configuration": "name", "http_listener": "name", "probe": "name", "private_link_configuration": "name", "redirect_configuration": "name", "request_routing_rule": "name", "rewrite_rule_set": { "_key": "name", "rewrite_rule": { "_key": "name", "condition": "variable", "request_header_configuration": "header_name", "response_header_configuration": "header_name" } }, "ssl_certificate": "name", "ssl_profile": "name", "trusted_client_certificate": "name", "trusted_root_certificate": "name", "url_path_map": { "_key": "name", "path_rule": { "_key": "name", "paths": null } } }, "azurerm_lb": { "frontend_ip_configuration": "name" }, "azurerm_lb_backend_address_pool": { "backend_address": "name" }, "azurerm_lb_rule": { "backend_address_pool_ids": null }, "azurerm_firewall": { "ip_configuration": "name", "management_ip_configuration": "name", "virtual_hub": null }, "azurerm_firewall_policy_rule_collection_group": { "application_rule_collection": { "_key": "name", "rule": { "_key": "name", "protocols": null, "destination_fqdns": null } }, "network_rule_collection": { "_key": "name", "rule": { "_key": "name", "destination_addresses": null, "destination_ports": null } }, "nat_rule_collection": { "_key": "name", "rule": "name" } }, "azurerm_frontdoor": { "backend_pool": { "_key": "name", "backend": "address" }, "backend_pool_health_probe": "name", "backend_pool_load_balancing": "name", "frontend_endpoint": "name", "routing_rule": "name" }, "azurerm_cdn_frontdoor_origin_group": { "health_probe": null, "load_balancing": null }, "azurerm_network_security_group": { "security_rule": "name" }, "azurerm_route_table": { "route": "name" }, "azurerm_virtual_network": { "subnet": "name" }, "azurerm_virtual_network_gateway": { "ip_configuration": "name", "vpn_client_configuration": { "_key": null, "root_certificate": "name", "revoked_certificate": "name", "radius_server": "address" }, "policy_group": "name" }, "azurerm_virtual_network_gateway_connection": { "ipsec_policy": null }, "azurerm_nat_gateway": { "public_ip_address_ids": null, "public_ip_prefix_ids": null }, "azurerm_private_endpoint": { "ip_configuration": "name", "p