CC-Canary:Claude Code の性能低下を示す初期兆候を検出するための手法

2026/04/25 2:53

CC-Canary:Claude Code の性能低下を示す初期兆候を検出するための手法

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

cc-canary は、機密データを漏らさずにローカルな Claude Code セッションでのドリフト検出およびコーディング行動分析を行うプライバシー重視のオフライン AI ツールです。標準ライブラリのみを使用して macOS、Linux、WSL 上で動作し、

~/.claude/projects/
の JSONL セッションログを処理します。ネットワークコールゼロ、テレメトリゼロ、バックグラウンドデーモンなしを実現しています。ユーザーのプロンプトは 180 文字以内に截断され、機密パスは削除(redacted)されます。現在はプレアルファ(0.x)段階で、バンドルされたスクリプトは約 2.5 秒で実行され、Claude がナラティブのスロットを埋めるために追加の 10〜20 秒がかかります。

セッション内で

/cc-canary [window]
または
/cc-canary-html [window]
を呼び出すことで使用でき(ここで
[window]
はデフォルトで 60 日であり、
--window
フラグを通じて 7〜180 日の範囲に変化可能です)、共有可能な Markdown 形式の法医学レポート(GitHub に貼り付け即用)を生成するか、ダークテーマの HTML ダッシュボードを自動開きます。追跡するメトリクスには、読み込み/書き込み比率、変化に対する書き込みの割合、推論ループ、挫折率、思考-redaction レート、平均思考長、API ターン数、およびユーザーターンあたりのトークン使用量が含まれます。分析には、反転日(0.75σ の床値あり)のための argmax 検出を含む複合的健康度スコア、週のトレンドバー、クロスバージョン比較、そして一日中の思考深さ付録が含まれます。

このツールは

--include-agents
および
--min-user-words
のような追加フラグをサポートし、PATH 上に Python ≥3.8 を必要とし、github.com/delta-hq/cc-canary/issues を通じて issue に貢献します。その核心機能は、大規模言語モデルとの対話を透明性高くローカルで管理することであり、外部サービスに依存せずにユーザーがデジタルワークフローに対して厳格な制御を維持するのを助けます。

本文

Claude Code のドリフト検出機能:2 つのインストール可能なエージェント・スキルとして提供されています。
このツールは、

~/.claude/projects/
内に既に記録されている JSONL セッションログを読み込み、モデルがあなたの作業に対してドリフト(行動や特性の変化)しているかを検出し、共有可能なフォレンジックレポートを生成します。ネットワークへの接続不要、アカウント登録不要、テレメトリ送信なし、バックグラウンド・デーモンの起動もありません。すべてディスク上の既存データを対象に動作します。

現状:0.x / プリアльфа版
出力フォーマットや指標セットは今後の変更可能性があります。

提供されるスキル一覧

スキル呼び出し方法出力内容
cc-canary
/cc-canary [window]
フォレンジックなマークダウン形式のレポート(例:
./cc-canary-<日付>.md
) → GitHub のイシューやギストにそのまま貼り付け可能
cc-canary-html
/cc-canary-html [window]
同じデータをダークテーマで表示した HTML ダッシュボードとして出力(例:
./cc-canary-<日付>.html
) ブラウザで自動的に開きます
  • [window] のデフォルト値は 60 日間です。
    受入可能な範囲:7d / 14d / 30d / 60d / 90d / 180d。

  • それぞれのレポートには以下の項目が含まれます:

    • Verdict(判断): HOLDING / SUSPECTED REGRESSION(疑わしい劣化)/ CONFIRMED REGRESSION(確認された劣化)/ INCONCLUSIVE(不確実)
    • ヘッダー指標テーブル(事前・事後比較、🟢/🟡/🔴のバンド判定付き)
    • ウィークリー・トレンドグラフ:コスト(米ドル、ccusage によるセント単位の検証済み)、読み込み対編集比率(read:edit ratio)、推論ループ回数、ターンあたりのトークン数
    • クロスバージョン比較:同一ユーザー、異なるモデルバージョンでの比較(タスクミックスを制御しながら)
    • 自動検出された転換日:複合健康スコアの変化点
    • 発見事項の分類:モデル側 / ユーザー側 / アンビギュラス(不明確な要因)
    • 附属書:一日別の思考深さ、単語頻度変化、三期間における思考表示度の移行、ターンごとの行動率など

インストール方法

npx skills add delta-hq/cc-canary

個別にインストールする場合:

npx skills add delta-hq/cc-canary --skill cc-canary
# または
npx skills add delta-hq/cc-canary --skill cc-canary-html

その後、任意の Claude Code セッションから以下のように呼び出します:

/cc-canary 60d
/cc-canary-html 30d

要件:
PATH に

python3 ≥ 3.8
が必要です。
cc-canary-html
の自動ブラウザ開き機能は、macOS / Linux / WSL に対応しています(失敗した場合やサポート環境でない場合はパスのみを出力します)。

