From ai-toolkit
Reviews Terraform PRs with 8-category checklist on structure, state safety, security, naming, modules, variables, providers, and CI/CD. Outputs Approved/Needs Changes/Blocked verdict for PR reviews, pre-merge checks, and audits.
npx claudepluginhub c0x12c/ai-toolkit --plugin ai-toolkitThis skill uses the workspace's default tool permissions.
Runs an 8-category review checklist on Terraform changes. Produces an Approved / Needs Changes / Blocked verdict.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Designs, implements, and audits WCAG 2.2 AA accessible UIs for Web (ARIA/HTML5), iOS (SwiftUI traits), and Android (Compose semantics). Audits code for compliance gaps.
Runs an 8-category review checklist on Terraform changes. Produces an Approved / Needs Changes / Blocked verdict.
live/, modules/, envs/terraform.tf has backend + provider configvariables.tf, outputs.tf, locals.tf are separate files.terraform/ or *.tfstate* in the PR# CORRECT structure
terraform/
live/terraform.tf # backend + provider
live/variables.tf # inputs
live/locals.tf # computed values
live/outputs.tf # exports
modules/{service}/ # one resource per file
envs/{env}/ # per-environment config
# WRONG — everything in one file
terraform/main.tf # 500 lines of mixed resources
terraform state commands in automationprevent_destroy on critical resources (RDS, S3 with data)terraform state rm plan documentedcreate_before_destroy on security groups and launch configsterraform import CLI)# CORRECT — protect critical resources
resource "aws_db_instance" "main" {
lifecycle {
prevent_destroy = true
}
}
# CORRECT — zero-downtime SG updates
resource "aws_security_group" "app" {
name_prefix = "${local.name_prefix}-app-"
lifecycle {
create_before_destroy = true
}
}
.tf or .tfvars committed to gitsensitive = true0.0.0.0/0 ingress on non-ALB)* actions on * resources# WRONG — overly permissive
resource "aws_security_group_rule" "bad" {
cidr_blocks = ["0.0.0.0/0"]
from_port = 0
to_port = 65535
}
# CORRECT — scoped to specific source
resource "aws_security_group_rule" "good" {
source_security_group_id = var.alb_security_group_id
from_port = 8080
to_port = 8080
}
local.name_prefix (pattern: {project}-{service}-{env})# CORRECT
locals {
name_prefix = "${var.project}-${var.service}-${var.env}"
}
# WRONG
resource "aws_s3_bucket" "assets" {
bucket = "my-bucket-prod" # hardcoded
}
?ref=vX.Y.Z)versions.tf with required provider versions# CORRECT — pinned version
module "rds" {
source = "git::https://github.com/{project}/terraform-modules.git//rds?ref=v1.2.0"
}
# WRONG — no version pin
module "rds" {
source = "git::https://github.com/{project}/terraform-modules.git//rds"
}
description and typesensitive = true# CORRECT
variable "instance_class" {
description = "RDS instance class"
type = string
default = "db.t3.micro"
validation {
condition = can(regex("^db\\.", var.instance_class))
error_message = "Must be a valid RDS instance class."
}
}
# WRONG — no description, no type
variable "instance_class" {}
~> (pessimistic constraint)required_version for Terraform itselflive/terraform.tf, never in modulesterraform fmt -check runs in CIterraform validate runs in CI.tf files in the PR0.0.0.0/0 ingress, missing encryptionProduces a structured review:
## Terraform Review: {PR title}
### Verdict: Approved | Needs Changes | Blocked
### Findings
#### Blocked (if any)
- [ ] **[Security]** Secrets found in terraform.tfvars — file:line
#### Needs Changes (if any)
- [ ] **[Naming]** Hardcoded bucket name in s3.tf:12
- [ ] **[Modules]** Missing version pin on RDS module
#### Suggestions (if any)
- **[Variables]** Consider adding validation on `instance_class`
### Checklist Summary
| Category | Status |
|-----------|--------|
| Structure | Pass |
| State | Pass |
| Security | Fail |
| Naming | Warn |
| Modules | Warn |
| Variables | Pass |
| Providers | Pass |
| CI/CD | Pass |