akin-ozer/cc-devops-skills12 files

Terraform Validator

Validate, lint, audit, or plan Terraform/.tf/HCL files; runs tflint, checkov, terraform validate.

Specification
Skill ID
akin-ozer/cc-devops-skills/terraform-validator
Publisher
akin-ozer
Repository
cc-devops-skills
Installs
0
Files
12
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

akin-ozer/cc-devops-skills/terraform-validatorInstalls these files
  • SKILL.md
  • references/advanced_features.md
  • references/best_practices.md
  • references/common_errors.md
  • references/security_checklist.md
  • scripts/extract_tf_info.py
  • scripts/extract_tf_info_wrapper.sh
  • scripts/install_checkov.sh
  • scripts/run_checkov.sh
  • tests/.terraform.lock.hcl
  • tests/sample.tf
  • tests/test_regression.sh

What this skill tells the agent

Terraform Validator

Comprehensive toolkit for validating, linting, and testing Terraform configurations with automated workflows for syntax validation, security scanning, and intelligent documentation lookup.

⚠️ Critical Requirements Checklist

STOP: You MUST complete these steps in order. Do NOT skip any REQUIRED step.

StepActionRequired
1Run bash scripts/extract_tf_info_wrapper.sh <path>✅ REQUIRED
2Context7 lookup for ALL providers (explicit AND implicit); WebSearch fallback if not found✅ REQUIRED
3READ references/security_checklist.md✅ REQUIRED
4READ references/best_practices.md✅ REQUIRED
5Run terraform fmt✅ REQUIRED
6Run tflint (or note as skipped if unavailable)Recommended
7Run terraform init (if not initialized)✅ REQUIRED
8Run terraform validate✅ REQUIRED
9Run bash scripts/run_checkov.sh <path>✅ REQUIRED
10Cross-reference findings with security_checklist.md sections✅ REQUIRED
11Generate report citing reference files✅ REQUIRED
12Run regression tests (bash tests/test_regression.sh)✅ REQUIRED
13Run lightweight CI checks (bash -n, py_compile, smoke)✅ REQUIRED
IMPORTANT: Steps 3-4 (reading reference files) must be completed BEFORE running security scans. The reference files contain remediation patterns that MUST be cited in your report.
Context7 Fallback: If Context7 does not have a provider (common for: random, null, local, time, tls), use WebSearch: "terraform-provider-{name} hashicorp documentation"

When to Use This Skill

  • Working with Terraform files (.tf, .tfvars, .tfstate)
  • Validating Terraform configuration syntax and structure
  • Linting and formatting HCL code
  • Performing dry-run testing with terraform plan
  • Debugging Terraform errors or misconfigurations
  • Understanding custom Terraform providers or modules
  • Security validation of Terraform configurations

External Documentation

Validation Workflow

IMPORTANT: Follow this workflow in order. Each step is REQUIRED unless explicitly marked optional.

1. Identify Terraform files in scope
   ├─> Single file, directory, or multi-environment

2. Extract Provider/Module Info (REQUIRED)
   ├─> MUST run: bash scripts/extract_tf_info_wrapper.sh <path>
   ├─> Parse output for providers and modules
   └─> Use for Context7 documentation lookup

3. Lookup Provider Documentation (REQUIRED)
   ├─> For EACH provider detected:
   │   ├─> mcp__context7__resolve-library-id with "terraform-provider-{name}"
   │   ├─> mcp__context7__query-docs for version-specific guidance
   │   └─> If NOT found in Context7: WebSearch fallback (see below)
   └─> Note any custom/private providers for WebSearch

4. Read Reference Files (REQUIRED before validation)
   ├─> MUST READ: references/security_checklist.md (before security scan)
   ├─> MUST READ: references/best_practices.md (for structure validation)
   └─> Reference common_errors.md if errors occur

5. Format and Lint (REQUIRED)
   ├─> MUST run: terraform fmt -recursive (auto-fix formatting)
   ├─> MUST run: terraform fmt -check -recursive (verify no drift)
   ├─> RUN: tflint (or note as skipped if unavailable)
   └─> Report formatting issues

