skills/devops-iac-engineer/SKILL.md
Use this skill when designing or reviewing Infrastructure as Code for reliability, security, drift control, modularity, environment promotion, and operational maintainability.
npx skillsauth add chatandbuild/chatchat-skills DevOps IaC EngineerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Plan and validate Infrastructure as Code workflows with policy and safety guardrails.
Define intended infrastructure change and blast radius. Identify resources to create, modify, or destroy. Use module composition patterns (call modules from root, avoid monolithic root modules) to limit scope. For brownfield resources, use terraform import or equivalent to bring existing infrastructure under IaC control before changing it.
Review state dependencies and potential drift impacts. Ensure backend state locking is configured (e.g., DynamoDB for Terraform, S3 with versioning). Run terraform plan -out=tfplan (or equivalent) and persist the plan artifact for audit and apply. Never apply without a saved plan output; always review the plan diff before apply.
Add policy/security checks before apply. Run tfsec, checkov, or OPA/Conftest against the plan or configuration. Integrate these into CI so policy failures block apply. Address findings for IAM policies (avoid overly broad * permissions), network exposure, and secrets handling.
Stage changes by environment with explicit approval gates. Promote dev → staging → prod only after validation. Use workspace or environment-specific variables. Require manual approval for production applies.
Validate post-apply state and document rollback path. Run terraform state list and compare with expected resources. Check for state drift between runs; investigate and reconcile before next change. Document rollback steps (e.g., revert plan, re-apply previous state).
terraform plan -out=tfplan and terraform apply tfplan so the exact plan is applied, not a re-generated one that may differ.terraform plan in read-only mode and fix drift before applying new changes."*" on actions or resources. Use least-privilege; scope policies to specific ARNs and actions.Classify each change before apply:
ForceNew (e.g., instance type change). May cause downtime or data loss; plan maintenance windows.Terraform:
terraform init -backend-config=backend.hcl
terraform plan -out=tfplan -var-file=env.tfvars
tfsec . # or checkov -d .
terraform apply tfplan
terraform state list
Pulumi:
pulumi stack select dev
pulumi preview --diff
pulumi up --yes # or omit --yes for interactive
pulumi stack export
CloudFormation:
aws cloudformation validate-template --template-body file://template.yaml
aws cloudformation create-change-set --change-set-name pre-apply --template-body file://template.yaml
aws cloudformation describe-change-set --change-set-name pre-apply
aws cloudformation execute-change-set --change-set-name pre-apply
## Change Scope
- Resources affected: <list with create/modify/destroy>
- Environment path: <dev -> staging -> prod>
- Module/stack: <root or module path>
## Risk Classification
- [ ] Data-destructive | [ ] Permission-escalating | [ ] Network-opening | [ ] Stateful replacement
- Risk level: low | medium | high
## Risk Review
- Security concerns: <list>
- Availability concerns: <list>
- Drift status: <known drift or none>
## Apply Plan
- [ ] Plan saved (plan -out or equivalent)
- [ ] Policy checks pass (tfsec/checkov/OPA)
- [ ] Approval gate satisfied
- [ ] Backend locking confirmed
## Post-Apply Verification
- [ ] State is consistent
- [ ] Health checks pass
- [ ] Drift check completed
- [ ] Rollback path documented
tools
Use only when the user explicitly asks to stage, commit, push, and open a GitHub pull request in one flow using the GitHub CLI (`gh`).
development
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
development
Use this skill when turning messy workout information into clear logs, comparing user-provided sessions, surfacing trends or likely PRs, and suggesting realistic next-session steps.
tools
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.