# azure-verified-modules

A skill that carries the Azure Verified Modules requirements, so your agent can write and review Terraform modules that pass AVM certification.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3300 installs · ★ 909
- Author: hashicorp
- License: MPL-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/hashicorp/agent-skills/tree/HEAD/plugins/terraform/skills/azure-verified-modules/SKILL.md
- Updated: 2026-10-05
- HTML: https://affpapa.org/en/nevibecode/skills/azure-verified-modules

## What it does

The skill puts the AVM rulebook in front of the agent and walks a module toward certification. It covers cross-referencing between modules, provider versions, code style, variables, outputs, locals, testing and documentation. Every rule carries a MUST or SHOULD severity plus an ID such as TFFR1 or TFNFR4.

Provider versions are pinned hard: `azapi` from 2.0 to 3.0, `azurerm` from 4.0 to 5.0, declared in `required_providers`. Other modules may only be referenced through the Terraform registry at a fixed version — git references and non-AVM modules are off the table. Small details trip people up too: `ignore_changes` without double quotes, `for_each` only over `map()` or `set()` with static keys, and no `enabled`-style variable that switches the whole module.

Use it when you are building or reviewing an Azure module and want the certification to go through without a round of fixes. The rules do not replace the AVM specifications themselves — some details still live in the official docs the skill points to.

## Requirements
- Works with: Azure, Terraform

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill azure-verified-modules -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/azure-verified-modules/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/azure-verified-modules/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill azure-verified-modules -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/azure-verified-modules/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill azure-verified-modules -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/azure-verified-modules/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install hashicorp/agent-skills azure-verified-modules
```

2. **Manually: put the files in place**
- File: `.github/skills/azure-verified-modules/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill azure-verified-modules -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/hashicorp/agent-skills --path plugins/terraform/skills/azure-verified-modules
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/azure-verified-modules/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add hashicorp/agent-skills --skill azure-verified-modules -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/hashicorp/agent-skills/tree/HEAD/plugins/terraform/skills/azure-verified-modules/SKILL.md

## When to use it
- bring a Terraform module up to AVM certification requirements
- check azapi and azurerm versions in `required_providers`
- spot git references and non-AVM modules in cross-references
- order arguments and meta-arguments inside resource blocks
- drop `enabled`-style variables that control the whole module

## Example prompts
- check my Terraform module against the AVM requirements
- add a `required_providers` block with azurerm and azapi versions per AVM rules
- review the variables and outputs of this module against the AVM checklist

## Similar
- [import-infrastructure-as-code](https://affpapa.org/en/nevibecode/skills/import-infrastructure-as-code.md) — skill · 6900 installs
- [terraform-azure](https://affpapa.org/en/nevibecode/rules/terraform-azure.md) — rule · ★ 40418
- [terraform-engineer](https://affpapa.org/en/nevibecode/skills/terraform-engineer.md) — skill · 5400 installs
- [azure-sql-database](https://affpapa.org/en/nevibecode/skills/azure-sql-database.md) — skill · 1300 installs
- [azure-key-vault](https://affpapa.org/en/nevibecode/skills/azure-key-vault.md) — skill · 309 installs
- [azure-prepare](https://affpapa.org/en/nevibecode/skills/azure-prepare.md) — skill · 2 installs

From the same set: [hashicorp/agent-skills](https://affpapa.org/en/nevibecode/by/hashicorp/agent-skills.md) — 16 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
