| name | terraform-registry-inspector |
| description | Terraform Registry documentation inspector using Chrome DevTools MCP. Use when validating provider documentation rendering, checking version availability, navigating resource/data-source docs, finding source code links, or comparing documentation quality against the Azure RM gold standard. Triggers on requests to inspect, validate, review, or benchmark Terraform provider documentation on registry.terraform.io. |
Terraform Registry Documentation Inspector
A specialized skill for investigating Terraform provider documentation rendering on the Terraform Registry using Chrome DevTools MCP server capabilities.
Purpose
This skill enables systematic investigation of:
- Provider documentation rendering quality
- Version availability and selection
- Resource/data-source documentation navigation
- Subcategory organization
- Source code repository links
- Markdown rendering issues
Gold Standard Reference: Azure RM Provider
The HashiCorp Azure RM Provider (hashicorp/azurerm) represents the gold standard for professional Terraform provider documentation. All quality assessments should be benchmarked against this reference.
Gold Standard URL: https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
Gold Standard Quality Elements
Provider Index Page Excellence
| Element | Azure RM Implementation |
|---|---|
| Provider Description | Links to official Microsoft Azure documentation |
| Clear Sections | Data Sources explanation, Resources explanation |
| External Links | Tutorial links, changelog reference |
| Authentication | Multiple auth method guides as separate linked pages |
| Note Callouts | Important warnings with proper formatting |
| Issue Reporting | "Bugs and Feature Requests" section with GitHub links |
Subcategory Organization (100+ Subcategories)
Azure RM organizes resources by Azure service domain:
- AAD B2C, API Management, Active Directory Domain Services
- App Configuration, App Service (Web Apps), Application Insights
- Compute, Container, Container Apps, CosmosDB
- Database, DNS, Key Vault, Load Balancer
- Machine Learning, Monitor, Network, Storage
- And 80+ more service-specific categories
Best Practice: Group resources by service/domain, not alphabetically.
Dedicated Sections
| Section | Purpose |
|---|---|
| Guides | Authentication guides, migration guides, best practices |
| Functions | Provider-defined functions with clear signatures |
| Resources | Organized by subcategory with clear naming |
| Data Sources | Mirror resource organization patterns |
Resource Documentation Structure (Gold Standard)
From azurerm_resource_group:
1. Title: "azurerm_resource_group" (clean heading)
2. Description: "Manages a Resource Group." (concise)
3. Note Callouts: Multiple warnings about behavior
- Azure automatic deletion warning
- Feature toggle documentation with linked guide
4. Example Usage: Complete, copyable HCL code
5. Arguments Reference:
- Linked argument names for anchor navigation
- (Required)/(Optional) markers
- "Changing this forces a new X" warnings
6. Attributes Reference: Exported attributes list
7. Timeouts: CRUD operation timeouts with defaults
- create (90 minutes)
- read (5 minutes)
- update (90 minutes)
- delete (90 minutes)
8. Import: Clear import command with example ID format
9. ON THIS PAGE: Sidebar navigation for long pages
10. Report an issue: Direct GitHub link
Gold Standard Quality Checklist
Use this checklist when evaluating any provider against the Azure RM gold standard:
Provider-Level Quality
- Index page links to official service documentation
- Guides section exists with authentication/setup guides
- Functions section (if provider has functions)
- Subcategories group resources by service domain
- 100+ subcategories for large providers (proportional to resource count)
- Issue reporting section with GitHub links
- Changelog reference or link
Resource Documentation Quality
- Title is clean resource name (no redundant text)
- Description is concise (one sentence)
- Note callouts for important warnings/behavior
- Links within notes to related guides
- Example Usage is complete and copyable
- Arguments Reference has linked argument names
- Required/Optional markers on all arguments
- Force new warnings where applicable
- Attributes Reference section present
- Timeouts section with CRUD defaults
- Import section with example command
- ON THIS PAGE sidebar navigation
- Report an issue link to GitHub
Navigation Quality
- Version dropdown works correctly
- Search function available in sidebar
- Breadcrumb navigation present
- Subcategory collapse/expand works properly
Comparing Against Gold Standard
To evaluate a provider against Azure RM:
1. Navigate to target provider
2. Open Azure RM in second tab for comparison
3. Walk through Gold Standard Quality Checklist
4. Document gaps and differences
5. Score: (items met / total items) × 100%
Quality Ratings:
| Score | Rating | Interpretation |
|---|---|---|
| 90-100% | Excellent | Matches gold standard |
| 75-89% | Good | Minor improvements needed |
| 50-74% | Fair | Significant gaps exist |
| <50% | Needs Work | Major documentation effort required |
Prerequisites
- Chrome DevTools MCP server connected
- Active browser session available
- Target provider URL (e.g.,
https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest)
Workflow Overview
1. Navigate to Provider → Take snapshot → Identify UI elements
2. Check Versions → Version dropdown → Compare available versions
3. Explore Docs → Navigate menu → Inspect resources/data-sources
4. Find Source Code → Locate GitHub link → Verify repository access
5. Validate Rendering → Check markdown → Identify formatting issues
Phase 1: Initial Provider Navigation
Navigate to Provider Page
Tool: mcp__chrome-devtools__navigate_page
Parameters:
type: "url"
url: "https://registry.terraform.io/providers/{org}/{provider}/latest"
Wait for page load:
Tool: mcp__chrome-devtools__wait_for
Parameters:
text: "Documentation"
timeout: 10000
Take Initial Snapshot
Always take a snapshot first to understand the page structure:
Tool: mcp__chrome-devtools__take_snapshot
The snapshot reveals:
- Navigation elements with UIDs for interaction
- Current version displayed
- Documentation menu structure
- Links to resources, data-sources, functions, guides
Phase 2: Version Investigation
Terraform Registry Version Dropdown
The version dropdown is located in the provider header area. Look for elements like:
comboboxwith version number text- Elements labeled with semver patterns (e.g., "1.2.3", "0.1.0")
Finding Version Selector:
In the snapshot, identify:
- button/combobox containing current version (e.g., "0.0.15")
- Dropdown trigger near "Version" label
Interacting with Version Dropdown:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<version-dropdown-uid>"
After clicking, take another snapshot to see available versions:
Tool: mcp__chrome-devtools__take_snapshot
Version Selection Patterns:
- Versions are listed in descending order (newest first)
- "latest" pseudo-version points to most recent release
- Each version is clickable to navigate to that version's documentation
Verifying Latest Version
To check if the displayed version matches the actual latest:
- Note the version shown in the dropdown
- Compare with GitHub releases using:
Tool: mcp__chrome-devtools__navigate_page
Parameters:
type: "url"
url: "https://github.com/{org}/{repo}/releases/latest"
Phase 3: Documentation Navigation
Registry Documentation Structure
The Terraform Registry organizes documentation into these sections:
| Section | Location | Description |
|---|---|---|
| Overview | index.md |
Provider introduction and configuration |
| Resources | docs/resources/ |
Managed resource documentation |
| Data Sources | docs/data-sources/ |
Read-only data source documentation |
| Functions | docs/functions/ |
Provider-defined function documentation |
| Guides | docs/guides/ |
How-to guides and tutorials |
Navigation Menu Elements
In snapshots, look for:
navigation/tree elements:
- "Resources" expandable section
- "Data Sources" expandable section
- "Functions" section (if available)
- "Guides" section (if available)
- Individual resource/data-source links
Expanding Menu Sections
To expand a collapsed section:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<resources-section-uid>"
Navigating to Specific Resource
After expanding, click on the resource name:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<resource-name-uid>"
Subcategory Navigation
Large providers use subcategories to organize resources. Look for:
- Nested menu items under main sections
- Subcategory headers (e.g., "Compute", "Networking", "Storage")
- "Beta" and "Deprecated" subcategories at bottom of lists
Phase 4: Source Code Discovery
Finding GitHub Links
The Terraform Registry includes links to the provider's source repository. Look for:
- Header Area: GitHub icon or "Source Code" link
- Repository Link: Usually formatted as
github.com/{org}/{repo} - Report Issue Link: Links to GitHub issues page
Identifying Source Link in Snapshot:
Look for:
- link elements with "github.com" href
- Elements with "Source" text
- GitHub icon (octicon)
Clicking Source Code Link:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<github-link-uid>"
Verifying GitHub Repository
After navigating to GitHub:
Tool: mcp__chrome-devtools__take_snapshot
Check for:
- Repository name matches provider
- Latest release tag
- Documentation source in
docs/directory
Phase 5: Documentation Rendering Validation
Key Markdown Elements to Inspect
The Registry renders markdown with specific patterns:
| Element | Registry Rendering | Source Format |
|---|---|---|
| Headings | Hierarchical structure | # ## ### |
| Code blocks | Syntax-highlighted HCL | ```hcl ``` |
| Tables | Bordered tables | Markdown pipe tables |
| Callouts | Colored boxes | ->, ~>, !> sigils |
| Links | Clickable references | [text](url) |
Callout Rendering Patterns
Terraform Registry supports special callout syntax:
| Sigil | Rendering | Purpose |
|---|---|---|
-> |
Blue "Note" box | General information |
~> |
Yellow "Note" box | Important warnings |
!> |
Red "Warning" box | Critical warnings |
Checking Resource Documentation Structure
Navigate to a resource page and verify these sections exist:
- Title:
# resource_name (Resource)format - Description: Overview paragraph with service links
- Example Usage: HCL code block with working example
- Argument Reference: Table or list of arguments
- Attribute Reference: Exported attributes list
- Import: Import command example (if supported)
Taking Screenshots for Visual Validation
Tool: mcp__chrome-devtools__take_screenshot
Parameters:
format: "png"
fullPage: true
filePath: "./registry-docs-{resource}.png"
Phase 6: Common Inspection Tasks
Task: Check All Resources Are Documented
- Navigate to provider page
- Expand "Resources" section in navigation
- Count listed resources
- Compare with
docs/resources/directory in source repo - Identify missing documentation
Task: Validate Version Dropdown
- Click version dropdown
- Take snapshot to list all versions
- Compare with GitHub releases
- Check for version gaps or missing releases
Task: Inspect Subcategory Organization
- Navigate to provider page
- Expand Resources and Data Sources sections
- Identify subcategory groupings
- Verify "Beta" and "Deprecated" are at bottom
- Check for logical organization
Task: Verify Import Documentation
- Navigate to a resource page
- Scroll to "Import" section
- Verify import command syntax
- Check resource identifier format
Task: Check Example Usage Quality
- Navigate to resource documentation
- Locate "Example Usage" section
- Verify code block has HCL syntax highlighting
- Check example is complete and functional
- Verify required arguments are shown
Task: Gold Standard Comparison
Compare any provider against the Azure RM gold standard:
- Open Azure RM in reference tab:
Tool: mcp__chrome-devtools__new_page
Parameters:
url: "https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs"
- Navigate to target provider in main tab
- Walk through Gold Standard Quality Checklist:
Provider-Level Assessment:
- Index page quality
- Guides section presence
- Subcategory organization
- Issue reporting links
- Select matching resources for comparison:
Azure RM: azurerm_resource_group
Target: {provider}_namespace (or equivalent base resource)
- Compare resource documentation:
- Title format
- Description conciseness
- Note callouts present
- Example Usage quality
- Arguments Reference format
- Timeouts section
- Import section
- Calculate quality score:
Score = (items met / total checklist items) × 100%
- Document findings:
Strengths: [What matches gold standard]
Gaps: [What's missing or different]
Recommendations: [Specific improvements]
Task: Timeouts Section Audit
Check if resource documentation includes timeout information:
- Navigate to a resource page
- Look for "Timeouts" section after "Attributes Reference"
- Gold standard includes:
create- timeout for resource creationread- timeout for resource readingupdate- timeout for resource updatesdelete- timeout for resource deletion
- Each should have default values documented
- Link to Terraform timeout configuration docs
Troubleshooting
Page Not Loading
Tool: mcp__chrome-devtools__navigate_page
Parameters:
type: "reload"
timeout: 30000
Element Not Found in Snapshot
The Registry uses dynamic loading. Wait for content:
Tool: mcp__chrome-devtools__wait_for
Parameters:
text: "<expected text>"
timeout: 15000
Version Dropdown Not Responding
The dropdown may require specific interaction patterns:
- Take fresh snapshot
- Identify exact clickable element
- Try hover first, then click
Navigation Menu Collapsed
Some sections require explicit expansion:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<expand-button-uid>"
Markdown Best Practices Reference
Provider Index Page (docs/index.md)
---
page_title: "Provider: {name}"
description: |-
The {name} provider is used to interact with {service}.
---
# {Name} Provider
Brief description of what the provider does.
## Example Usage
` ` `hcl
provider "{name}" {
# Configuration options
}
` ` `
## Authentication
How to configure authentication.
## Argument Reference
* `argument_name` - (Optional/Required) Description.
Resource Documentation (docs/resources/{name}.md)
---
page_title: "{provider}_{resource} Resource - {Provider}"
subcategory: "{Category}" # Optional
description: |-
Manages a {resource}.
---
# {provider}_{resource} (Resource)
Description of what this resource manages.
## Example Usage
` ` `hcl
resource "{provider}_{resource}" "example" {
name = "example"
# Required and common arguments
}
` ` `
## Argument Reference
The following arguments are supported:
* `name` - (Required) The name of the resource.
* `optional_arg` - (Optional) Description. Defaults to `value`.
## Attribute Reference
In addition to all arguments above, the following attributes are exported:
* `id` - The ID of the resource.
* `computed_attr` - Description of computed attribute.
## Import
{resource} can be imported using the `id`:
` ` `shell
terraform import {provider}_{resource}.example 12345
` ` `
Data Source Documentation (docs/data-sources/{name}.md)
---
page_title: "{provider}_{data_source} Data Source - {Provider}"
subcategory: "{Category}" # Optional
description: |-
Reads a {data_source}.
---
# {provider}_{data_source} (Data Source)
Use this data source to read information about {thing}.
## Example Usage
` ` `hcl
data "{provider}_{data_source}" "example" {
name = "example"
}
` ` `
## Argument Reference
* `name` - (Required) The name to look up.
## Attribute Reference
* `id` - The ID of the {thing}.
* `attribute` - Description.
Function Documentation (docs/functions/{name}.md)
---
page_title: "{name} Function - {Provider}"
description: |-
{Brief description}
---
# Function: {name}
Description of what the function does.
## Signature
` ` `text
{name}(arg1 type, arg2 type) return_type
` ` `
## Arguments
1. `arg1` (Type) - Description
2. `arg2` (Type) - Description
## Return Value
Description of return value.
## Example Usage
` ` `hcl
output "result" {
value = provider::{provider}::{name}(arg1, arg2)
}
` ` `
Registry URL Patterns
| URL Pattern | Purpose |
|---|---|
/providers/{org}/{name}/latest |
Latest version overview |
/providers/{org}/{name}/{version} |
Specific version |
/providers/{org}/{name}/latest/docs |
Documentation index |
/providers/{org}/{name}/latest/docs/resources/{resource} |
Resource docs |
/providers/{org}/{name}/latest/docs/data-sources/{ds} |
Data source docs |
/providers/{org}/{name}/latest/docs/functions/{fn} |
Function docs |
/providers/{org}/{name}/latest/docs/guides/{guide} |
Guide docs |
Quick Reference Commands
| Action | Tool | Key Parameters |
|---|---|---|
| Navigate to URL | navigate_page |
type: "url", url: "..." |
| Take snapshot | take_snapshot |
- |
| Click element | click |
uid: "..." |
| Wait for text | wait_for |
text: "...", timeout: N |
| Take screenshot | take_screenshot |
filePath: "..." |
| Go back | navigate_page |
type: "back" |
| Reload page | navigate_page |
type: "reload" |
| Fill input | fill |
uid: "...", value: "..." |
| List pages/tabs | list_pages |
- |
Example Investigation Session
# 1. Start investigation
navigate_page → registry.terraform.io/providers/robinmordasiewicz/f5xc/latest
wait_for → "Documentation"
take_snapshot → Review structure
# 2. Check version
click → version dropdown uid
take_snapshot → List available versions
Verify latest matches expectations
# 3. Explore resources
click → "Resources" navigation section
take_snapshot → List all resources
click → specific resource
take_snapshot → Review resource documentation structure
# 4. Check markdown rendering
Verify: title format, example code, argument table, attributes
take_screenshot → Document any rendering issues
# 5. Find source code
click → GitHub link
take_snapshot → Verify repository
navigate_page → back to Registry
# 6. Document findings
Create report with:
- Version availability
- Resource documentation completeness
- Rendering quality assessment
- Issues found
Example Gold Standard Comparison Session
# 1. Open Azure RM gold standard reference
new_page → registry.terraform.io/providers/hashicorp/azurerm/latest/docs
wait_for → "Authentication"
take_snapshot → Note gold standard structure
# 2. Navigate to gold standard resource
click → "Base" subcategory
click → "azurerm_resource_group"
take_snapshot → Document gold standard resource structure
Note: Title, Description, Notes, Example, Args, Attrs, Timeouts, Import
# 3. Switch to target provider tab
list_pages → Identify tabs
select_page → Target provider tab
# 4. Navigate to equivalent resource
click → "Namespaces" or base subcategory
click → "{provider}_namespace"
take_snapshot → Compare against gold standard
# 5. Run quality checklist
Compare each element:
□ Title format matches gold standard?
□ Description is concise?
□ Note callouts present for warnings?
□ Example Usage complete and copyable?
□ Arguments Reference has linked names?
□ Required/Optional markers present?
□ Attributes Reference section exists?
□ Timeouts section with CRUD defaults?
□ Import section with example?
□ ON THIS PAGE sidebar navigation?
# 6. Calculate and document score
Score: (checked items / 10) × 100%
Rating: Excellent (90%+) | Good (75-89%) | Fair (50-74%) | Needs Work (<50%)
# 7. Generate improvement report
Strengths:
- [List matching elements]
Gaps:
- [List missing elements]
Recommendations:
- [Specific actionable improvements]