关于 cost-check
cost-check 用于识别 IaC 项目、运行兼容的成本工具,并按阈值生成成本报告,适合基础设施成本审查,结果写入 COST_CHECK.md。
主要功能
- 01检测 IaC 堆栈与成本工具
- 02按阈值标记资源及总成本
- 03与之前的报告比较
- 04生成终端摘要和 COST_CHECK.md 报告
适用场景
- 01审查 IaC 项目的预计成本
- 02查找超过成本阈值的资源
- 03比较本次与上次检查结果
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ rshade/ agent-skills --skill cost-check安装后在 Claude Code 中输入/cost-check确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/default-thresholds.mdreport-template.mdtool-matrix.mdtool-parsers.md详细介绍
成本检查
检测当前目录中的 IaC 技术栈,运行兼容的成本工具,并生成一份标记问题项的成本报告。
核心原则: 调用真实的成本工具 — 不要直接解析 IaC 文件或手动估算价格。
步骤 1:检测 IaC 技术栈
扫描当前目录中的 IaC 项目文件:
ls Pulumi.yaml 2>/dev/null && echo "pulumi: detected"
ls *.tf 2>/dev/null && echo "terraform: detected"
如果未找到 IaC 文件,请停止并报告: “此目录中未检测到 IaC 项目。”
完整的检测表请参见 references/tool-matrix.md。
步骤 2:检测成本工具
对于每个检测到的 IaC 技术栈,检查是否已安装兼容的成本工具:
command -v finfocus 2>/dev/null && echo "finfocus: available"
command -v infracost 2>/dev/null && echo "infracost: available"
如果检测到的技术栈没有找到兼容的工具,请以软失败方式处理:
报告检测到的 IaC 技术栈,并推荐合适的工具。不要提供安装命令 — 链接到该工具自己的文档。推荐信息请参见 references/tool-matrix.md。
如果唯一可用的工具与检测到的技术栈不兼容(例如,找到了 infracost,但项目使用的是 Pulumi),则按未找到工具处理。
步骤 3:加载阈值
检查项目根目录中是否存在 .cost-check.yml。如果存在,请读取阈值覆盖配置。如果不存在,请使用 references/default-thresholds.md 中的默认值:
- resource:$100/mo(标记成本高于此值的单项资源)
- increase:$50/mo(标记成本增幅高于此值的情况)
- increase_pct:20%(标记成本增幅百分比高于此值的情况)
- total:$1000/mo(标记总成本高于此值的情况)
步骤 4:读取基线
如果项目根目录中存在之前的 COST_CHECK.md,请读取其中的月度总成本。此值将作为差值比较的基线。如果不存在之前的报告,请跳过差值标记。
步骤 5:运行成本工具
针对每个检测到的 IaC 技术栈运行兼容的成本工具。各工具的调用和解析说明请参见 references/tool-parsers.md。
捕获完整输出,并提取为规范化结构:
- 预计月度总成本
- 按技术栈/工作区划分的成本
- 每个技术栈中按资源类型分组的成本
- 单项资源成本
步骤 6:标记问题项
将阈值应用于规范化的成本数据:
- 高成本资源 — 标记月度成本高于资源阈值的任何资源
- 成本增幅 — 如果存在基线,当总成本增幅超过 increase 阈值或增幅百分比超过 increase_pct 阈值时进行标记
- 总成本 — 如果所有技术栈的预计总成本超过 total 阈值,则进行标记
步骤 7:终端摘要
立即打印结果:
- 使用的 IaC 技术栈和成本工具
- 各技术栈的总成本及资源类型明细
- 已标记的问题项及触发标记的阈值
- 与基线的差值(如果存在基线)
- 所有技术栈的总成本
步骤 8:生成 COST_CHECK.md
使用 references/report-template.md 中的模板将报告写入项目根目录。包含所有部分:摘要、技术栈明细、已标记的问题项、使用的阈值和工具信息。
对生成的文件运行 markdownlint。
步骤 9:呈现结果
向用户展示:
- 所有技术栈的预计总成本
- 按类别统计的已标记问题项数量
- 成本最高的已标记问题项
- 与上次检查的差值(如果存在基线)
- 询问用户是否要调整阈值或调查特定问题项