Terraform PR Workflow Skill
When to Use This Skill
Use this Skill when preparing or reviewing a PR in Terraform/Terragrunt repos, especially shared module libraries and their consumers.
Goal: catch workflow/process issues early (before apply-time surprises).
Severity Tags
[BLOCKING] – cannot merge as-is (missing plan rationale, unsafe workflow, breaking change not called out).
[SHOULD_FIX] – strongly recommended before merge (docs drift, missing versioning note).
[NIT] – minor polish.
Checks This Skill Enforces
1) Branch and PR hygiene
- Branch name uses a standard prefix (
feat/, fix/, chore/, docs/, refactor/).
- PR title matches intent (don’t hide breaking changes behind “chore” wording).
- One PR = one coherent change; if it’s a stack of unrelated edits, recommend splitting.
2) PR description quality
PR description must include either:
- Plan evidence (preferred):
- module-level validation summary, or
terragrunt plan output summary for the relevant stacks, or
- A clear explanation of why plans weren’t run (missing creds, non-executable change, doc-only PR, etc.) plus what validation was done instead (fmt/validate/lint).
Strongly preferred sections (when applicable):
What changed
Plan / Validation
Risk / Rollout
Breaking changes (if any)
Versioning (module repos)
3) CI must be read-only
- CI should run
fmt, validate, tflint, and optionally plan.
- CI should not run
apply.
- If the repo currently has
apply in CI, flag as [BLOCKING] and recommend moving applies to a gated/manual workflow.
- Verify by scanning
.github/workflows/*.yml for apply usage (terraform apply, terragrunt apply, run-all apply).
4) Versioning expectations for module libraries
If the PR changes module interface (examples):
variables.tf inputs added/renamed/removed
outputs.tf outputs added/renamed/removed
- required provider/terraform versions changed
Then require:
- Explicit callout in PR description (“Interface change”) with migration notes.
- A versioning plan aligned with the repo’s conventions (tags/releases/
VERSIONING.md when present).
- “Moving ref” avoidance: consumers should pin to a tag/SHA rather than a branch when the repo supports releases.
5) Breaking changes and changelog/release notes
If changes are breaking (renames/removals, behavior changes, tighter validations):
- PR must include a
Breaking changes section with:
- what changed,
- why,
- how to migrate,
- what version/tag will contain the change.
- If the repo maintains a changelog, require an entry.
- If it doesn’t, require release notes in the PR body.
Output Format
Return:
Verdict: MERGE-READY / NOT READY
Findings: bullets with [BLOCKING] / [SHOULD_FIX] / [NIT]
Suggested edits: concrete fixes to branch name / PR title / PR body sections
Source: DiversioTeam/agent-skills-marketplace — distributed by TomeVault.
1---2name: diversioteam-agent-skills-marketplace-terraform-pr-workflow3description: Terraform PR Workflow Skill4---56# Terraform PR Workflow Skill78## When to Use This Skill910Use this Skill when preparing or reviewing a PR in Terraform/Terragrunt repos, especially shared module libraries and their consumers.1112Goal: catch workflow/process issues early (before apply-time surprises).1314## Severity Tags1516- `[BLOCKING]` – cannot merge as-is (missing plan rationale, unsafe workflow, breaking change not called out).17- `[SHOULD_FIX]` – strongly recommended before merge (docs drift, missing versioning note).18- `[NIT]` – minor polish.1920## Checks This Skill Enforces2122### 1) Branch and PR hygiene2324- Branch name uses a standard prefix (`feat/`, `fix/`, `chore/`, `docs/`, `refactor/`).25- PR title matches intent (don’t hide breaking changes behind “chore” wording).26- One PR = one coherent change; if it’s a stack of unrelated edits, recommend splitting.2728### 2) PR description quality2930PR description must include either:3132- **Plan evidence** (preferred):33 - module-level validation summary, or34 - `terragrunt plan` output summary for the relevant stacks, or35- **A clear explanation** of why plans weren’t run (missing creds, non-executable change, doc-only PR, etc.) plus what validation was done instead (fmt/validate/lint).3637Strongly preferred sections (when applicable):38- `What changed`39- `Plan / Validation`40- `Risk / Rollout`41- `Breaking changes` (if any)42- `Versioning` (module repos)4344### 3) CI must be read-only4546- CI should run `fmt`, `validate`, `tflint`, and optionally `plan`.47- CI should **not** run `apply`.48- If the repo currently has `apply` in CI, flag as `[BLOCKING]` and recommend moving applies to a gated/manual workflow.49- Verify by scanning `.github/workflows/*.yml` for `apply` usage (`terraform apply`, `terragrunt apply`, `run-all apply`).5051### 4) Versioning expectations for module libraries5253If the PR changes module interface (examples):54- `variables.tf` inputs added/renamed/removed55- `outputs.tf` outputs added/renamed/removed56- required provider/terraform versions changed5758Then require:5960- Explicit callout in PR description (“Interface change”) with migration notes.61- A versioning plan aligned with the repo’s conventions (tags/releases/`VERSIONING.md` when present).62- “Moving ref” avoidance: consumers should pin to a tag/SHA rather than a branch when the repo supports releases.6364### 5) Breaking changes and changelog/release notes6566If changes are breaking (renames/removals, behavior changes, tighter validations):6768- PR must include a `Breaking changes` section with:69 - what changed,70 - why,71 - how to migrate,72 - what version/tag will contain the change.73- If the repo maintains a changelog, require an entry.74 - If it doesn’t, require release notes in the PR body.7576## Output Format7778Return:7980- `Verdict:` **MERGE-READY** / **NOT READY**81- `Findings:` bullets with `[BLOCKING]` / `[SHOULD_FIX]` / `[NIT]`82- `Suggested edits:` concrete fixes to branch name / PR title / PR body sections8384---85> Source: [DiversioTeam/agent-skills-marketplace](https://github.com/DiversioTeam/agent-skills-marketplace) — distributed by [TomeVault](https://tomevault.io).86<!-- tomevault:4.0:skill_md:2026-06-16 -->