mcpField
C
cc-canary

cc-canary

github.com/delta-hqテスト・品質7646 回インストール27 週間前に更新
リポジトリ

cc-canary について

cc-canaryは、特定のユーザーの作業でClaudeに回帰が起きたかを調べるスキルです。セッションデータをスクリプトで集計し、モデル側・ユーザー側・曖昧な要因に分類したMarkdownレポートの骨組みを生成します。

主な機能

  1. 01指定期間のセッション集計
  2. 02変化点の検出とバージョン比較
  3. 03プロンプトと推論深度の変化分析
  4. 04Markdownレポートの骨組み生成
  5. 05発見事項を3種類に分類

活用シーン

  1. 01Claudeの最近の性能低下を確認
  2. 02同じユーザーの作業でモデル版を比較
  3. 03プロジェクトやプロンプトの変化と指標を照合

インストール

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

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

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

同梱ファイルscripts/compute_stats.py

詳細

cc-canary — 長文形式の回帰分析レポート

主な問い:Claude はこのユーザーの作業で劣化しましたか?また、それはいつですか?

同梱のスクリプト scripts/compute_stats.py は、約2.5秒で作業の約95%を実行します。 JSONL をスキャンし、変曲点と移行日の検出を行い、前後の集計、バージョン間比較、時間帯別、単語頻度、3期間の思考の深さ、可視性の変化、ターンごとの割合、異常値を作成し、その後、すべての表が埋まった完全な Markdown の骨組みを生成します。説明文の挿入箇所には `` と記されています。

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

分類の枠組み — 3つの分類

  1. モデル側 — 同じユーザー/タスクで結果が悪化している、バージョン間比較で悪化している、推論の深さが低下している
  2. ユーザー側 — プロジェクト構成の変化、プロンプトの短文化/命令形化、新しいコードベース、ショートカット語彙の増加
  3. 曖昧 — 複数の交絡要因がある、効果量が境界的である、どちらの説明も可能である

3ステップで行う作業

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

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

フラグ:--window {Nd}(必須)、--include-agents(サブエージェントのセッションを含める)、--min-user-words N(デフォルトは10)。

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

2. 骨組みを読む
Read /tmp/cc-canary-skeleton-{window}.md
3. すべての `` プレースホルダーを埋めて保存する
Write ./cc-canary-{YYYY-MM-DD}.md

メッセージの最後に絶対パスを記載します:Wrote /Users/.../cc-canary-{date}.md · paste-ready.

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

各プレースホルダーのインラインコメントに、記述すべき内容が示されています。概要:

  • verdict-line — HOLDING/SUSPECTED REGRESSION/CONFIRMED REGRESSION/INCONCLUSIVE +簡潔な根拠
  • summary — 2~4文:判定+変曲点+最大の前後差。反証を持ち出して曖昧にしないでください。
  • timeline — 日ごとの系列の形状について1~2段落
  • xv-para — バージョン間比較について1段落(§3 がある場合)
  • finding-N-class × 最大5件 — 分類ラベルをインラインで記載
  • finding-N-reason × 最大5件 — 最大2~3文、証拠を先に述べます。最も強い数値(バージョン間の Δ、§2 の値、付録の割合)から始めます。シグナル行の言い換えや、修辞的な前置きは不要です。
  • 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:モデル側のシグナルが1件以下
  • SUSPECTED REGRESSION:モデル側のシグナルが2~3件
  • CONFIRMED REGRESSION:モデル側のシグナルが3件以上 + 低下を示す空でないバージョン間比較 + session_count ≥ 15 + モデルが2種類以上 + inflection.gap_sigma ≥ 1.0
  • INCONCLUSIVE:session_count < 15、または交絡要因が重なる中で inflection.method == "fallback_split_half"

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

必要なデータ(session_count、モデルの構成、変曲点の検出方法、バージョン間比較の有無)はすべて、骨組みにプレーンテキストで出力されています。

根拠の示し方の例(finding-N-reason 用)

分類:モデル側。Read:Edit が 9.0 → 1.0(-89%、懸念される低下)となる一方、バージョン間比較では同じユーザーの作業で opus-4-7 が 0.39、opus-4-6 が 1.00 を示しています。変曲点付近にプロジェクト構成の変化はなく、モデルは編集を優先するようになっています。

厳守事項

  • ~/.claude/projects/**/*.jsonl を読み込んだり、grep や glob で検索したりしてはいけません。セッションファイルに対して jq/awk/wc を実行してはいけません。これらはすべてスクリプトが処理します。
  • 表や数値を変更してはいけません。実データに基づくものです。
  • すべての所見に分類ラベルを付けてください。
  • バージョン間比較が空、または session_count < 15 の場合は、断定を避けてください。
  • チェックリストをすべて満たさずに CONFIRMED REGRESSION と判定してはいけません。
  • 骨組みをそのまま保存してはいけません。最初にすべての `` を置き換えてください。

失敗モード

  • スクリプトのインポートエラー → python3 -V ≥ 3.8 を確認します。--include-agents を付けて一度だけ再試行し、それでも解決しなければ中止します。
  • Skeleton が 5KB 未満 → 対象期間内にセッションがない可能性があります。スクリプトのエラーを確認します。
  • inflection.method == fallback_split_half → その旨を明記し、SUSPECTED を上限とします。
  • バージョン間の Δ が None → model-A の値が 0 の場合に発生するゼロ除算です。交絡要因として記載します。

コメント