claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 22h ago
スキルOfficialproductivity

📊session-report

プラグイン
session-report

説明

`~/.claude/projects` のトランスクリプトから、Claude Code セッションの使用状況(トークン数、キャッシュ、サブエージェント、スキル、高コストなプロンプトなど)を集計し、 インタラクティブに探索可能な HTML レポートを生成します。

原文を表示

Generate an explorable HTML report of Claude Code session usage (tokens, cache, subagents, skills, expensive prompts) from ~/.claude/projects transcripts.

ユースケース

  • Claude Codeの使用状況を把握したい
  • トークン消費量を分析する
  • キャッシュ効率を確認する
  • セッション詳細をレポートで探索する

本文(日本語訳)

セッションレポート

Claude Codeの使用状況をまとめた自己完結型のHTMLレポートを生成し、カレントディレクトリに保存します。

手順

  1. データ取得。 同梱のアナライザーを実行します(デフォルトの集計期間: 直近7日間。ユーザーが別の期間を指定した場合はそちらを優先 — 例: 24h30dall)。 スクリプト analyze-sessions.mjs はこの SKILL.md と同じディレクトリに存在します — 絶対パスで指定してください:

    node <skill-dir>/analyze-sessions.mjs --json --since 7d > /tmp/session-report.json
    

    全期間を対象とする場合は --since を省略してください。

  2. 読み込み: /tmp/session-report.json を読み込みます。 overallby_projectby_subagent_typeby_skillcache_breakstop_prompts の各セクションを確認してください。

  3. テンプレートをコピー(この SKILL.md と同梱)し、カレントディレクトリの出力パスに配置します:

    cp <skill-dir>/template.html ./session-report-$(date +%Y%m%d-%H%M).html
    
  4. 出力ファイルを編集(Write ではなく Edit を使用 — テンプレートの JS/CSS を保持するため):

    • <script id="report-data" type="application/json"> の内容を、手順1で取得したフルJSONに置き換えてください。ページのJSがこのデータを元に、ヒーロー合計値・各テーブル・バー・ドリルダウンを自動でレンダリングします。
    • <!-- AGENT: anomalies --> ブロックに 3〜5件の一行所見 を記載してください。 数値は可能な限り 総トークン数に対する% で表現します(総数 = overall.input_tokens.total + overall.output_tokens)。 1所見につき1行、以下の正確なマークアップを使用:
      <div class="take bad"><div class="fig">41.2%</div><div class="txt"><b>cc-monitor</b> consumed 41% of the week across just 3 sessions</div></div>
      
      クラスの使い分け: .take bad は無駄・異常(赤)、.take good は良好なシグナル(緑)、.take info は中立的な情報(青)。 .fig には短い数値1つ(%、件数、12× のような倍率など)を入れます。 .txt には、対象のプロジェクト/スキル/プロンプトを明示した平易な英語の文を1文記載し、主語を <b> で囲んでください。 注目すべき点: 不均衡なシェアを占めるプロジェクトやスキル、キャッシュヒット率85%未満、総数の2%超を占める単一プロンプト、1回の呼び出しで平均100万トークン超のサブエージェントタイプ、集中して発生するキャッシュブレーク。
    • <!-- AGENT: optimizations --> ブロック(ページ末尾)に、特定の行に紐づいた <div class="callout"> 形式の改善提案を1〜4件記載してください (例: "/weekly-status spawned 7 subagents for 8.1% of total — scope it to fewer parallel agents")。
    • 既存のセクション構成は変更しないでください。
  5. 保存したファイルのパスをユーザーに報告してください。 ファイルを開いたり、レンダリングしたりしないでください。

注意事項

  • テンプレートがインタラクティブ性(ソート、展開/折りたたみ、ブロック文字バー)の源泉です。あなたの役割はデータとナレーションの提供であり、マークアップの構築ではありません。
  • コメントは簡潔かつ具体的に — JSONに含まれる実際のプロジェクト名・数値・タイムスタンプを参照してください。
  • top_prompts にはすでにサブエージェントのトークンが含まれており、タスク通知の継続は元のプロンプトに集約されています。
  • JSONが2MBを超える場合は、埋め込み前に top_prompts を100件、cache_breaks を100件に削減してください(通常はすでに上限が設定されています)。
原文(English)を表示

Session Report

Produce a self-contained HTML report of Claude Code usage and save it to the current working directory.

Steps

  1. Get data. Run the bundled analyzer (default window: last 7 days; honor a different range if the user passed one, e.g. 24h, 30d, or all). The script analyze-sessions.mjs lives in the same directory as this SKILL.md — use its absolute path:

    node <skill-dir>/analyze-sessions.mjs --json --since 7d > /tmp/session-report.json
    

    For all-time, omit --since.

  2. Read /tmp/session-report.json. Skim overall, by_project, by_subagent_type, by_skill, cache_breaks, top_prompts.

  3. Copy the template (also bundled alongside this SKILL.md) to the output path in the current working directory:

    cp <skill-dir>/template.html ./session-report-$(date +%Y%m%d-%H%M).html
    
  4. Edit the output file (use Edit, not Write — preserve the template's JS/CSS):

    • Replace the contents of <script id="report-data" type="application/json"> with the full JSON from step 1. The page's JS renders the hero total, all tables, bars, and drill-downs from this blob automatically.
    • Fill the <!-- AGENT: anomalies --> block with 3–5 one-line findings. Express figures as a % of total tokens wherever possible (total = overall.input_tokens.total + overall.output_tokens). One line per finding, exact markup:
      <div class="take bad"><div class="fig">41.2%</div><div class="txt"><b>cc-monitor</b> consumed 41% of the week across just 3 sessions</div></div>
      
      Classes: .take bad for waste/anomalies (red), .take good for healthy signals (green), .take info for neutral facts (blue). The .fig is one short number (a %, a count, or a multiplier like 12×). The .txt is one plain-English sentence naming the project/skill/prompt; wrap the subject in <b>. Look for: a project or skill eating a disproportionate share, cache-hit <85%, a single prompt >2% of total, subagent types averaging >1M tokens/call, cache breaks clustering.
    • Fill the <!-- AGENT: optimizations --> block (at the bottom of the page) with 1–4 <div class="callout"> suggestions tied to specific rows (e.g. "/weekly-status spawned 7 subagents for 8.1% of total — scope it to fewer parallel agents").
    • Do not restructure existing sections.
  5. Report the saved file path to the user. Do not open it or render it.

Notes

  • The template is the source of interactivity (sorting, expand/collapse, block-char bars). Your job is data + narrative, not markup.
  • Keep commentary terse and specific — reference actual project names, numbers, timestamps from the JSON.
  • top_prompts already includes subagent tokens and rolls task-notification continuations into the originating prompt.
  • If the JSON is >2MB, trim top_prompts to 100 entries and cache_breaks to 100 before embedding (they should already be capped).

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。