Skip to content

コンテキスト因果関係

AI が何かを 変更する 直前に何を 読んだ かを確認できます。変更ごとに、参照した可能性のあるソースの一覧を、それぞれ確信度スコア付きで、完全にお使いのマシン上で算出して表示します。

AI がファイルを編集したとき、たいてい興味深いのは「その判断のために何を見たのか?」という点です。コンテキスト因果関係はこれに答えます。各 Write / Edit を、それに先立つ読み取り(ReadGrepGlob、…)へと結び付け、各読み取りが実際にどれだけその変更に影響を与えた可能性が高いかでランク付けします。これは ローカルな構造的ヒューリスティックserver/causality.jsanalyzeCausality()、LLM はどこにも使いません)であり、オフラインで瞬時に動作し、コードをマシン外へ送信することは一切ありません。これは意図的なトレードオフです。意味論ではなく ファイルの関係性と順序 について推論し、推測でごまかすのではなく、確信度について正直であろうとします。

⛓ バッジ

Playback では、候補ソースを持つ変更メッセージのヘッダーに、ソース数を示す ⛓ バッジ が付きます。これをクリックすると、「What likely drove this change」 と題されたパネルが開きます。各行は 1 件のソース読み取りを表し、次を示します。

  • 確信度バー とパーセンテージ、
  • AI が読んだ ツールとファイル(または実行した検索パターン)、
  • 平易な言葉で書かれた短い 理由

任意のソース行をクリックすると、トランスクリプト内の そのメッセージへジャンプ できるので、AI が実際に何を見たかを正確に読むことができます。

読み取りが変更にどう対応付けられるか

各変更について、Chronicle は そのセッションでより早く 発生した読み取り(シーケンス番号が小さいもの)だけを対象とし、変更されたファイルとの構造的関係によってそれぞれをスコア付けします。最も強い関係が優先されます。

確信度関係表示される理由
0.95変更したまさにそのファイルを読んだ「read this exact file before changing it」
0.55同じディレクトリ内の兄弟ファイルを読んだ「read a sibling file in the same directory」
0.50同じベース名を持つ別のファイルを読んだ「read a file with the same base name」
0.45パターンが変更ファイルに一致する検索を実行した「searched for '…'」
0.20変更の直前に読んだが、構造的なつながりはない「read shortly before this change (background context)」

0.20 の階層は、短い時間ウィンドウ内(変更直前の数件の読み取り)にある読み取りにのみ適用されます。だからこそ「read shortly before」は直接的な証拠ではなく背景コンテキストとして扱われます。ソースは読み取りごとに重複排除され、強い順にソートされ、上位数件に絞られます。そのため、パネルは一致する厳密なファイルがあればそれを先頭に表示し、より弱い文脈的なつながりへと徐々に移っていきます。

パネルでは、確信度の高いソース(0.8 超)は direct、確信度の低いソース(0.3 未満)は background としてスタイル付けされます。これにより、AI が編集したファイルそのものから作業したのか、それともより緩やかな周辺コンテキストから作業したのかが一目でわかります。

なぜモデルではなくヒューリスティックなのか

Chronicle はどこでも LLM 呼び出しを行いません。それがオフラインでローカルファーストであるという保証です。因果関係は、実際の内容を読むモデルを使えばより鋭くなり得ますが、それはコードを API へ送信することを意味し、Chronicle はそれをしません。使用する構造的シグナル(同じファイル、同じディレクトリ、同じベース名、一致する検索、近接性)は、実際の編集の大半を説明できることがわかっており、確信度の階層は、つながりが状況証拠にすぎないときにツールが過大に主張しないよう抑えます。これは高速でプライベートな「これはどこから来たのか?」を示すポインタと捉えてください。神託ではありません。

関連項目

Released under the MIT License.