finops-caches について
finops-cachesは、リポジトリまたは組織のGitHub Actionsキャッシュを分析するスキルです。サイズ、キーのパターン、ブランチ別の分布、古いキャッシュを調べ、削除コマンドも提示します。
主な機能
- 01キャッシュのサイズと使用量を分析
- 02キー接頭辞ごとに集計
- 03ブランチ別キャッシュ分布を確認
- 04古いキャッシュや孤立したPRキャッシュを検出
- 05ghでキャッシュを照会・削除
活用シーン
- 01リポジトリ上限に近いキャッシュ使用量の調査
- 02削除対象となる古いキャッシュの特定
- 03キャッシュキー戦略の確認
- 04組織全体のキャッシュ使用量の分析
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill finops-cachesインストール後、Claude Code で/finops-cachesを入力して読み込まれたか確認します。
同梱ファイルscripts/cache-analysis.sh
詳細
/finops:caches
GitHub Actions のキャッシュ使用状況を分析します。サイズの内訳、キャッシュキーのパターン、ブランチごとの分布、古いキャッシュの検出を確認できます。
使用する場面
| シナリオ | このスキルを使用 | 代替手段 |
|---|---|---|
| キャッシュ使用量が上限に近い、または不明 | /finops:caches | - |
| 古い、または孤立した PR キャッシュを特定する | /finops:caches | - |
| キャッシュキー戦略の有効性を確認する | /finops:caches | - |
| リポジトリ全体の健全性を手早く確認する | /finops:overview | まず overview から始めてください |
| 複数のリポジトリ間でキャッシュ使用量を比較する | /finops:compare | 複数リポジトリの比較には compare を使用してください |
| キャッシュではなくワークフローのトリガーを最適化する | /finops:waste | ワークフローレベルの問題には waste を使用してください |
コンテキスト
- 現在のリポジトリ URL:!
git remote get-url origin
パラメーター
| パラメーター | 説明 | デフォルト |
|---|---|---|
repo | owner/name 形式のリポジトリ | 現在のリポジトリ |
org:orgname | 組織全体のキャッシュ使用量を分析 | - |
実行
bash "${SKILL_DIR}/scripts/cache-analysis.sh" $ARGS
出力形式
=== Cache Analysis: org/repo ===
Summary:
45 caches, 2340MB used
23% of 10GB limit
=== By Key Prefix ===
node-modules: 12 caches, 1200MB
playwright: 8 caches, 800MB
turbo: 15 caches, 300MB
=== By Branch ===
main: 10 caches, 500MB
develop: 8 caches, 400MB
PR 123: 3 caches, 150MB
PR 118: 3 caches, 140MB
=== Largest Caches ===
node-modules-linux-abc123: 180MB
playwright-linux-def456: 150MB
=== Stale Caches (>7 days old) ===
8 stale caches, 450MB reclaimable
Oldest: 2025-01-15T10:30:00Z
=== PR Branch Caches ===
12 PR caches, 580MB (check if PRs are merged/closed)
エージェント向けの最適化
| コンテキスト | コマンド |
|---|---|
| キャッシュ一覧(JSON) | gh api "/repos/{owner}/{repo}/actions/caches?per_page=100" --jq '.actions_caches' |
| キャッシュ総数 | gh api "/repos/{owner}/{repo}/actions/caches" --jq '.total_count' |
| 古いキャッシュを削除 | gh api -X DELETE "/repos/{owner}/{repo}/actions/caches/{id}" |
| キャッシュキーを検索 | gh api "/repos/{owner}/{repo}/actions/caches?key=prefix" --jq '.actions_caches[].key' |
| 簡潔な概要 | bash "${SKILL_DIR}/scripts/cache-analysis.sh" $ARGS |
実行後のアクション
調査結果に基づき、以下を提案します:
- 上限に対する割合が高い場合 → 古いキャッシュをクリーンアップし、キー戦略を見直します
- PR キャッシュが多い場合 → クローズ済み PR のキャッシュを削除するワークフローを追加します
- 単一のキャッシュサイズが大きい場合 → 分割または圧縮を検討します
- 古いキャッシュがある場合 → クリーンアップ用のコマンドを提示します:
# Delete stale caches gh api "/repos/$REPO/actions/caches?per_page=100" \ --jq '.actions_caches[] | select(.last_accessed_at < "CUTOFF") | .id' | \ while read id; do gh api -X DELETE "/repos/$REPO/actions/caches/$id"; done
コメント
Markdown 対応