Contributing to Terraform Skill banner
antonbabenko antonbabenko

Contributing to Terraform Skill

DevOps community intermediate

Description

Thank you for your interest in improving terraform-skill! This document provides guidelines for contributors.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

Repository README

This is the README for antonbabenko/terraform-skill, shared by 4 entries in this directory. It describes the repository, not this entry specifically.

Contributing to Terraform Skill

Thank you for your interest in improving terraform-skill! This document provides guidelines for contributors.

Quick Start

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes following the guidelines below
  4. Test your changes (see Testing Requirements)
  5. Submit a pull request

When to Contribute

**Good contributions:**

  • ✅ New Terraform/OpenTofu best practices based on community consensus
  • ✅ Version-specific features for new Terraform/OpenTofu releases
  • ✅ Corrections to outdated or incorrect information
  • ✅ Improved examples or patterns
  • ✅ Better organization or clarity
  • ✅ Testing framework improvements

**Not suitable for contributions:**

  • ❌ Personal preferences without community consensus
  • ❌ Provider-specific resource details (use Terraform MCP tools instead)
  • ❌ Untested changes (see TDD requirement below)
  • ❌ Content that duplicates existing Claude knowledge

Content Standards

Frontmatter Requirements

**CRITICAL:** SKILL.md frontmatter must contain ONLY two fields:

  • name - Skill name (letters, numbers, hyphens only)
  • description - When to use this skill
---
name: terraform-skill
description: Use when working with Terraform or OpenTofu - creating modules,
  writing tests...
---

**Do NOT add:**

  • author field (put in README.md)
  • version field (managed by release workflow)
  • license field (put in README.md and LICENSE)
  • ❌ Any other custom fields

**Why:** Per official skill standards, only `name` and `description` are supported. Extra fields waste tokens.

Description Best Practices

**Format:** Start with "Use when..." and list specific triggers

**Good example:**

description: >-
  Use when working with Terraform or OpenTofu - creating modules, writing
  tests (native test framework, Terratest), setting up CI/CD pipelines,
  reviewing configurations, choosing between testing approaches, debugging
  state issues, implementing security scanning (trivy, checkov), or making
  infrastructure-as-code architecture decisions

**Bad example:**

description: Comprehensive skill for Terraform development covering testing, modules, CI/CD, and production patterns

**Why:** Description must focus on WHEN to use (triggers/symptoms), not WHAT it does (workflow summary). See plan file and writing-skills documentation for rationale.

Token Efficiency

**SKILL.md Target:** <1,500 words

**Techniques:**

  • Use progressive disclosure (move details to references/*.md)
  • Prefer tables over prose
  • Compress link sections (pipe-separated)
  • Reference other files instead of repeating content

**Current stats:** ~1,400 words, ~280 lines

File Organization

terraform-skill/
├── SKILL.md                    # Core skill (<500 lines guideline)
├── references/                     # Reference files (progressive disclosure)
│   ├── testing-frameworks.md
│   ├── module-patterns.md
│   ├── ci-cd-workflows.md
│   ├── security-co