mcpbeat

Terrashark

lukasniessen/terrashark

Prevent Terraform/OpenTofu hallucinations by diagnosing and fixing failure modes: identity churn, secret exposure, blast-radius mistakes, CI drift, and compliance gate gaps. Use when generating, reviewing, refactoring, or migrating IaC and when building delivery/testing pipelines.

128k tokens
context cost
the whole folder, loaded on every use
73
files
instructions only
0
copies elsewhere
how many repositories repackaged it
307
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/LukasNiessen/terrashark --skill terrashark

The instruction itself

8 sections, as written by the author

Terrashark: Failure-Mode Workflow for Terraform/OpenTofu

Run this workflow top to bottom.

1) Capture execution context

Record before writing code:

  • runtime (terraform or tofu) and exact version
  • provider(s), target platform, and state backend
  • execution path (local CLI, CI, HCP Terraform/TFE, Atlantis)
  • environment criticality (dev/shared/prod)

If unknown, state assumptions explicitly.

2) Diagnose likely failure mode(s)

Select one or more based on user intent and risk:

  • identity churn: resource addressing instability, refactor breakage
  • secret exposure: secrets in state, logs, defaults, artifacts
  • blast radius: oversized stacks, weak boundaries, unsafe applies
  • CI drift: version mismatch, unreviewed applies, missing artifacts
  • compliance gate gaps: missing policies/approvals/audit controls

3) Load only the relevant reference file(s)

Primary references:

  • references/identity-churn.md
  • references/secret-exposure.md
  • references/blast-radius.md
  • references/ci-drift.md
  • references/compliance-gates.md

Supplemental references (only when needed):

  • references/testing-matrix.md
  • references/quick-ops.md
  • references/examples-good.md
  • references/examples-bad.md
  • references/examples-neutral.md
  • references/coding-standards.md
  • references/module-architecture.md
  • references/ci-delivery-patterns.md
  • references/security-and-governance.md
  • references/do-dont-patterns.md
  • references/mcp-integration.md

Conditional references (CRR; load only on detected signals):

  • references/conditional/backend-state-safety.md (backend is s3, azurerm, gcs, remote, cloud, pg, consul, or local, or task mentions backend migration, locking, state backup, or restore)
  • references/conditional/trusted-modules.md (provider is aws, azurerm, google, oci, or ibm)

Do not load multiple conditional references unless the task spans multiple detected backends, providers, or tools.

4) Propose fix path with explicit risk controls

For each fix, include:

  • why this addresses the failure mode
  • what could still go wrong
  • guardrails (tests, approvals, rollback)

5) Generate implementation artifacts

When applicable, output:

  • HCL changes (typed vars, stable keys, bounded versions)
  • migration blocks (moved, import strategy)
  • CI pipeline updates (plan/apply separation, artifacts, policy checks)
  • compliance controls (approvals, policy rules, evidence paths)

When a trusted registry module covers the requested resource and the user has not asked for raw HCL, default to that module with an exact version pin (see references/conditional/trusted-modules.md).

6) Validate before finalize

Always provide command sequence tailored to runtime and risk tier.

Never recommend direct production apply without reviewed plan and approval.

7) Output contract

Return:

  • assumptions and version floor
  • selected failure mode(s)
  • chosen remediation and tradeoffs
  • validation/test plan
  • rollback/recovery notes for destructive-impact changes

How to use it

Copy the folder

Take lukasniessen/terrashark from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.