avm-tf-documentation
Skill0 starsChanged 46 days agoMITView on GitHub
Use for AVM Terraform generated README content, _header.md, _footer.md, examples documentation, terraform-docs inputs, and Avm.Authoring documentation checks.
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-interfacesSkill
- avm-tf-lifecycleSkill
- avm-tf-migrationSkill
- avm-tf-processSkill
- avm-tf-submodulesSkill
- avm-tf-telemetrySkill
- avm-tf-testingSkill
- avm-tf-tflintSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 8 are distinctive, and 5 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.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Put interface semantics in variable descriptions so generated input tables stay useful.
- Very specific: line 27
Document every variable field, especially resource_types, retry, timeouts, and ignore_body_changes.
- Very specific: line 29
Ensure provider snippets include Azure/azapi.
- Distinctive: line 33
Prefer working examples over duplicated implementation prose.
- Distinctive: line 34
Keep headings and links stable for Terraform Registry rendering.
- Distinctive: line 35
Do not explain internal review decisions or migration history in the README unless consumers need that information.
- Very specific: line 39
Use Avm.Authoring from PowerShell 7.4 or later:
- Very specific: line 58
Do not run terraform-docs directly unless debugging the authoring implementation.
- Distinctive: line 77
Use heredocs for structured object documentation.
- Distinctive: line 98
If a generated README is stale:
- Very specific: line 101
run avm docs or avm pre-commit.
- Distinctive: line 103
commit the source and generated output together.
- Distinctive: line 105
Do not patch the generated table to make a check pass.
≈ “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 Documentation
AVM Terraform README.md files are generated. Never edit them directly.
Documentation for every new resource-deploying module MUST describe an AzAPI-first implementation. Authored and generated snippets use AzAPI for all control-plane and ordinary supporting resources and MUST NOT present AzureRM as a convenience alternative.
Source files
For the root module, every submodule, and every documented example:
_header.mdcontains authored content before the generated Terraform tables.- Terraform sources provide requirements, providers, resources, modules, inputs, and outputs.
_footer.mdcontains authored content after the generated tables, including the required data-collection notice where applicable.README.mdis the generated result committed to Git.
Submodules are full AVM modules and need their own _header.md, _footer.md, and generated README.md.
Authoring rules
- Explain purpose, important behavior, prerequisites, and supported scenarios in
_header.md. - Put interface semantics in variable descriptions so generated input tables stay useful.
- Document every variable field, especially
resource_types,retry,timeouts, andignore_body_changes. - For
ignore_body_changes, state that paths are body-relative dot notation, ignored configuration is not sent to Azure, and changes take effect only after apply. - Ensure provider snippets include
Azure/azapi. Includehashicorp/azurermonly for an exact permitted data-plane/non-ARM operation. - In examples, E2E instructions, Terraform tests, fixtures, and setup or teardown snippets, use AzAPI for direct Azure dependencies not supplied by the module under test.
- For every permitted
azurerm_*resource or data-source block, independently document the exact block, the specific unsupported data-plane/non-ARM operation, why no applicable AzAPI resource or action can implement it, the upstream AzAPI issue or pull request, and that the block must be replaced when support ships. One documented block does not authorize another. - Preserve legitimate published AVM module source addresses ending in
/azurerm; that suffix is a legacy Registry namespace, not an AzureRM provider requirement. - Prefer working examples over duplicated implementation prose.
- Keep headings and links stable for Terraform Registry rendering.
- Do not explain internal review decisions or migration history in the README unless consumers need that information.
Generate documentation
Use Avm.Authoring from PowerShell 7.4 or later:
Import-Module Avm.Authoring
avm docsavm pre-commit also regenerates documentation:
avm pre-commitReview and commit the generated README changes. After the worktree is clean, avm pr-check verifies documentation as part of the full PR gauntlet:
avm pr-checkDo not run terraform-docs directly unless debugging the authoring implementation. Do not use ./avm, avm.ps1, Make, Porch, or a container.
Descriptions
Descriptions must be precise enough for a consumer to use the input or output without reading the implementation:
variable "parent_id" {
type = string
nullable = false
description = "The fully-qualified ARM resource ID of the existing parent scope into which the resource will be deployed."
}
output "resource_id" {
value = azapi_resource.this.id
description = "The resource ID of the deployed resource."
}Use heredocs for structured object documentation. Keep defaults and constraints synchronized with the actual type:
variable "ignore_body_changes" {
type = object({
example_widgets = optional(list(string), [])
})
default = {}
nullable = false
description = <<DESCRIPTION
Body-relative paths to ignore for each AzAPI resource. Paths use dot notation
and changes take effect only after apply. Configuration for an ignored path is
not sent to Azure until the path is removed.
- `example_widgets` - Paths ignored on the widget resource.
DESCRIPTION
}Failure handling
If a generated README is stale:
- change the Terraform source or authored header/footer that owns the content;
- run
avm docsoravm pre-commit; - inspect the generated diff; and
- commit the source and generated output together.
Do not patch the generated table to make a check pass.
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.

