terraform-azure-verified-modules

Validates Azure Terraform modules against Azure Verified Modules certification requirements.

Updated Jun 13, 2026
One-click install
npx skills add https://github.com/jenreh/project-kit-template --skill terraform-azure-verified-modules-jenreh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: terraform-azure-verified-modules
Source: https://github.com/jenreh/project-kit-template/tree/main/.agents/agent-skills/skills/terraform-azure-verified-modules
Command: npx skills add https://github.com/jenreh/project-kit-template --skill terraform-azure-verified-modules-jenreh

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developing Azure Terraform modules that pass Azure Verified Modules (AVM) certification requires tracking dozens of mandatory and recommended rules across code style, variables, outputs, testing, and documentation, which is easy to get wrong without a consolidated reference. ## Core Features & Use Cases - AVM Rule Reference: Consolidates all 37 AVM Terraform requirements (TFFR and TFNFR) with severity levels, code examples, and good/bad patterns. - Compliance Checklist: Provides a review-ready checklist covering module structure, code style, variables, outputs, configuration, and testing. - Breaking Change Guidance: Lists patterns that cause breaking changes and mandates feature toggles for new resources in minor versions. - Use Case: When authoring a new Azure Terraform module for the AVM registry, use this Skill to verify provider version constraints, variable typing rules, output anti-corruption patterns, and dynamic block usage before submitting for certification review. ## Quick Start Review my Terraform module in the current directory against the Azure Verified Modules requirements and list any violations.

Frequently Asked Questions about terraform-azure-verified-modules

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make my Terraform module Azure Verified Modules compliant?

Follow the AVM Terraform requirements covering provider constraints, code style, variables, outputs, and testing. Key rules include pinning azurerm to ~> 4.0 or azapi to ~> 2.0, using lower snake_case, defining precise variable types, and generating docs with terraform-docs.

What Azure provider versions are required for AVM modules?

AVM modules must use azurerm version >= 4.0 and < 5.0, or azapi version >= 2.0 and < 3.0, declared in a required_providers block. Pessimistic constraints like ~> 4.0 are recommended, and no other providers are permitted.

Can AVM modules reference other Terraform modules from git?

No. AVM modules must reference other modules only through the HashiCorp Terraform registry with a pinned version, such as source = "Azure/xxx/azurerm" with version = "1.2.3". Git references and non-AVM module references are prohibited.

How should conditional nested blocks be written in AVM modules?

Conditional nested blocks must use a dynamic block with for_each set to a condition producing a single-element list or empty list, such as for_each = condition ? [item] : []. This avoids plan-stage errors with unknown values.

What counts as a breaking change in an AVM Terraform module?

Breaking changes include adding resources without feature toggles, renaming resources without moved blocks, changing variable types or defaults, deleting outputs, and switching between count and for_each. New resources in minor versions must be gated behind a toggle variable defaulting to false.