cost-burn について
cost-burnは、本番環境の支出ペースを監視するスキルです。最新の時間枠と過去の空でない枠の平均を比較し、加速が設定値を超えると通知できます。
主な機能
- 01時間枠ごとのセッション支出集計
- 02最新支出と過去平均の比較
- 03加速率のしきい値通知
- 04CIでのコストゲート
- 05履歴がない場合の通知スキップ
活用シーン
- 01本番支出の急増検知
- 02予算通知前のコスト加速検知
- 03CIでのしきい値超過の阻止
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill cost-burnインストール後、Claude Code で/cost-burnを入力して読み込まれたか確認します。
詳細
バーンレート傾向の可観測性。コストトラッカーの将来コストスタックの第4の柱です:
| 質問 | スキル |
|---|---|
| 「しきい値を超えたか?」(リアクティブ) | cost-budget-check |
| 「いつしきい値を超えるか?」(予測) | cost-projection |
| 「もっと少なく使えたか?」(比較) | cost-counterfactual |
| 「日次のバーンは加速しているか?」(傾向) | cost-burn ← これ |
アルゴリズム
実装: scripts/burn.mjs。
cost-trackingネームスペースからすべてのsession-*レコードを読み取ります。--lookback(デフォルト14d)の範囲で--bucketの期間ウィンドウ(デフォルト1d)にビニングします。- 各バケットについて:
{n: sessions, spendUsd: sum(total_cost_usd)}。 delta = latest.spendUsd - mean(prior non-empty buckets)を計算します。--alert-on-acceleration-pct Nが設定されている場合:deltaPct > Nのときに exit 1 とします。
スモークトランスクリプト(5日間 @ $0.10/日、今日 $0.50 — 400% の加速)
| Latest bucket spend | $0.500000 (1 sessions) |
| Prior bucket mean | $0.100000 (4 non-empty buckets) |
| **Delta (latest vs prior mean)** | **+$0.400000 (400.00%)** |
# | Window | Sessions | Spend
0 | 2026-06-15 14:16 → 2026-06-16 14:16 | 1 | $0.500000
1 | 2026-06-14 14:16 → 2026-06-15 14:16 | 0 | $0.000000
2 | 2026-06-13 14:16 → 2026-06-14 14:16 | 1 | $0.100000
3 | 2026-06-12 14:16 → 2026-06-13 14:16 | 1 | $0.100000
...
ドリフトアラートの終了コード
$ cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 50 ⚠ ALERT: latest bucket $0.500000 is 400.0% above prior mean $0.100000 (threshold +50%) exit 1
$ cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 500 ✓ latest bucket within +500% of prior mean (actual delta: 400.0%) — OK exit 0
CI 統合
# Fail the build if today's spend accelerated > 100% over the weekly mean
cost burn --bucket 1d --lookback 7d --alert-on-acceleration-pct 100 || alert-oncall
アラートは予算とは独立しています。総支出が予算をはるかに下回っていても、レートの加速で発火します。「通常の 10 倍を消費するホットループを出荷してしまった」というケースを、予算アラームが鳴る前に捕捉します。
cost-trend との違い
| スキル | データソース | 質問 |
|---|---|---|
cost-trend | docs/benchmarks/runs/*.json | 「ベンチマークはドリフトしているか(勝率、レイテンシ)?」 |
cost-burn | cost-tracking ネームスペース | 「本番の支出は加速しているか?」 |
どちらも有用で、異なるデータに対して異なる質問に答えます。
エッジケース
- 履歴が疎(空でない過去のバケットがない)場合: アラートは理由文字列とともにスキップされ、exit 0 となります。コールドスタート時に誤ったアラートが発せられることはありません。
- 過去のバケットがすべて $0 で最新が $0 超の場合: delta は JSON では
Infinity/nullとなり、テーブルではnewとマークされます。アラートは発火しません(比較対象のベースラインがないため)。 --bucket>--lookback: ハードエラー、exit 2。
コメント
Markdown 対応