6. Syntax Validation (REQUIRED)
   ├─> MUST run: terraform init (if not initialized)
   ├─> MUST run: terraform validate
   └─> Report syntax errors (consult common_errors.md)

7. Security Scanning (REQUIRED)
   ├─> MUST run: bash scripts/run_checkov.sh <path>
   ├─> Analyze policy violations against security_checklist.md
   └─> Suggest remediations from reference

8. Dry-Run Testing (if credentials available)
   ├─> terraform plan
   ├─> Analyze planned changes
   └─> Report potential issues

9. Regression and Wrapper Determinism Checks (REQUIRED)
   ├─> MUST run: bash tests/test_regression.sh
   ├─> Confirms parser error handling returns non-zero
   ├─> Confirms implicit provider detection for docs lookup
   ├─> Confirms wrapper argument handling is deterministic
   └─> Confirms checkov wrapper preserves scanner exit code

10. Lightweight CI Checks (REQUIRED)
   ├─> MUST run: bash -n scripts/*.sh
   ├─> MUST run: python3 -m py_compile scripts/*.py
   ├─> MUST run: smoke check for extract wrapper on sample fixture
   └─> Record command outputs and exit codes

11. Generate Comprehensive Report
   ├─> Include all findings with severity
   ├─> Reference best_practices.md for recommendations
   └─> Offer to fix issues if appropriate

Required Reference File Reading

You MUST read these reference files during validation:

WhenReference FileAction
Before security scanreferences/security_checklist.mdRead to understand security checks and remediation patterns
During validationreferences/best_practices.mdRead to validate project structure, naming, and patterns
If errors occurreferences/common_errors.mdRead to find solutions for specific error messages
If using Terraform 1.10+references/advanced_features.mdRead to understand ephemeral values, actions, list resources

Required Script Usage

You MUST use these wrapper scripts instead of calling tools directly:

TaskScriptCommand
Extract provider/module infoextract_tf_info_wrapper.shbash scripts/extract_tf_info_wrapper.sh <path>
Run security scanrun_checkov.shbash scripts/run_checkov.sh <path>
Install checkov (if missing)install_checkov.shbash scripts/install_checkov.sh install
Note: extract_tf_info_wrapper.sh automatically handles the python-hcl2 dependency. If system Python lacks python-hcl2, it creates/reuses a cached virtual environment under ~/.cache/terraform-validator/ by default.

Script Run Context (REQUIRED)

  • Default working directory: devops-skills-plugin/skills/terraform-validator
  • If running from elsewhere, use absolute script paths:
  • bash /absolute/path/to/terraform-validator/scripts/extract_tf_info_wrapper.sh <path>
  • bash /absolute/path/to/terraform-validator/scripts/run_checkov.sh <path>
  • bash /absolute/path/to/terraform-validator/scripts/install_checkov.sh install

Context7 Provider Documentation Lookup (REQUIRED)

For EVERY provider detected, you MUST lookup documentation via Context7:

1. Run extract_tf_info_wrapper.sh to get provider list
2. For each provider (e.g., "aws", "google", "azurerm"):
   a. Call: mcp__context7__resolve-library-id with "terraform-provider-{name}"
   b. Call: mcp__context7__query-docs with the resolved ID
   c. Note version-specific features and constraints
3. Include relevant provider guidance in validation report

Example for AWS provider:

mcp__context7__resolve-library-id("terraform-provider-aws")
mcp__context7__query-docs(context7CompatibleLibraryID, "best practices")

Context7 Fallback to WebSearch (REQUIRED)

If Context7 does not find a provider, you MUST fall back to WebSearch:

1. If mcp__context7__resolve-library-id returns no results or provider not found:
   a. Use WebSearch with query: "terraform-provider-{name} hashicorp documentation"
   b. For specific version: "terraform-provider-{name} {version} documentation site:registry.terraform.io"
2. Common providers NOT in Context7 (use WebSearch directly):
   - random (hashicorp/random)
   - null (hashicorp/null)

Use this skill in a project

Open any RiverX project, search the Skills panel for akin-ozer/cc-devops-skills/terraform-validator, and install it in one click.

Use this skill