動作原理

  • スキャン:
    bundlingされた純粋な標準ライブラリ(pip や NodeJS は使用せず)による Python スクリプトが
    ~/.claude/projects/**/*.jsonl
    を走査し、指定したウィンドウ幅でフィルタリング、デフォルトではサブエージェントセッションを除外します。
  • 重複排除(Dedupe):
    message.id
    および
    requestId
    に対してアシスタントメッセージの重複を除去します(ccusage が採用している手法と同じ)。Claude Code はセッション再開や分岐時に同じメッセージを複数の JSONL ファイルに書き込むためです。
  • 集計:
    セッション単位の指標:ツールの使用構成比、読み込み対編集比率、推論ループフレーズ、自己告白するエラー数、早期終了回数、中断回数、トークン使用量、コスト(現在の Claude 4.x レート)、一日別の思考深さ。
  • 転換日の検出:
    各日の複合健康スコアを計算し、候補日の中で
    |before − after|
    が最大になる日を argmax で選択(閾値は σ の 0.75 倍)。明確な変化点が見つかっていない場合は中央値 Timestamp での分割にフォールバックします。
  • レポートのプレレンダリング:
    スクリプトがすべてのテーブルや棒グラフを埋め込んだマークダウン/HTML スケレトンを書き込みます。Claude が埋める余地としては約 20 の短いナラティブスロット(
    <!-- C: ... -->
    マークで示す)のみを残します(判断の一行、要約、各発見事項への推論理由、根本原因、附属書の段落など)。
  • 埋め込みと保存:
    Claude はこのスケレトンを読み取り、ナラティブ部分を書き込み、最終ファイルを保存します。

所要時間: スクリプト実行で約 2.5 秒、Claude がナラティブを埋めるのに 10–20 秒。

各スキルが追跡する指標(ヘッダーテーブルに含まれるもの)

(適用される場合は健全/移行/懸念のバンド表示付き)

  • 読み込み対編集比率(Read:Edit ratio): ファイルを一度読むごとに何回編集するか。モデルが変異を行う前にどれだけ徹底的に調査を行ったかの指標。
  • 書き込みの割合(Write share of mutations): 総変更数における書き込みの割合
    [Write / (Edit + Write)]
    。割合が高いほど、モデルはファイル全体を書き換える傾向があり、外科的な編集を行わないことを示唆します。
  • 推論ループ回数 / 1K ツール呼び出し: "let me try again", "oh wait", "actually," などのフレーズの頻度。
  • 焦燥率(Frustration rate): ユーザープロンプト内の焦燥表現の出現率。
  • 思考遮断率(Thinking redaction rate): 表示されていない(遮断された)思考ブロックと表示されている思考ブロックの比率。
  • 平均思考長さ(Mean thinking length): 推論深さの指標(可視化されたコンテンツ長との相関係数 r=0.97、暗号署名長の計測による)。
  • 1 ユーザーターンあたりの API ターン数: ユーザーメッセージに対するモデルからの API 呼び出し回数。
  • 1 ユーザーターンあたりのトークン数: ユーザーメッセージごとの総トークン量(入力+出力+キャッシュ)。

また、附属書では以下の追加シグナルも提供します
早期終了、自己告白するエラー、ショートカット語彙、ユーザー中断、一日別の思考深さ、単語頻度変化、三期間における思考表示度の移行、ターンごとの行動率など。

スキルのフラグとフィルター設定

Bash コマンド(

python3 scripts/compute_stats.py …
)を通じて渡すことでカスタム実行が可能です:

引数デフォルト値目的
--window {Nd}
60dウィンドウサイズ(7d / 14d / 30d / 60d / 90d / 180d)
--include-agents
offサブエージェントセッションを含むか否か(デフォルト:除外 — ユーザープロンプトが自然に発生しないため)
--min-user-words N
10この単語数未満のユーザープロンプトを持つセッションを除外する(トリビアルなセッションをフィルタリング)
--render-md PATH
マークダウンスケレオンを PATH に書き出す
--render-html PATH
HTML ダッシュボードを PATH に書き出す

