lgbarn/shipyard/infrastructure-validation
Claude Code and agent skill by lgbarn/shipyard
- community
Checking that the SKILL.md file is still in the repository.
Validates infrastructure-as-code with tool chains and checks for common mistakes. Use when working with Terraform (.tf, .tfvars), Ansible (playbooks, roles, inventory), Docker (Dockerfile, docker-compose.yml), Kubernetes (manifests, Helm charts), or CloudFormation. Also use when running terraform plan/apply, building Docker images, writing Helm templates, or when IaC changes touch security groups, IAM policies, or secrets.
Install
npx vskill@latest install lgbarn/shipyard/infrastructure-validationSKILL.md
Infrastructure Validation
<activation>
Activation Triggers
- Files matching:
*.tf,*.tfvars,Dockerfile,docker-compose.yml,playbook*.yml,roles/,inventory/ - Config:
.shipyard/config.jsonhasiac_validationset to"auto"ortrue - Templates with
AWSTemplateFormatVersion(CloudFormation) - YAML with
apiVersion:(Kubernetes)
Natural Language Triggers
- "validate terraform", "check docker", "lint ansible", "IaC validation", "infrastructure check"
</activation>
Overview
IaC mistakes don't cause test failures -- they cause outages, breaches, and cost overruns. Validate before every change.
Core principle: Never apply without plan review. Like TDD requires tests before code, IaC requires validation before apply.
<instructions>
Terraform Workflow
Run in order. Each step must pass before proceeding.
Drift detection: terraform plan -detailed-exitcode -- exit code 2 means drift. Document what drifted and why before overwriting.
Ansible Workflow
Docker Workflow
Kubernetes Workflow
</instructions>
Common Mistakes
Terraform
| Mistake | Fix | |
|---|---|---|
| Local state file | Use remote backend (S3+DynamoDB, GCS) | |
| No state locking | Enable lock table | |
| Hardcoded secrets | Use variables + secret manager | |
* in security groups | Restrict to specific CIDRs | |
| Unpinned provider version | Pin in required_providers | |
| Missing tags | Require via policy or module defaults |
Ansible
| Mistake | Fix | |
|---|---|---|
| Plaintext secrets | ansible-vault encrypt | |
shell instead of modules | Use native modules (apt, copy, etc.) | |
| Everything as root | become: false by default, escalate only when needed |
Docker
| Mistake | Fix | |
|---|---|---|
FROM ubuntu:latest | Pin to digest: FROM ubuntu:22.04@sha256:... | |
| Running as root | Add USER nonroot | |
COPY . . | Use .dockerignore, copy specific files | |
| Secrets in ENV/ARG | Use build secrets or runtime injection | |
| No health check | Add HEALTHCHECK instruction | |
| Single-stage build | Use multi-stage builds |
Kubernetes
| Mistake | Fix | |
|---|---|---|
| No resource limits | Set resources.requests and resources.limits | |
| Running as root | securityContext.runAsNonRoot: true | |
latest image tag | Pin exact version or digest | |
| No liveness/readiness probes | Add probes matching app health endpoints | |
| Default namespace for workloads | Use dedicated namespaces with RBAC | |
| No network policies | Restrict pod-to-pod traffic with NetworkPolicy |
<rules>
Red Flags -- STOP
terraform apply -auto-approvewithout prior plan review- Security group with
0.0.0.0/0on non-HTTP ports - IAM policy with
*action or*resource - Secrets in
.tf,.yml, orDockerfile - State file committed to git
latesttag on any base image- Container running as root in production
</rules>
<examples>
Validation Finding Examples
Good Finding -- specific, shows the problem, gives the fix
Bad Finding -- vague, no location, no evidence
</examples>
Integration
Referenced by: shipyard:builder (detects IaC files, follows appropriate workflow), shipyard:verifier (IaC validation mode), shipyard:auditor (IaC security checks)
Pairs with: shipyard:security-audit (security lens for IaC), shipyard:shipyard-verification (IaC claims need validation evidence)
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/infrastructure-validation/SKILL.md
Popularity
- Repository stars
- 64
- Repository forks
- 3
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 21 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/lgbarn/shipyard/infrastructure-validation)