Agent skill · software engineering · github

import-infrastructure-as-code

Import existing Azure resources into Terraform using Azure CLI discovery and Azure Verified Modules (AVM). Use when asked to reverse-engineer live Azure infrastructure, generate Infrastructure as Code from existing subscriptions/resource groups/resource IDs, map dependencies, derive exact import addresses from downloaded module source, prevent configuration drift, and produce AVM-based Terraform files ready for validation and planning across any Azure resource type.

Why this skill is useful

Adds executable scripts for importing Azure resources into Terraform using AVM, which are not commonly found in public documentation.

What it needs

Requires azure-cli, terraform installed locally. Requires azure account access. About 10k tokens when loaded. Last updated 2026-08-07. 37,534 stars on the source repository.

What this skill does

Import Infrastructure as Code (Azure -> Terraform with AVM) Convert existing Azure infrastructure into maintainable Terraform code using discovery data and Azure Verified Modules. When to Use This Skill Use this skill when the user asks to: Import existing Azure resources into Terraform Generate IaC from live Azure environments Handle any Azure resource type supported by AVM (and document justified non-AVM fallbacks) Recreate infrastructure from a subscription or resource group Map dependencies between discovered Azure resources Use AVM modules instead of handwritten azurerm resources Prerequisites Azure CLI installed and authenticated (az login) Access to the target subscription or resource group Terraform CLI installed Network access to Terraform Registry and AVM index sources Inputs Parameter Required Default Description --- --- --- --- subscription-id No Active CLI context Azure subscription used for subscription-scope discovery and context setting resource-group-name No None Azure resource group used for resource-group-scope discovery resource-id No None One or more Azure ARM resource IDs used for specific-resource-scope discovery At least one of subscription-id, resource-group-name, or resource-id is required. Step-by-Step Workflows 1) Collect Required Scope (Mandatory) Request one of these scopes before running discovery commands: Subscription scope: <subscription-id> Resource group scope: <resource-group-name> Specific resources scope: one or more <resource-id> values Scope handling rules: Treat Azure ARM resource IDs (for example /subscriptions/.../providers/...) as cloud resource identifiers, not local file system paths. Use resource IDs only with Azure CLI --ids arguments (for example az resource show --ids <resource-id>). Never pass resource IDs to file-reading commands (cat, ls, readfile, glob searches) unless the user explicitly says they are local file paths. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills github/import-infrastructure-as-code

View the source on GitHub

Browse the @skills marketplace