cost-drift について
cost-driftは、finfocusを使ってPulumiプロジェクトの実コストと予測コストを分析し、差異を示して調査の手掛かりを提示するスキルです。コスト差異の確認に適しており、結果をCOST_DRIFT.mdに記録します。
主な機能
- 01Pulumiプロジェクトとfinfocusの検出
- 02実コストと予測コストの比較
- 03しきい値に基づく差異の判定
- 04リソース別の原因候補と調査プロンプト
- 05傾向比較とCOST_DRIFT.mdレポートの作成
活用シーン
- 01超過支出または支出不足のリソース特定
- 02実支出と予測コストの照合
- 03継続的なチェックによる差異の追跡
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rshade/ agent-skills --skill cost-driftインストール後、Claude Code で/cost-driftを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/default-thresholds.mddrift-explanations.mdreport-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: 乖離しているリソースへのフラグ付け
各リソースにしきい値を適用します。
- 乖離率 —
costDrift.percentDriftの絶対値がdrift_pctしきい値を超えた場合にフラグを付けます - 乖離額 —
costDrift.deltaの絶対値がdrift_absoluteしきい値を超えた場合にフラグを付けます - 全体の乖離 — ポートフォリオ全体の乖離率が
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: 結果の提示
ユーザーに次の情報を提示します。
- 全体の乖離率と方向
- 前回のチェックとの傾向比較(改善、悪化、または安定)
- 乖離しているリソースの数
- 特に乖離の大きいリソースとその説明
- 特定のリソースを調査するか、しきい値を調整するかを尋ねます