1仕組みと動作原理
データソースはローカルのccusage:analyze_claude_usage.pyはログ自体をパースせず、subprocess経由で`ccusage claude daily/blocks --json`を呼び出してJSONを取得・抽出します。スキルの価値は「ccusageの数値を読み取り、平易な言葉で説明すること」にあります。
proc = subprocess.run( ["ccusage", "claude", *args, "--json"],
期間ウィンドウのセマンティクス:デフォルトでは--since/--untilに指定タイムゾーン(デフォルト:Asia/Shanghai)の「本日」が適用されます。過去比較には明示的な--sinceの指定が必要であり、指定がない場合rank/medianは単日のみを記述します。
Default `--since/--until` is today in the selected timezone.
モデル比較はエイリアスに対応:--model-a/--model-bで対象日のmodelBreakdowns内を部分一致検索(デフォルト:fable対opus-4-8)し、トークン比とコスト比を出力して「トークン量が多い=高額」という誤解を是正します。
python3 scripts/analyze_claude_usage.py --model-a fable --model-b opus-4-8
5時間ブロックはccusage blocksコマンドにより提供(クォータウィンドウの近似グループ化)。スクリプトはisGapをスキップして対象日のブロックのみを保持し、開始/終了時刻、モデル数、エントリ数、トークン数、コスト、キャッシュ比率を出力します。
4. 5-hour block table when quota exhaustion is discussed.
解説層とエビデンス層の分離:SKILLでは数値結論を必ずccusage/analyzerの出力に基づくものと規定しています。キャッシュの説明(readも利用負荷に含まれる)を行い、プラン詳細が不明な場合は「quota-like pressure/ccusage estimated」といった限定的な表現を用い、最終回答はexplanation-guide.mdの構成に従って記述します。
Explain cache clearly: cache read tokens are still usage/quota pressure even though the user did not type those words.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | ccusage(第三方 npm CLI,用量统计) |
| package | ccusage@latest(npm 全局安装) |
| cli | python3(zoneinfo 需系统 tz 数据) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: scripts/analyze_claude_usage.py
- 网络端点: 外部ネットワークアクセスの宣言: (ccusage未検出時のみ)npm install -g ccusage@latest / npx ccusage@latest —— npmより取得
5二重目の独立検証
- [ok] 无网络外发(脚本自身) — 无 urllib/requests/socket;唯一外部动作是 npm install ccusage 的安装提示(用户/agent 执行)
- [ok] 无凭证读取 — 无 environ/getenv/settings/.claude.json 读取;ccusage 侧读取范围不可在本仓审计(已在 reason 注明)
- [ok] 无写文件 — 脚本只 print(stdout),无文件写入
- [ok] 数字字段映射准确 — cacheCreationTokens/cacheReadTokens/cost 等字段名与 ccusage JSON 语义一致;model_total 明确含 cache 系 token
- [ok] ‘ccusage 不是官方账单’边界 — SKILL evidence rules 与 explanation-guide caveats 双重声明 estimated/quota-like 措辞要求
6結論
009defcb5a1b30df…