avm-tf-process
Skill0 starsChanged 46 days agoMITView on GitHub
Use for the AVM Terraform contribution process from module proposal and repository setup through implementation, Avm.Authoring validation, pull request review, and release.
232 other projects use a version of this.
Adopted by
Most recently taken up by
- Azure/azure-verified-modules-managed-filesword for word, first seen Oct 25, 2026
- Azure/terraform-azurerm-avm-ptn-commercial-marketplaceword for word, first seen Oct 25, 2026
- Azure/terraform-azurerm-avm-ptn-aca-lza-hosting-environmentword for word, first seen Oct 15, 2026
- Azure/terraform-azurerm-avm-res-dataprotection-backupvaultword for word, first seen Oct 10, 2026
- Azure/terraform-azure-avm-res-signalrservice-webpubsubword for word, first seen Oct 1, 2026
- Azure/terraform-azure-avm-res-insights-privatelinkscopeword for word, first seen Sep 30, 2026
Used with
Projects with it also use avm-tf-pattern-review.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Microsoft AzureSkillavm-tf-pattern-review
Review an existing Azure Verified Modules (AVM) Terraform pattern module against current PTN conventions, implementation behavior, examples, and CI. Use for 'review this AVM pattern module', 'check Terraform AVM conventions', 'is this pattern AVM-ready', or 'audit AVM module compliance'. Read-only by default; verifies mocked test discovery, minimum Terraform compatibility, provider policy, and example wiring. Not a module generator, automatic fixer, or deployment workflow.
Also in 188 projects that use this
Other versions232 projects use a version of this.
Word for word · 232
- Azure/terraform-azurerm-avm-ptn-alz★ 135100% same
- Azure/terraform-azurerm-avm-res-keyvault-vault★ 50100% same
- Azure/terraform-azurerm-avm-ptn-aks-production★ 44100% same
- Azure/terraform-azurerm-avm-ptn-aiml-landing-zone★ 42100% same
- Azure/terraform-azurerm-avm-ptn-cicd-agents-and-runners★ 42100% same
- Azure/terraform-azurerm-avm-res-compute-virtualmachine★ 42100% same
- Azure/terraform-azurerm-avm-res-containerservice-managedcluster★ 42100% same
- Azure/terraform-azurerm-avm-res-storage-storageaccount★ 39100% same
- Azure/terraform-azurerm-avm-res-web-site★ 34100% same
- Azure/terraform-azurerm-avm-res-network-privatednszone★ 32100% same
222 more not listed
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- avm-tf-azapiSkill
- avm-tf-classificationsSkill
- avm-tf-codestyleSkill
- avm-tf-conftestSkill
- avm-tf-documentationSkill
- avm-tf-interfacesSkill
- avm-tf-lifecycleSkill
- avm-tf-migrationSkill
- avm-tf-submodulesSkill
- avm-tf-telemetrySkill
- avm-tf-testingSkill
- avm-tf-tflintSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 8 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use the current AVM process and specification pages from <https://azure.github.io/Azure-Verified-Modules/llms.txt>.
- Distinctive: line 14
Before creating or restructuring a repository, read the current requirements for:
- Very specific: line 26
Start from the current AVM Terraform template or governance-managed repository state.
- Distinctive: line 41
When supporting configuration needs a direct Azure resource that the module under test does not supply, use an AzAPI resource, data source, …
- Distinctive: line 57
Use the local specialized skills for implementation details, but resolve any conflict in favor of the current published spec.
- Distinctive: line 61
Keep changes scoped and preserve unrelated history.
- Distinctive: line 78
Do not add shell-hook counterparts.
- Distinctive: line 104
Commit the complete worktree before running:
- Distinctive: line 127
Follow the current AVM semantic-versioning and publishing process.
- Very specific: line 135
Use Avm.Authoring throughout.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AVM Terraform Contribution Process
Use the current AVM process and specification pages from https://azure.github.io/Azure-Verified-Modules/llms.txt. Older public setup pages or module repositories may still contain the retired launcher, Makefile, container, or Porch flow.
1. Confirm classification and ownership
Determine whether the work is a resource, pattern, or utility module. Confirm the approved module name and ownership from the AVM indexes and proposal rather than inventing a name.
Before creating or restructuring a repository, read the current requirements for:
- repository naming and visibility;
- owner and AVM team permissions;
- CODEOWNERS;
- branch protection and required checks;
- issue and pull request templates;
- release and publishing; and
- support lifecycle.
2. Establish the managed repository baseline
Start from the current AVM Terraform template or governance-managed repository state. Import Avm.Authoring and synchronize managed files:
Install-PSResource -Name Avm.Authoring -Repository PSGallery -TrustRepository
Import-Module Avm.Authoring
avm version
avm syncReview synchronized changes before continuing. Do not restore files from the retired Make, Porch, or container workflow.
3. Implement from current specifications
Build every new resource-deploying module repository on AzAPI. Do not declare or configure hashicorp/azurerm, and do not create any azurerm_* resource or data source for control-plane operations, convenience, or ordinary supporting infrastructure in implementation, submodules, examples, E2E configurations, Terraform tests, fixtures, setup or teardown Terraform, migration examples, documentation examples, or generated snippets.
When supporting configuration needs a direct Azure resource that the module under test does not supply, use an AzAPI resource, data source, or action. Each standalone Terraform root that performs direct Azure operations includes Azure/azapi in required_providers.
Permit hashicorp/azurerm ~> 4.0 only when required by an independently justified azurerm_* resource or data-source block. Each block scopes to one specific unsupported data-plane/non-ARM operation, documents the exact block and why AzAPI cannot implement it with an upstream AzAPI issue or pull request, and is replaced when support ships. Prefer an AVM TFLint override file, but use a justified line-level annotation when it avoids suppressing unrelated findings in the same scope. One valid block does not authorize another. Examples and tests may configure AzureRM only to exercise such blocks. Follow avm-tf-tflint.
Fetch llms.txt, then read each applicable raw spec page. At minimum, review:
- module classification and composition rules;
- TFFR3-TFFR8 for AzAPI;
- TFRMFR1 and TFNFR38 for parent and resource IDs;
- TFRMNFR1 and TFRMNFR2 for submodules and resource labels;
- TFNFR39 for file layout;
- standard interfaces and telemetry;
- tests and examples;
- documentation; and
- semantic versioning and breaking changes.
Use the local specialized skills for implementation details, but resolve any conflict in favor of the current published spec.
4. Develop on a focused branch
Keep changes scoped and preserve unrelated history. Add or update:
- Terraform implementation and exact types;
- root and submodule tests;
- representative examples;
_header.mdand_footer.md;- migration or upgrade-path coverage when state or addresses change; and
- generated README files through
Avm.Authoring.
Scripts and lifecycle hooks must be PowerShell. Supported hook names include:
tests/unit/setup.ps1;tests/integration/setup.ps1;examples/<name>/pre.ps1;examples/<name>/post.ps1; andexamples/<name>/tflint-pre.ps1.
Do not add shell-hook counterparts.
5. Run targeted tests
Choose the smallest tier that proves the change:
avm test unit
avm test integration
avm test e2e --example <example-name>Unit tests mock all required providers. Integration and E2E tests need real Azure authentication. E2E tests must prove deployment, idempotency, and cleanup.
6. Apply pre-commit changes
Run:
avm pre-commitFor Terraform this performs managed-file sync, fixable convention rules, transforms, formatting, and documentation generation. Review every generated or synchronized change and rerun targeted tests if the generated change affects behavior.
7. Commit, then run the full PR gate
Commit the complete worktree before running:
avm pr-checkavm pr-check requires a clean Git worktree. It checks sync, formatting, transforms, lint, APRL/AVMSEC policy evaluation, conventions, Terraform validation, and documentation. Unit tests remain a separate test tier and CI job; a passing PR check is not a substitute for required unit, integration, or E2E coverage.
8. Open and review the pull request
The pull request must explain:
- what changed and why;
- applicable specification IDs;
- compatibility or breaking-change impact;
- state migration steps when addresses or providers changed;
- tests and examples exercised; and
- confirmation that control-plane and supporting resources use AzAPI, plus the evidence and upstream link for any narrow data-plane/non-ARM AzureRM exception.
Review the final diff rather than only the hand-authored files. Managed and generated outputs are part of the change.
9. Release
Follow the current AVM semantic-versioning and publishing process. Confirm:
- the change classification matches the release version;
- generated documentation is current;
- required checks and test tiers passed;
- upgrade notes are included where needed; and
- repository permissions and release automation remain governance-compliant.
Use Avm.Authoring throughout. Do not substitute ./avm, avm.ps1, Make, Porch, Docker, Podman, or manually installed pinned tools.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

