mcpField
C
cost-drift

cost-drift

github.com/rshadeクラウド・DevOps386 回インストール2 週間前に更新
リポジトリ

cost-drift について

cost-driftは、finfocusを使ってPulumiプロジェクトの実コストと予測コストを分析し、差異を示して調査の手掛かりを提示するスキルです。コスト差異の確認に適しており、結果をCOST_DRIFT.mdに記録します。

主な機能

  1. 01Pulumiプロジェクトとfinfocusの検出
  2. 02実コストと予測コストの比較
  3. 03しきい値に基づく差異の判定
  4. 04リソース別の原因候補と調査プロンプト
  5. 05傾向比較とCOST_DRIFT.mdレポートの作成

活用シーン

  1. 01超過支出または支出不足のリソース特定
  2. 02実支出と予測コストの照合
  3. 03継続的なチェックによる差異の追跡

インストール

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

$npx skills add https://github.com/rshade/agent-skills --skill cost-drift

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
default-thresholds.md
drift-explanations.md
report-template.md

詳細

Cost Drift

実際のインフラコストと予測コストを比較し、乖離しているリソースにフラグを付け、乖離が発生している理由を説明します。

基本原則: finfocus の JSON 出力をラップします。独自に乖離を計算したり、クラウドの請求 API に直接問い合わせたりしないでください。

Step 1: Pulumi プロジェクトの検出

現在のディレクトリで Pulumi プロジェクトを検索します。

ls Pulumi.yaml 2>/dev/null && echo "pulumi: detected"

Pulumi.yaml が見つからない場合は処理を停止し、次のように報告します。 「Pulumi プロジェクトが検出されませんでした — cost-drift には finfocus を使用する Pulumi プロジェクトが必要です。」

Step 2: finfocus の検出

finfocus がインストールされているか確認します。

command -v finfocus 2>/dev/null && echo "finfocus: available"

finfocus が見つからない場合はソフトフェイルし、Pulumi プロジェクトは検出されたものの、乖離の分析には finfocus が必要であることを報告します。インストール方法へのリンクとして https://github.com/rshade/finfocus を提示します。インストールコマンドは提示しないでください。

Step 3: しきい値の読み込み

プロジェクトのルートに .cost-check.yml があるか確認します。存在する場合は、しきい値の上書き設定として drift: セクションを読み込みます。存在しない場合、または drift: セクションがない場合は、references/default-thresholds.md のデフォルト値を使用します。

  • drift_pct: 10%(この値を超える乖離があるリソースにフラグを付けます)
  • drift_absolute: $50/mo(この値を超える乖離があるリソースにフラグを付けます)
  • total_drift_pct: 15%(全体の乖離がこの値を超えた場合にフラグを付けます)

Step 4: ベースラインの読み込み

プロジェクトのルートに以前の COST_DRIFT.md がある場合は、全体の乖離率と実際の総支出額を読み込みます。これは傾向比較のベースラインとして使用します。以前のレポートがない場合は、傾向の表示を省略します。

Step 5: finfocus の実行

JSON 出力を指定して finfocus を実行します。

finfocus overview --output json --yes

JSON 出力を解析します。resources 配列内の各リソースに関する主なフィールドは次のとおりです。

  • costDrift.extrapolatedMonthly — 外挿した月間実コスト
  • costDrift.projected — 月間予測コスト
  • costDrift.delta — 外挿した実コストから予測コストを引いた値
  • costDrift.percentDrift — 乖離率
  • costDrift.isWarning — finfocus の組み込み警告フラグ
  • actualCost.mtdCost — 月初から現在までの実支出額
  • projectedCost.monthlyCost — 月間予測コスト

summary の主なフィールドは次のとおりです。

  • totalActualMTD — 月初から現在までの実支出合計
  • projectedMonthly — 月間予測コスト合計

リソースタイプごとの説明は references/drift-explanations.md を参照してください。

Step 6: 乖離しているリソースへのフラグ付け

各リソースにしきい値を適用します。

  1. 乖離率 — costDrift.percentDrift の絶対値が drift_pct しきい値を超えた場合にフラグを付けます
  2. 乖離額 — costDrift.delta の絶対値が drift_absolute しきい値を超えた場合にフラグを付けます
  3. 全体の乖離 — ポートフォリオ全体の乖離率が total_drift_pct しきい値を超えた場合にフラグを付けます

どちらの方向にもフラグを付けます。超過支出と支出不足は、どちらも兆候となります。

Step 7: 説明の生成

フラグが付いた各リソースについて、references/drift-explanations.md でリソースタイプを確認します。乖離の方向を判断し(delta > 0 は超過支出、delta < 0 は支出不足)、対応する説明を選択します。各説明には次の内容があります。

  • 考えられる原因のヒント
  • 実行可能な次のステップを示す調査プロンプト

リソースタイプが参照ファイルにない場合は、フォールバックの説明を使用します。

Step 8: ターミナルでの概要表示

結果をすぐに出力します。

  • 実際のコストと予測コストの全体比較、および乖離率
  • 前回のチェックからの傾向(ベースラインがある場合)
  • フラグが付いた各リソースの実績、予測、差分、乖離率、考えられる原因、調査プロンプト
  • フラグが付いたリソースの合計数

Step 9: COST_DRIFT.md の生成

references/report-template.md のテンプレートを使って、プロジェクトのルートにレポートを書き込みます。概要、説明付きの乖離リソース、乖離していないリソース、使用したしきい値、傾向、ツール情報のすべてのセクションを含めます。

生成したファイルに対して markdownlint を実行します。

Step 10: 結果の提示

ユーザーに次の情報を提示します。

  1. 全体の乖離率と方向
  2. 前回のチェックとの傾向比較(改善、悪化、または安定)
  3. 乖離しているリソースの数
  4. 特に乖離の大きいリソースとその説明
  5. 特定のリソースを調査するか、しきい値を調整するかを尋ねます

コメント