Infrastructure maintainability verification covering naming conventions, formatting, DRY patterns, and version constraints.
View on GitHubmajesticlabs-dev/majestic-marketplace
majestic-devops
plugins/majestic-devops/skills/devops-maintainability-checker/SKILL.md
January 24, 2026
Select agents to install to:
npx add-skill https://github.com/majesticlabs-dev/majestic-marketplace/blob/main/plugins/majestic-devops/skills/devops-maintainability-checker/SKILL.md -a claude-code --skill devops-maintainability-checkerInstallation paths:
.claude/skills/devops-maintainability-checker/# DevOps Maintainability Checker
Verify infrastructure code follows maintainable patterns.
## Maintainability Checklist
| Check | Good | Bad |
|-------|------|-----|
| Resource naming | Consistent `${project}-${env}-${type}` | Random or inconsistent |
| Variable naming | Descriptive with defaults | Cryptic, no descriptions |
| Code formatting | `tofu fmt` passes | Inconsistent indentation |
| DRY principle | Locals for repeated values | Hardcoded values repeated |
| Version constraints | Pinned `~> X.Y` | Unpinned or exact versions |
## Verification Commands
```bash
# Format check
tofu fmt -check -recursive 2>&1 || echo "FAIL: Needs formatting"
# Variable descriptions
grep -L "description" variables.tf && echo "WARN: Variables missing descriptions"
# Locals usage (should have some)
grep -c "local\." *.tf | awk -F: '$2 < 3 {print "WARN: Underusing locals in "$1}'
# Hardcoded values (potential DRY violations)
grep -E '^\s+(region|zone|size)\s*=\s*"[^$]' *.tf
# Provider version constraints
grep -E "version\s*=\s*\"[0-9]" *.tf | grep -v "~>" && echo "WARN: Exact versions, use ~>"
```
## Naming Conventions
**Resource Names:**
```hcl
# GOOD
resource "aws_instance" "web" {
tags = {
Name = "${var.project}-${var.environment}-web"
}
}
# BAD
resource "aws_instance" "instance1" {
tags = {
Name = "my-server"
}
}
```
**Variable Names:**
```hcl
# GOOD
variable "database_instance_class" {
description = "RDS instance class for the database"
type = string
default = "db.t3.micro"
}
# BAD
variable "db_class" {
type = string
}
```
## DRY Patterns
**Use Locals:**
```hcl
locals {
common_tags = {
Project = var.project
Environment = var.environment
ManagedBy = "terraform"
}
name_prefix = "${var.project}-${var.environment}"
}
resource "aws_instance" "web" {
tags = merge(local.common_tags, {
Name = "${local.name_prefix}-web"
})
}
```
**Avoid Repetition:**
```hcl
# BAD - hardcoded everywhere
resource "aws_inst