CO

convert-bicep-to-avm

Automates the transition from standard Bicep resources to Azure Verified Modules.

Install

mkdir -p .claude/skills/convert-bicep-to-avm && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10502" && unzip -o skill.zip -d .claude/skills/convert-bicep-to-avm && rm skill.zip

Installs to .claude/skills/convert-bicep-to-avm

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Converts Bicep resource definitions to Azure Verified Modules (AVM). Use when user asks to convert to AVM, replace resources with modules, use verified modules, or modernize bicep templates.
190 chars✓ has a “when” trigger
Advanced

Key capabilities

  • Map resources to AVM
  • Update parameter mappings
  • Generate module declarations
  • Validate syntax

How it works

Translates standard Bicep resource definitions into Azure Verified Modules (AVM) for better compliance.

Inputs & outputs

You give it
Bicep resource definition
You get back
AVM module definition

When to use convert-bicep-to-avm

  • Convert Bicep to AVM
  • Modernize infrastructure template
  • Use verified module registry

About this skill

Converting Bicep to AVM Skill

Before Converting

Call Bicep:list_avm_metadata MCP tool to get available Azure Verified Modules and their versions.

Conversion Workflow

  1. Identify resources — List all resource declarations in the template
  2. Find AVM matches — Call Bicep:list_avm_metadata, match by resource type
  3. Map properties — Translate resource properties to AVM parameters
  4. Generate module — Create module declaration with registry reference
  5. Update references — Replace resource.property with module.outputs.property
  6. Validate — Lint the Bicep template and afterwards run bicep build to verify syntax
  7. Fix errors — If build fails, review error, fix mapping, return to step 6

AVM Module Reference Format

module <symbolicName> 'br/public:avm/res/<provider>/<resource>:<version>' = {
  params: {
    name: <resourceName>
    location: <location>
    // AVM-specific parameters
  }
}

Common Resource Type Mappings

Resource TypeAVM Module Path
Microsoft.KeyVault/vaultsavm/res/key-vault/vault
Microsoft.Storage/storageAccountsavm/res/storage/storage-account
Microsoft.Web/sitesavm/res/web/site
Microsoft.Compute/virtualMachinesavm/res/compute/virtual-machine
Microsoft.Network/virtualNetworksavm/res/network/virtual-network
Microsoft.ContainerRegistry/registriesavm/res/container-registry/registry
Microsoft.Sql/serversavm/res/sql/server

⚠️ Always call Bicep:list_avm_metadata for current modules and versions. This table is for reference only and may be outdated.

Property Mapping Guidelines

Common Patterns

ResourceAVM Parameter
properties.sku.nameskuName
properties.sku.tierOften bundled in skuName
tagstags (same)
locationlocation (same)
namename (same)
properties.accessPoliciesaccessPolicies (flattened)

AVM Adds Common Features

AVM modules often include built-in support for:

  • Diagnostic settings (diagnosticSettings)
  • Role assignments (roleAssignments)
  • Private endpoints (privateEndpoints)
  • Locks (lock)
  • Tags (tags)

Handling No AVM Match

If no AVM module exists:

  1. Keep the resource definition
  2. Add comment: // TODO: No AVM module available for <resourceType>
  3. Check for pattern modules (avm/ptn/*) as alternatives

Output Transformation

Before:

output keyVaultUri string = keyVault.properties.vaultUri

After:

output keyVaultUri string = keyVaultModule.outputs.uri

Note: AVM output names differ from properties — check module documentation.

Conversion Report Format

## AVM Conversion: [filename]

### Converted
| Resource | AVM Module | Version |
|----------|------------|---------|
| keyVault | avm/res/key-vault/vault | 0.11.0 |

### Not Converted
| Resource | Reason |
|----------|--------|
| customResource | No AVM module available |

### Manual Review Required
- [ ] Verify parameter mappings
- [ ] Update output references
- [ ] Test deployment

When not to use it

  • When no AVM module exists
  • When the template is too simple for modules

Prerequisites

Bicep

Limitations

  • Requires manual review of parameter mappings
  • Not all resources have AVM equivalents

How it compares

Automates the modernization of infrastructure templates to use verified modules.

Compared to similar skills

convert-bicep-to-avm side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
convert-bicep-to-avm (this skill)06moNo flagsAdvanced
senior-devops77moReviewAdvanced
devops-iac-engineer27moReviewAdvanced
devops-engineer13moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

senior-devops

davila7

Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup, infrastructure as code, deployment automation, and monitoring. Use when setting up pipelines, deploying applications, managing infrastructure, implementing monitoring, or optimizing deployment processes.

720

devops-iac-engineer

davila7

Implements infrastructure as code using Terraform, Kubernetes, and cloud platforms. Designs scalable architectures, CI/CD pipelines, and observability solutions. Provides security-first DevOps practices and site reliability engineering guidance.

223

devops-engineer

Jeffallan

Use when setting up CI/CD pipelines, containerizing applications, or managing infrastructure as code. Invoke for pipelines, Docker, Kubernetes, cloud platforms, GitOps.

12

terraform-specialist

sickn33

Expert Terraform/OpenTofu specialist mastering advanced IaC automation, state management, and enterprise infrastructure patterns. Handles complex module design, multi-cloud deployments, GitOps workflows, policy as code, and CI/CD integration. Covers migration strategies, security best practices, and modern IaC ecosystems. Use PROACTIVELY for advanced IaC, state management, or infrastructure automation.

12

terraform-test

hashicorp

Comprehensive guide for writing and running Terraform tests. Use when creating test files (.tftest.hcl), writing test scenarios with run blocks, validating infrastructure behavior with assertions, mocking providers and data sources, testing module outputs and resource configurations, or troubleshooting Terraform test syntax and execution.

11

onboarding

ColeMurray

Deploy your own Open-Inspect instance. Use when the user wants to set up, deploy, or onboard to Open-Inspect. Guides through repository setup, credential collection, Terraform deployment, and verification with user handoffs.

10

Search skills

Search the agent skills registry