Terraform and OpenTofu Guide
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
Fix Terraform provider end user documentation issues detected by swissshepherd (ss).
$ npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hashicorp/terraform-provider-aws fixdocs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fixdocs .claude/skills/fixdocs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fixdocs" agent skill from https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocs into .claude/skills/fixdocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fixdocs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hashicorp/terraform-provider-aws fixdocs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/fixdocs .agents/skills/fixdocs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fixdocs" agent skill from https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocs into .agents/skills/fixdocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fixdocs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hashicorp/terraform-provider-aws fixdocs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/fixdocs .cursor/skills/fixdocs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fixdocs" agent skill from https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocs into .cursor/skills/fixdocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fixdocs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hashicorp/terraform-provider-aws.git --path .agents/skills/fixdocs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hashicorp/terraform-provider-aws fixdocs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/fixdocs .gemini/skills/fixdocs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fixdocs" agent skill from https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocs into .gemini/skills/fixdocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fixdocs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hashicorp/terraform-provider-aws fixdocsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/fixdocs .github/skills/fixdocs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fixdocs" agent skill from https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocs into .github/skills/fixdocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fixdocs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hashicorp/terraform-provider-aws fixdocs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hashicorp/terraform-provider-aws.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/fixdocs .opencode/skills/fixdocs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fixdocs" agent skill from https://github.com/hashicorp/terraform-provider-aws/tree/main/.agents/skills/fixdocs into .opencode/skills/fixdocs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fixdocs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fixdocsFix Terraform provider end user documentation issues detected by swissshepherd (ss).
Fixdocs is an agent skill from hashicorp/terraform-provider-aws, published by the product's own GitHub organization. Fix Terraform provider end user documentation issues detected by swissshepherd (ss). Removes an ignored target from the config, runs ss, validates findings, fixes the documentation, and commits.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Infrastructure as code. It works with Terraform. The repository describes itself as: The AWS Provider enables Terraform to manage AWS resources. The licence is MPL-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 972faab. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
makegitjustFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fixdocs loads about 1.8k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 889 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from hashicorp/terraform-provider-aws at commit 972faab, republished under its MPL-2.0 licence (© hashicorp). 889 words, ~1,833 tokens.
.claude/skills/fixdocs/SKILL.md (or your agent's skills folder).<!-- Copyright IBM Corp. 2014, 2026 -->
<!-- SPDX-License-Identifier: MPL-2.0 -->
swissshepherdFix Terraform provider documentation issues by removing targets from the swissshepherd ignore list, validating findings against the schema, and correcting the documentation.
Trigger this skill when the user:
Optional:
aws_s3_bucket) or prefix (e.g., aws_s3_)resource, data_source, ephemeral, etc.)If no target is specified, pick the next one from ignore_targets in .ci/swissshepherd-weak.hcl.
make swissshepherdThis MUST output "All checks passed." before proceeding. If it doesn't, stop and tell the user the baseline is dirty.
.ci/swissshepherd-weak.hclignore_targets list (within a check block)swissshepherd --config .ci/swissshepherd-weak.hcl --target <name> --type <type>If "All checks passed" — the target was already clean. Commit the config removal and move to the next target.
For each finding, determine if it's valid by checking the schema source of truth:
internal/service/<service>/<resource>.go or *_data_source.go) to confirm the attribute/block exists in the schema.If a finding appears to be a swissshepherd bug (schema says one thing, ss reports another), note it and skip — do NOT fix the doc incorrectly.
BOTH WARNINGS AND ERRORS should be fixed!!
Open the doc file (path is in the ss output) and apply fixes:
| Finding | Fix |
|---|---|
| "block X is not documented" | Add a ### \block_name` Block` section with its attributes listed |
| "attribute X should be documented in Attribute Reference" | Add to Attribute Reference section |
| "attribute X should not appear in Argument Reference" | Move from Arguments to Attributes |
| "documented attribute X does not exist in schema" | Remove from docs (it's phantom) |
| "missing (Required) or (Optional) label" | Add the correct label based on schema |
| "heading ... should be ..." | Rename to the suggested heading |
| "byline does not match expected texts" | Replace with a standard byline |
| "reference-style link definition" | Convert [ref]: url to inline [text](url) |
| "avoid "X"; use "Y" instead" (banned_glosses) | Replace the spelled-out phrase with its abbreviation. Never edit YAML frontmatter to do this — if the flagged text is in subcategory/layout/page_title/description, skip and report it instead. |
When adding or editing documentation:
* \name` - (Required) Description.or* `name` - (Optional) Description.`* \name` - Description.` (no Required/Optional label)swissshepherd's banned_glosses check enforces this; see Abbreviations### `block_name` BlockAuthoritative reference: docs/end-user-documentation.md. When this skill and that document disagree, the document wins.
swissshepherd --config .ci/swissshepherd-weak.hcl --target <name> --type <type>Must output "All checks passed." If not, iterate on remaining findings.
make swissshepherdMust output "All checks passed." to confirm no regressions.
Stage and commit:
git add .ci/swissshepherd-weak.hcl website/docs/
git commit -m "<resource_name>: Fix documentation per swissshepherd"Use the resource name without the aws_ prefix in the commit message scope when it matches a single service. For multi-target batches, use the service name.
--config .ci/swissshepherd-weak.hcl — running without config produces 20,000+ findings.ignore_targets under check "schema_docs" AND check "import_section" (or others). Remove from all.ignore_contents_check unless the user explicitly asks — those are structural exceptions.### `y` Block (just the child name) nested contextually after the parent. If the child name collides with another block of the same name elsewhere in the file (e.g. the same nested block name reused under two different parents), use the dotted path instead: ### `x.y` Block, with a matching dotted anchor. There is no single correct form — prefer the shorter undotted name, but use dotted paths when needed to keep headings unique. Be consistent within a file: don't mix dotted and undotted for the same block across the doc.User: "fix docs for aws_s3_bucket_lifecycle_configuration"
make swissshepherd passesaws_s3_bucket_lifecycle_configuration from ignore_targets in the schema_docs check blockswissshepherd --config .ci/swissshepherd-weak.hcl --target aws_s3_bucket_lifecycle_configuration --type resourceERROR [schema_docs] ... block "rule.filter" is not documentedfilter block exists under rule### `filter` Block section with its attributesmake swissshepherd — passes© hashicorp, MPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/fixdocs of hashicorp/terraform-provider-aws.
Open the folder on GitHubat commit 972faab
Fixdocs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fixdocs this skillhashicorp/terraform-provider-aws | 11k | — | ~1.8k | Automated safety check: Pass | MPL-2.0 | |
| Terraform and OpenTofu Guideagentscope-ai/QwenPaw | 35k | 6 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Terraform Skillantonbabenko/terraform-skill | 2.4k | 1 repos | ~5.1k | Automated safety check: Pass | Apache-2.0 | |
| Senior DevOps Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 6 repos | ~1.1k | Automated safety check: Notes | Custom licence | |
| Cloudflarehodgef/apiker | 127 | 7 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Terravision Cloud Diagramspatrickchugh/terravision | 1.6k | — | ~5.6k | Automated safety check: Notes | AGPL-3.0-only |
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
antonbabenko/terraform-skill
A skill your agent uses when writing, reviewing, or debugging Terraform/OpenTofu modules, tests, CI, scans, or state ops - diagnoses failure mode (identity churn, secrets, blast radius, CI drift…
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…
hodgef/apiker
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), feature flags (Flagship), networking (Tunnel, Spectrum), security (WAF…
patrickchugh/terravision
Draw cloud architecture diagrams for AWS, Azure or GCP with the official provider icon sets, using TerraVision.
dmmulroy/cloudflare-skill
Comprehensive Cloudflare platform skill covering Workers, Pages, storage (KV, D1, R2), AI (Workers AI, Vectorize, Agents SDK), networking (Tunnel, Spectrum), security (WAF, DDoS), and…
hashicorp/terraform-provider-aws
Review a Terraform AWS Provider PR's end-user documentation (website/docs//.markdown): whether docs are needed, description openings, argument/attribute style, section structure, tags wording, code…
hashicorp/terraform-provider-aws
Review Terraform AWS Provider helper code: finders, status functions, waiters, sweepers, data sources, and list resources.
hashicorp/terraform-provider-aws
Review Terraform AWS Provider Resource Identity: the identity-strategy annotations (@ArnIdentity, @SingletonIdentity, @IdentityAttribute), multi-attribute @ImportIDHandler parsers, and region…
hashicorp/terraform-provider-aws
Review Terraform AWS Provider resource lifecycle: CRUD step order, smerr/smarterr error handling, and AutoFlex model-to-SDK conversion.
hashicorp/terraform-provider-aws
Review Terraform AWS Provider Plugin Framework schema shape: model structs, Required/Optional/Computed combinations, plan modifiers (no ForceNew), nested-block custom types, validators, sensitive…
hashicorp/terraform-provider-aws
Review Terraform AWS Provider tagging: the tags/tagsall schema attributes, the @Tags(identifierAttribute=...) annotation, and wiring input.Tags = getTagsIn(ctx) after flex.Expand.
Works with
Categories
Fix Terraform provider end user documentation issues detected by swissshepherd (ss). Fixdocs is an agent skill from hashicorp/terraform-provider-aws, published by the product's own GitHub organization. Fix Terraform provider end user documentation issues detected by swissshepherd (ss).
Fixdocs fits situations like: tasks that involve Infrastructure as code.
Run `npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a claude-code`. Or copy the skill folder (.agents/skills/fixdocs in hashicorp/terraform-provider-aws) into .claude/skills/fixdocs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a codex`. Or copy the skill folder (.agents/skills/fixdocs in hashicorp/terraform-provider-aws) into .agents/skills/fixdocs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashicorp/terraform-provider-aws --skill fixdocs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fixdocs, .gemini/skills/fixdocs, .github/skills/fixdocs and .opencode/skills/fixdocs in your project.
Going by SKILL.md and its folder, Fixdocs needs the command-line tools its instructions call (make, git and just).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Fixdocs is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fixdocs: Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 35k stars), Terraform Skill (antonbabenko/terraform-skill, 2.4k stars), Senior DevOps Toolkit (maslennikov-ig/claude-code-orchestrator-kit, 260 stars) and Cloudflare (hodgef/apiker, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hashicorp (a GitHub organization, an official publisher) maintains it in hashicorp/terraform-provider-aws, which has 11,109 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 7, 2026.
Source: hashicorp/terraform-provider-aws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.