AI-Assisted Module Development

Experimental Content

The content in this section represents experimental exploration of emerging technologies and innovative approaches. To learn more about our experimental content and its implications, please refer to the Experimental Section Overview.

For Module Owners

This section covers module development and maintenance scenarios and is primarily relevant for AVM module owners. If you are an end user looking to leverage AVM to develop complex solutions using AI, see AI-Assisted IaC Solution Development.

Overview

AVM module owners and members of the AVM core team can leverage GitHub Copilot and related AI capabilities to accelerate the development, maintenance, and validation of AVM Bicep modules. By embedding AVM-specific knowledge directly into the development environment, we reduce manual effort, improve consistency, and help ensure compliance with AVM specifications from the start.

The AVM core team is building a set of AI-powered assets that GitHub Copilot can use to provide AVM-aware assistance. These assets fall into several categories:

  • Custom Instructions: Markdown files that automatically guide GitHub Copilot’s behavior whenever it generates or reviews code, providing persistent context about the project’s baseline, such as coding standards and compliance requirements.
  • Custom Agents: Specialized AI personas that focus on a specific workflow (e.g., planning, implementing, or validating module changes), each with a defined scope, tools, and the ability to hand off work to other agents.
  • Prompt Files: Reusable, parameterized task templates that define a specific analysis or action for Copilot to perform, targeting specific modules or files.
  • Skills: Detailed, step-by-step workflow definitions that encode domain-specific expertise. Skill descriptions are included in the system prompt on every chat turn, but their full content is loaded into context on demand — only when the model determines relevance to the user’s request or the user explicitly invokes the skill.

The actual implementations of these assets may vary between Bicep and Terraform, and they will evolve over time as best practices emerge and capabilities mature. The AVM core team will continue adding documentation and examples as we make progress - both developing new assets from scratch and refining existing ones.

Coming Soon

Content for AI-assisted AVM Terraform module development is currently being developed and will be available soon. Stay tuned for updates!

Subsections of AI-Assisted Module Dev

AVM Bicep AI Assets

Experimental Content

The content in this section represents experimental exploration of emerging technologies and innovative approaches. To learn more about our experimental content and its implications, please refer to the Experimental Section Overview.

This page provides a catalog of all AI-assisted development assets available in the Bicep Registry Modules (BRM) repository. Each asset is linked to its source file for full details.

Custom Instructions

Custom instructions provide persistent, repository-wide context that shapes how GitHub Copilot generates and reviews code. They are automatically loaded by Copilot when working in the repository.

Global Instructions

Global instructions provide GitHub Copilot with an overview of the AVM Bicep repository structure, critical compliance requirements (including mandatory AVM specification adherence), tool usage guidance, module discovery methods (AVM module index, MCR, Azure Resource Reference), and schema/API version lookup procedures. This is the primary instruction file that ensures all AI-generated code aligns with AVM standards.

See the full content of the global instructions here: .github/copilot-instructions.md

Skills

Skills encode complex, multi-step domain workflows into structured instructions that GitHub Copilot can follow precisely. They define prerequisites, rules, phases, and expected outputs. When the IDE starts, skill descriptions are indexed so that Copilot is aware of their existence and purpose. The full content of a skill is only loaded into the context when the user’s prompt references a topic that aligns with the skill’s described purpose.

Child Module Publishing

Source: .github/skills/avm-child-module-publishing/SKILL.md
Description: Guides the end-to-end workflow for publishing a Bicep child module to the AVM public registry. Covers prerequisite verification, allowed-list registration, telemetry instrumentation, version file creation, changelog updates, parent module updates, and final validation. This skill implements the official Child Module Publishing workflow.

Example prompt:

Publish a child module avm/res/network/virtual-network/virtual-network-peering.

Note: in some cases, VS Code is not identifying the correct skill based on the above prompt. If this happens, you can try to use the follow prompt that explicitly triggers the correct skill:

/AVM-Child-Module-Publishing Publish the child module avm/res/network/virtual-network/subnet!

Prompt Files

Prompt files are reusable, parameterized task templates that can be invoked to perform specific analysis or planning tasks against a target module.

Name / SourceDescriptionExample
Tech-debt-analysis .github/prompts/avm.tech-debt-analysis-ARM-API.prompt.mdAnalyzes AVM Bicep modules for technical debt, including inconsistencies, documentation gaps, spelling mistakes, conflicting information, and quality issues across module files and examples. This is a read-only analysis — it does not modify any files./AVM-Tech-debt-analysis
AVM-Update-module-with-latest-ARM-API-versions .github/prompts/avm.create-plan-update-ARM-API.prompt.mdAnalyzes AVM Bicep modules to identify resources with outdated ARM API versions, compares them against the latest stable versions, and generates detailed implementation plans for required updates. This is a planning-only task — it does not modify any files./AVM-Update-module-to-latest-API-versions

AVM Terraform AI Assets

Coming Soon

Content for AI-assisted AVM Terraform module development is currently being developed and will be available soon. Stay tuned for updates!