mcpField
D
devops-maintainability-checker

devops-maintainability-checker

github.com/majesticlabs-devクラウド・DevOps5070 回インストール7 週間前に更新
リポジトリ

devops-maintainability-checker について

devops-maintainability-checker は、Terraform や OpenTofu の設定を扱うエンジニア向けに、インフラコードの保守性を確認するスキルです。書式、命名、変数説明、値の重複、バージョン制約を検査し、レポートを作成します。

主な機能

  1. 01リソース名と変数名を確認
  2. 02コード書式を検証
  3. 03変数の説明を確認
  4. 04値の重複と locals の利用を確認
  5. 05バージョン制約を確認

活用シーン

  1. 01インフラコードの保守性レビュー
  2. 02提出前の Terraform 設定チェック
  3. 03説明やバージョン制約の不足箇所を特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/majesticlabs-dev/majestic-marketplace --skill devops-maintainability-checker

インストール後、Claude Code で/devops-maintainability-checkerを入力して読み込まれたか確認します。

詳細

DevOps 保守性チェッカー

インフラストラクチャコードが保守しやすいパターンに従っているかを検証します。

保守性チェックリスト

チェック項目良い例悪い例
リソースの命名一貫性のある ${project}-${env}-${type}ランダム、または一貫性がない
変数の命名デフォルト値があり、説明的分かりにくく、説明がない
コードのフォーマットtofu fmt に合格するインデントが一貫していない
DRY 原則繰り返し使う値に Locals を使用する値をハードコードして繰り返す
バージョン制約~> X.Y で固定する固定されていない、または厳密なバージョン

検証コマンド

# 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 ~>"

命名規則

リソース名:

# GOOD
resource "aws_instance" "web" {
  tags = {
    Name = "${var.project}-${var.environment}-web"
  }
}

# BAD
resource "aws_instance" "instance1" {
  tags = {
    Name = "my-server"
  }
}

変数名:

# 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 パターン

Locals を使用する:

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"
  })
}

繰り返しを避ける:

# BAD - hardcoded everywhere
resource "aws_instance" "web" {
  tags = { Project = "myapp", Environment = "prod" }
}
resource "aws_instance" "api" {
  tags = { Project = "myapp", Environment = "prod" }
}

# GOOD - use locals
resource "aws_instance" "web" {
  tags = local.common_tags
}

バージョン制約

# GOOD - allows patch updates
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

# BAD - exact version (breaks updates)
version = "5.31.0"

# BAD - no constraint (unpredictable)
version = ">= 5.0"

レポート形式

MAINTAINABILITY SCORE: X/10

Formatting: PASS/FAIL
Variable Descriptions: X/Y documented
Locals Usage: GOOD/UNDERUSED
Naming Consistency: CONSISTENT/INCONSISTENT
Version Constraints: PROPER/NEEDS FIX

Issues Found:
- [ ] Run `tofu fmt -recursive`
- [ ] Add descriptions to variables: X, Y, Z
- [ ] Extract repeated value "us-east-1" to local
- [ ] Change exact version to ~> constraint

コメント