关于 devops-simplicity-checker
用于检查基础设施项目是否过度复杂的 DevOps skill。它根据文件数量、模块、目录深度和 Ansible 角色计算复杂度分数,并提供简化方向。
主要功能
- 01检查 Terraform 文件数量与目录层级
- 02识别自定义模块和 Ansible 角色
- 03按规则计算复杂度分数
- 04列出常见过度设计迹象
- 05给出简化检查问题
适用场景
- 01审查 Terraform 项目的结构复杂度
- 02判断自定义模块是否必要
- 03发现目录和变量配置膨胀
- 04评估 Ansible 配置的简化空间
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ majesticlabs-dev/ majestic-marketplace --skill devops-simplicity-checker安装后在 Claude Code 中输入/devops-simplicity-checker确认已加载。
详细介绍
DevOps 简洁性检查器
基础设施默认应保持简单。此技能用于检测过度工程化。
简洁性检查清单
| 检查项 | 通过 | 未通过 |
|---|---|---|
| 文件数量 | ≤8 个 .tf 文件 | 嵌套目录中有 >15 个文件 |
| 模块使用 | 不使用模块,或仅使用注册表模块 | 为 <5 个资源创建自定义模块 |
| 目录深度 | 扁平结构或 1 层 | 3 层以上嵌套 |
| Ansible playbook | 单个 playbook | 多个 playbook + 自定义角色 |
| Ansible 角色 | 仅使用 Galaxy 角色 | 为标准任务创建自定义角色 |
| 变量 | 内联默认值 | 复杂的变量层级 |
复杂度评分计算
Files: 1 point per .tf file over 5
Modules: 3 points per custom module
Directories: 2 points per level over 1
Ansible roles: 3 points per custom role
Score 0-5: Simple (GOOD)
Score 6-10: Moderate (REVIEW)
Score 11+: Overengineered (SIMPLIFY)
检测命令
# Count .tf files
find . -name "*.tf" | wc -l
# Find custom modules (not registry)
grep -r "source\s*=" *.tf | grep -v "registry.terraform.io" | grep -v "github.com" | wc -l
# Directory depth
find . -name "*.tf" -printf '%h\n' | sort -u | awk -F'/' '{print NF-1}' | sort -rn | head -1
# Custom Ansible roles (not Galaxy)
ls roles/ 2>/dev/null | wc -l
# Variable files
find . -name "*.tfvars" -o -name "variables.tf" | wc -l
需要思考的问题
- 能否用更少的文件实现?
- 这个自定义模块解决的问题,是注册表模块无法解决的吗?
- 扁平结构是否同样适用?
- 这个 Ansible 角色在 Galaxy 中是否已有?
- 这些变量层级是否必要,还是过早抽象?
危险信号
| 模式 | 问题 | 修复方法 |
|---|---|---|
modules/ 中只有单个资源 | 过度抽象 | 内联资源 |
environments/{dev,staging,prod}/ | 重复 | 使用工作区或 tfvars |
用于 apt 软件包的 roles/common/ | 重复造轮子 | 使用 Galaxy 角色 |
嵌套的 .tf 导入 | 难以理解 | 扁平化结构 |
| >10 个变量文件 | 配置泛滥 | 合并文件 |
评分报告格式
SIMPLICITY SCORE: X/10
File Count: X files (+Y penalty)
Custom Modules: X modules (+Y penalty)
Directory Depth: X levels (+Y penalty)
Custom Roles: X roles (+Y penalty)
Total Penalty: X points
Verdict: SIMPLE | MODERATE | OVERENGINEERED
Recommendations:
- [ ] Consider flattening directory structure
- [ ] Replace custom module X with registry module
- [ ] Use Galaxy role for standard task
评论
支持 Markdown