mcpField
C
cc-canary-html

cc-canary-html

github.com/delta-hqデータ・データベース7639 回インストール27 週間前に更新
リポジトリ

cc-canary-html について

cc-canary-html は、cc-canary のセッション分析を HTML レポートにまとめる Claude スキルです。スクリプトの実行、説明文の記入、ブラウザーでの表示を案内し、回帰シグナルの判断基準も示します。

主な機能

  1. 01HTML レポート生成
  2. 02分析期間の設定
  3. 03回帰シグナルの分類
  4. 04ブラウザーでレポート表示

活用シーン

  1. 01最近のセッション傾向の確認
  2. 02モデルバージョンの比較
  3. 03回帰の可能性の評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/delta-hq/cc-canary --skill cc-canary-html

インストール後、Claude Code で/cc-canary-htmlを入力して読み込まれたか確認します。

同梱ファイルscripts/compute_stats.py

詳細

cc-canary-html — HTML で表示する nerf 検出レポート

/cc-canary と同じ分析を HTML で表示します。

同梱スクリプト scripts/compute_stats.py が約 2.5 秒で処理します。JSONL をスキャンし、変曲点と遷移日の検出、前後の集計、バージョン間比較、時間帯別分析、単語頻度、3 期間の思考深度、可視性の遷移、ターンごとの割合、異常を算出します。その後、すべての表を埋め、ASCII 棒グラフを等幅フォントの <pre> ブロックに保持した完全な HTML スケルトンを生成します。説明文を挿入する箇所には `` と記されています。

デフォルトの期間は 60d です。7d / 14d / 30d / 60d / 90d / 180d を指定できます。

4 ステップの作業

1. スクリプトを実行する
Bash(python3 <SKILL_DIR>/scripts/compute_stats.py --window {window} --render-html /tmp/cc-canary-skeleton-{window}.html > /dev/null 2>&1)

<SKILL_DIR>: .claude/skills/cc-canary-html/ → 見つからない場合は ~/.claude/skills/cc-canary-html/ を使用します。

フラグ:--window {Nd}(必須);--include-agents;--min-user-words N。

スクリプトが失敗した場合は、エラーを報告して --include-agents を付けて 1 回再試行します。それでも失敗した場合は終了します。手作業での計算に切り替えてはいけません。

2. HTML スケルトンを読む
Read /tmp/cc-canary-skeleton-{window}.html
3. すべての `` プレースホルダーを埋めて保存する

各プレースホルダーコメントを、HTML セーフな説明文に置き換えます。記述する内容に含まれる <、>、& はエスケープしてください。すべての表、<pre> の棒グラフ、既存の HTML は変更せずに保持します。次の名前で保存します。

Write ./cc-canary-{YYYY-MM-DD}.html
4. ブラウザーで開く

Bash(uname) でプラットフォームを判別します。

  • Darwin → Bash(open ./cc-canary-{YYYY-MM-DD}.html)
  • Linux → Bash(xdg-open ./cc-canary-{YYYY-MM-DD}.html)
  • その他 → Bash(start ./cc-canary-{YYYY-MM-DD}.html)

開くコマンドが失敗した場合は、エラーにせず、絶対パスを出力します。

メッセージの末尾は次の形式にします:Wrote /Users/.../cc-canary-{date}.html — opened in browser.(開けなかった場合は … open manually.)。

説明文のプレースホルダー

/cc-canary と同じ項目です。

  • verdict-line — HOLDING / SUSPECTED REGRESSION / CONFIRMED REGRESSION / INCONCLUSIVE +簡潔な根拠
  • summary — 1~2 文で簡潔に、何がどの程度変化したか
  • timeline — 1~2 段落
  • xv-para — バージョン間比較についての 1 段落(§2 がある場合)
  • finding-N-class × 最大 5 — インライン分類:model-side | user-side | ambiguous
  • finding-N-reason × 最大 5 — 根拠を先に示し、最大 2~3 文
  • root-cause — 3~5 段落
  • what-would-help — 具体的な項目を 2~4 個
  • appendix-a1…a4, b, c, d, e, f, g, h — それぞれ 1 段落
  • meta-note — 一人称で正直に、2~5 文

判定の基準

  • HOLDING:model-side のシグナルが 1 件以下
  • SUSPECTED REGRESSION:model-side のシグナルが 2~3 件
  • CONFIRMED REGRESSION:model-side のシグナルが 3 件以上、低下を示すバージョン間比較が空でない、session_count ≥ 15、モデルが 2 つ以上、inflection.gap_sigma ≥ 1.0
  • INCONCLUSIVE:session_count < 15、または交絡要因が重なる inflection.method == "fallback_split_half"

次の場合は SUSPECTED を上限とします:モデルが 1 つのみ;セッションが 15 件未満;期間の途中からプロジェクトが始まった単一プロジェクト;変曲点がユーザー側の明らかなイベントと一致する場合。

厳守事項

  • 絶対に ~/.claude/projects/**/*.jsonl を読み取ったり、grep や glob で検索したりしないでください。セッションファイルに対して jq/awk/wc を実行してはいけません。これらの処理はすべてスクリプトが行います。
  • 絶対に既存の HTML、表、<pre> ブロックを変更してはいけません。これらは実データから生成されています。
  • 挿入する説明文はすべて HTML エスケープ します(<、>、& → エンティティ)。
  • すべての finding に分類ラベルを付けます。
  • バージョン間比較が空、または session_count < 15 の場合は、断定を避けます。
  • チェックリストをすべて満たさずに CONFIRMED REGRESSION と判定してはいけません。
  • スケルトンをそのまま保存してはいけません。先にすべての `` を置き換えます。

失敗時の対応

  • スクリプトのインポートエラー → python3 -V で 3.8 以上であることを確認し、--include-agents を付けて 1 回再試行します。それでも失敗した場合は終了します。
  • スケルトンが 5KB 未満 → 期間内にセッションがない可能性があります。
  • inflection.method == fallback_split_half → その旨を記載し、判定の上限を SUSPECTED とします。
  • バージョン間の Δ が None → model-A の値が 0 の場合にゼロ除算が発生しています。交絡要因として記載します。
  • ブラウザーで開くコマンドが失敗 → エラーにせず、パスを出力して終了します。

コメント