terraform-registry-inspector — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited terraform-registry-inspector (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A specialized skill for investigating Terraform provider documentation rendering on the Terraform Registry using Chrome DevTools MCP server capabilities.
This skill enables systematic investigation of:
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
#### 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:
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 linkUse this checklist when evaluating any provider against the Azure RM gold standard:
#### Provider-Level Quality
#### Resource Documentation Quality
#### Navigation Quality
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 |
https://registry.terraform.io/providers/robinmordasiewicz/f5xc/latest)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 issuesTool: 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: 10000Always take a snapshot first to understand the page structure:
Tool: mcp__chrome-devtools__take_snapshotThe snapshot reveals:
The version dropdown is located in the provider header area. Look for elements like:
combobox with version number textFinding Version Selector:
In the snapshot, identify:
- button/combobox containing current version (e.g., "0.0.15")
- Dropdown trigger near "Version" labelInteracting 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_snapshotVersion Selection Patterns:
To check if the displayed version matches the actual latest:
Tool: mcp__chrome-devtools__navigate_page
Parameters:
type: "url"
url: "https://github.com/{org}/{repo}/releases/latest"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 |
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 linksTo expand a collapsed section:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<resources-section-uid>"After expanding, click on the resource name:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<resource-name-uid>"Large providers use subcategories to organize resources. Look for:
The Terraform Registry includes links to the provider's source repository. Look for:
github.com/{org}/{repo}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>"After navigating to GitHub:
Tool: mcp__chrome-devtools__take_snapshotCheck for:
docs/ directoryThe 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) |
Terraform Registry supports special callout syntax:
| Sigil | Rendering | Purpose |
|---|---|---|
-> | Blue "Note" box | General information |
~> | Yellow "Note" box | Important warnings |
!> | Red "Warning" box | Critical warnings |
Navigate to a resource page and verify these sections exist:
# resource_name (Resource) formatTool: mcp__chrome-devtools__take_screenshot
Parameters:
format: "png"
fullPage: true
filePath: "./registry-docs-{resource}.png"docs/resources/ directory in source repoCompare any provider against the Azure RM gold standard:
Tool: mcp__chrome-devtools__new_page
Parameters:
url: "https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs"Provider-Level Assessment:
- Index page quality
- Guides section presence
- Subcategory organization
- Issue reporting linksAzure RM: azurerm_resource_group
Target: {provider}_namespace (or equivalent base resource)- Title format
- Description conciseness
- Note callouts present
- Example Usage quality
- Arguments Reference format
- Timeouts section
- Import sectionScore = (items met / total checklist items) × 100%Strengths: [What matches gold standard]
Gaps: [What's missing or different]
Recommendations: [Specific improvements]Check if resource documentation includes timeout information:
create - timeout for resource creationread - timeout for resource readingupdate - timeout for resource updatesdelete - timeout for resource deletionTool: mcp__chrome-devtools__navigate_page
Parameters:
type: "reload"
timeout: 30000The Registry uses dynamic loading. Wait for content:
Tool: mcp__chrome-devtools__wait_for
Parameters:
text: "<expected text>"
timeout: 15000The dropdown may require specific interaction patterns:
Some sections require explicit expansion:
Tool: mcp__chrome-devtools__click
Parameters:
uid: "<expand-button-uid>"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.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
` ` `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.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)
}
` ` `| 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 |
| 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 | - |
# 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# 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]~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.