プライバシーポリシー

  • 完全にローカル動作: ネットワークへの呼び出しは一切ありません。
  • スクリプトは
    ~/.claude/projects/*.jsonl
    のみを読み取ります。それ以外のファイルにはアクセスしません。
  • ナラティブのプロース(文章)は、スキル実行時(あなたの Claude Code セッション内で)Claude によって書き込まれます。これにはディスク上の明示的に指定されたファイルへのみのアクセス権限があります。
  • ユーザープロンプトの内容は、スケレオンに含める前に最大 180 キャラクタへ短縮され、
    /Users/…
    パス、メールアドレス、ヘキサンコードのようなトークンはマスキング(遮断)されます。
  • 出力ファイル(
    ./cc-canary-<日付>.{md,html}
    )はスキルが実行されたディレクトリにのみ配置され、どこにもアップロードされることはありません。

コントリビューション

イシュー、指標に関する提言、そしてプルリクエストを大歓迎です:
github.com/delta-hq/cc-canary/issues
※ 0.x 期間中は出力フォーマットや指標セットの変更可能性があります。

名前の由来

炭鉱では、メス(岩ガスの危険を察知する鳥)を派遣して早期の危険兆候を検出させる慣習がありました。cc-canary も同様に、あなたの Claude Code セッションにおけるドリフトの早期兆候を検出します。

ライセンス

MIT License

同じ日のほかのニュース

一覧に戻る →

2026/04/25 4:30

私のオーディオインターフェースは、SSH がデフォルトで有効になっています。

## Japanese Translation: Rodecaster Duo は、ファームウェア署名検証の欠如に起因する深刻なセキュリティ脆弱性を有しています。この欠陥は、研究者がコンテナを通じて SSH パスワード認証を有効にする自製ファームウェアの開発および展開に成功した事例から明らかとなりやすく、カスタムソフトウェアへのフラッシングを可能にしています。同装置は USB 書き込みを無効化することでブリック状態を防ぐように設計されていますが、この制限は回避可能であり、初期試みが失敗した場合(例:macOS)や予期せずトリガーされた場合でもファームウェア更新が進められる可能性があります。USB HID プロトコルの解析により、ファームウェア更新はレポート 1 を介して送信される単純な ASCII コマンド('M」と 'U」)によって開始されることが明らかとなり、実際のファイル操作にはディスクのマウント、`archive.tar.gz`および`archive.md5`の複製、許可付きパーミッションの設定(777)、そして再起動が含まれます。同装置はデフォルトで公開鍵認証とハードコードされた鍵を使用した SSH が有効になっており、これらの鍵が変更されない場合、セキュリティリスクを引き起こします。これらの欠陥についてサポートチケットへの回答はなく、システムのオープンな性質が、この専門的なオーディオツールを有益な改変のプラットフォームであると同時に、潜在的なセキュリティ侵害のプラットフォームにも変えつつあります。

2026/04/25 4:01

クラシック・アメリカン・ダイナー

## Japanese Translation: 米国のダイナーは、輸送史と料理文化の独自の融合を表しており、20 世紀に鉄道輸送用に製造された列車車から、象徴的な路辺のレストランへと進化してきました。歴史記録によれば、主要な高速道路沿いには多様なメニューが提供されており、1940 年夏のマーランド州バーウィン近郊のダイナーではホットドッグが 5 セント、プレートが 25 セント、ニューヨーク市の施設では 1959 年に朝食プレートが 75 セントで提供されていました。長い労働時間に対応するため、多くの場所はアバディーン(マリーランド州)などで見られるように 24 時間営業のモデルを採用し、トラックドライバーだけでなく一般住民もアクセスできるようにしました。国会図書館はこれらの施設の建築的多様性を捉えた広範な写真アーカイブを保管しており、ジョージア州カラムスにあるルート 27 ダイナー(韓国料理も販売している)の波打つ金属製の外観から、バーモント州チェスターにある「ストリームライン」アルミニウム仕上げのクラウニーガールダイナーまで多岐にわたります。これらの画像は単なる食料供給を超え、ダイナーを米国人の好意と国家の記憶を象徴する強力なシンボルとして示しており、20 世紀初頭からの文書からキャロル・M・ハイズミスの作品のような現代アーカイブに至るまで、ピジョンフォージにあるサンライナーダイナーやフェニックスにある5&ダイナーなどの現場を捉えています。

2026/04/24 23:28

過剰な思考、スコープクリープ、そして構造的相違によって引き起こされるプロジェクトへの sabotaging です。

## Japanese Translation: 著者は「やってみるか」という哲学を提唱し、広範な調査よりも即時の作成を優先することで楽しみを保ち、スコープの蔓延を防ぐことを重視する。この転換は、ハードウェアのプロトタイピングインターフェース、Clojure+Rust 融合言語、CAD プログラミングといった長年にわたる技術的関心を扱うが、焦点のない成功基準により数百時間の投入にも関わらず合成された解決策をもたらさず、こうしたサイクルを打破するために著者は迅速なプロトタイピングに注力する。友人の Marcin と一緒に週末プロジェクトとして製作した合板の棚は、機能的成果に絞って完璧な仕様ではなくてはしごを作ったものであり、逆にリソースが不要な機能や過剰な調査に浪費されるときには失敗する。具体的には、LLM エージェントプロジェクト(Finda スタイルのファイルシステム検索)でアンカー機能を見捨てること、difftastic、semanticdiff.com、diffsitter などのツールを数時間レビューして高レベル構造を正しく処理できないことが判明した例などが挙げられる。こうした限界に失望した著者は、Tyvek/ライトディフューザー材料の EU ベンダーを探したり、Coinbase クリプト破産分析から酵母ワクチンや Loon Lisp まで幅広い話題に触れたりする雑多な更新事項も記録している。

CC-Canary:Claude Code の性能低下を示す初期兆候を検出するための手法 | そっか~ニュース