Vigilante issue implementation on terraform
Skill aliengiraffe/vigilante/skills/vigilante-issue-implementation-on-terraform
Vigilante is a sandbox-first orchestration layer for coding agents. It isolates every task in a git worktree, enforces strict credential scoping, and gives you full audit logs — so your agents can't burn down production.
npx -y skills add aliengiraffe/vigilante --skill vigilante-issue-implementation-on-terraformAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Implement a GitHub issue end-to-end when Vigilante dispatches work for a Terraform repository with fmt, validate, and secret-safe infrastructure guidance.
SKILL.md
5.1 KB, as published. Nobody here has run it
Vigilante Terraform Issue Implementation
Focus
- Read the prompt for detected tech stacks, process hints, and Terraform security guidance before changing code.
- Follow idiomatic Terraform conventions for resource naming, file layout, and formatting.
- Keep changes scoped to the issue and do not broaden into unrelated refactoring or architecture redesign.
Terraform Tooling Workflow
- Formatting: run
terraform fmt -recursiveon all touched Terraform directories before committing. Do not hand-format Terraform code — let the standard formatter handle layout. - Validation: run
terraform validatein each root module directory that contains changed files. Ensure provider and backend blocks are present or that validation is run with-no-colorfor clean output. If validation requires initialized providers, runterraform init -backend=falsefirst to install providers without configuring remote state. - Planning: do not run
terraform planorterraform applyunless the repository defines a safe local workflow for it (e.g., a Makefile target, CI script, or documented local plan process). Assume cloud credentials are not available in the agent environment. - Linting: use the repository's established lint tooling. When
tflintis configured (.tflint.hcl), runtflinton touched modules. Whentfsecortrivyis configured, run the appropriate scanner. Do not introduce a different linter unless the issue specifically requires it. If no project linter is configured,terraform validateis sufficient. - Policy checks: when the repository uses policy tools such as OPA/Conftest, Sentinel, or Checkov, respect their configuration and run them if a safe local path exists. Do not skip policy checks to make changes pass.
Terraform Style
- Use
snake_casefor resource names, variable names, output names, and local values. - Keep resource blocks focused — one logical resource per block.
- Group related resources in files named by purpose (e.g.,
main.tf,variables.tf,outputs.tf,providers.tf). - Use
variables.tffor input variable declarations andoutputs.tffor output declarations. - Pin provider versions with
required_providersblocks and use pessimistic version constraints (e.g.,~> 5.0). - Pin module versions when sourcing from a registry. Avoid
ref=mainfor git-sourced modules in production configurations.
Security and State
- Do not store secrets, tokens, credentials, or sensitive values in
.tffiles orterraform.tfvarscommitted to the repository. - Mark sensitive variables and outputs with
sensitive = true. - Do not configure remote state backends with inline credentials. Use environment variables or external credential helpers.
- Do not assume cloud credentials are available. If a change requires provider authentication, document the requirement rather than embedding credentials.
- Treat state files (
terraform.tfstate,*.tfstate.backup) as sensitive — they must never be committed. Verify.gitignorecovers state files. - Use
prevent_destroylifecycle rules on critical resources when appropriate. - Avoid wildcard IAM policies and overly permissive security group rules. Prefer least-privilege access patterns.
Module Hygiene
- When creating or modifying modules, include
variables.tf,outputs.tf, and aREADME.mdif the module is intended for reuse. - Validate module inputs with
validationblocks on variables where constraints are meaningful. - Prefer the Terraform registry or organization-internal module sources over ad-hoc inline resources for common patterns.
Mixed-Language Repositories
- A Terraform repository may include application code, CI/CD configuration, scripts, or other IaC tools alongside Terraform.
- Scope Terraform tooling (
terraform fmt,terraform validate,tflint,tfsec) to.tffiles and Terraform directories only. Do not run Terraform tools against non-Terraform code. - When the repository also has application code, respect its own toolchain for application-scoped changes.
- When an issue touches both Terraform and application code, validate each side with its own toolchain.
Workflow
- Follow the base
vigilante-issue-implementationworkflow for issue comments, validation, push, and PR creation, including stacked base-branch detection (Base branch:directive in the issue body). - Use
vigilante commitfor all commit-producing operations. Do not usegit commitor GitHub CLI commit flows directly. - Any commit or amend must preserve the user's existing git author, committer, and signing configuration. Commit on behalf of the user and do not overwrite
git configwith a coding-agent identity. - Do not add
Co-authored by:trailers or any other agent attribution for Codex, Claude, Gemini, or similar coding-agent identities. - Repository-specific instructions (
AGENTS.md,README.md, CI config) remain authoritative when they are more specific than the generic Terraform guidance in this skill.