mcpField
C
Causari

Causari

ローカル
causari.devバージョン管理92 日前に更新

Causari について

Causariは、AI関連のコミットメタデータに一致した変更について、git blameが現在も帰属させる行数を集計します。エージェントが申告したプロンプト、モデル、ファイルをローカル記録する機能も備え、記録が証明する範囲を明示します。

主な機能

  1. 01AIタグ付きコミットの行の残存状況を監査
  2. 02監査スナップショットと方式の比較
  3. 03エージェントのプロンプト・モデル・ファイルを記録
  4. 04コード行に関連する記録イベントを追跡
  5. 05フックまたはプロキシでやり取りを取得
  6. 06署名レシートの作成と検証

活用シーン

  1. 01メタデータが一致したコミットの残存行を測定
  2. 02プルリクエストに監査サマリーを追加
  3. 03コード行の元となる記録イベントを特定
  4. 04エージェントの活動をローカルに記録

MCP 対応

`re mcp`コマンドはローカル台帳をMCP経由で公開し、エージェントがプロンプト、モデル、ファイルなどの申告内容を記録できます。これらの申告は、誰がコードを入力したかを証明するものではありません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
cargocausari0.5.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

∵ causari

AI が書いたコードに作者はいません。あるのは原因です。Causari はそれを記録します。

AI タグ付きコミットの行のうち、リポジトリに今も残っているのは何行ですか? コマンドは 1 つ、あらゆる git リポジトリでセットアップ不要です。これは評価ではなく、件数です。

re audit は、git メタデータが AI 検出ルールに一致したコミットによって追加された行数と、そのうち HEAD で git blame が今もそれらのコミットに帰属させている行数を数えます。この件数が 生存率 です。これは評価ではなく、件数です。AI タグ付きとは、メタデータが一致したという意味です。 モデルがその行を書いた証明ではありません。UNKNOWN(そのようなメタデータがない)は、人間が書いたという意味ではありません。

Causari は、エージェントのランタイムが申告した内容(プロンプト、モデル、ファイル)のローカル台帳も保持し、MCP 経由で公開します(re mcp)。Seal は、このコミットと方式について、ある鍵がこれらのバイト列に署名したことを認証します。数値や帰属が真実であることは認証しません。

方式と制限事項:causari.dev/method。エージェント向けに、同じ制限事項を 1 つのファイルにまとめています:causari.dev/llms.txt(完全な仕様とスキーマ:causari.dev/llms-full.txt、エージェント検出カード:causari.dev/.well-known/agent.json)。

curl -fsSL https://causari.dev/install.sh | sh
re audit

causari.dev  ·  週間生存率レポート  ·  方式  ·  マニフェスト  ·  ロードマップ  ·  リリース

CI ライセンス プラットフォーム このツール自身のリポジトリで測定した AI コードの生存率

Crovia Trust による Causari:causari / re バイナリ、npm、PyPI、crates.io の causari パッケージ、MCP サーバー io.github.croviatrust/causari。因果ナレッジグラフを提供する別チームの causari.ai、GitHub 組織 causari、npm スコープ @causari とは関係ありません。


re audit vercel/next.js     # any public repo, cloned to a temp dir and removed after
$ re audit
∵ causari · AI code survival
───────────────────────────────────────────────────
  216 commits analyzed (git metadata only, no setup required)

AI-tagged (metadata matched): 14 commits, 6267 introduced, 5185 survived
  survival 82.7% line-weighted · 82.7% capped · median 92.8%
  Of the lines introduced by metadata-matched commits, this percentage is the share `git blame -w -M -C` still attributes to those commits. It is not the share of the repository and it is not a quality score. Metadata matched does not prove who wrote each line. UNKNOWN and untagged are commits with no such signal; they are not a finding that a human wrote them.
  Age-matched gap: +2.9 percentage points (AI-tagged 85.6% minus untagged 82.7% in the matched age windows). Positive means the metadata-matched lines have the higher line-weighted survival in those windows, over 1 matched age window holding 75% of the AI-tagged lines. Lines outside those windows are not in this gap.
Probable AI-assisted: none detected
By agent (metadata matched only)
  agent                commits introduced  survived  line-wt   capped   median
  cursor                    14       6267      5185    82.7%    82.7%    92.8%

Baseline: untagged lines of the same repository
  untagged: 202 commits, 95759 introduced, 76085 survived · 79.5% line-weighted · 92.1% median
    line age                AI-tagged                 untagged
      0-30 d       85.6% (13 commits)      82.7% (142 commits)
     30-90 d                        —       75.8% (23 commits)   (below floor on one side)
    90-180 d         73.9% (1 commit)       62.6% (37 commits)   (below floor on one side)
  Age-matched gap: +2.9 percentage points (AI-tagged 85.6% minus untagged 82.7% in the matched age windows). Positive means the metadata-matched lines have the higher line-weighted survival in those windows, over 1 matched age window holding 75% of the AI-tagged lines. Lines outside those windows are not in this gap.

Confidence notes
  · JSON field `verified` = metadata matched (trailers, bot author, …), not authorship proved
  · PROBABLE = weak heuristic; may include human-assisted commits
  · UNKNOWN commits are excluded from headline numbers; they form
    the untagged baseline (human, inline-completed and untagged-agent code alike)
  · Only lines from AI-tagged commits are measured; inline completions
    (Copilot, Cursor Tab, …) leave no git trace and are invisible here
  · A measurement, not a grade: method v4 at https://causari.dev/method

Reading and export
  · The age-matched gap above is the comparison. An agent row marked below floor is not comparable.
    Meeting the floor is not a reliability guarantee.
  · Export: `re audit <target> --json`, `--summary`, `--seal`, `--badge`, `--card`
    `re report` reads the local ledger. It does not export this audit.

割合は、git blame がこの方式でタグ付けされたコミットに今も帰属させている行の割合です。コード品質、開発者の生産性、AI の総利用量、モデルがその行を書いた証拠、セキュリティ、正確性、AI の因果効果を示すものではありません。5 コミット未満のエージェント行には、基準未満のマークが付きます。5 コミットは比較可能性の最低基準であり、信頼性を保証するものではありません。

git-ai のノートは、空でないツール名を含む場合にのみ数えます(方式 v4)。スキーマのみのノート、人間のみのノート、空のツール名は数えません。方式 v3 では、git-ai のノートはすべて数えていました。Survival Reports #1 と #2 は方式 v2 のままです。Reports #3 と #4、および 0.3.0 リリースの監査は、すべて方式 v3 のままです。Report #4 は 10.5281/zenodo.23196011 です。Reports #5 と #6 は方式 v4 のままで、causari 0.4.1(コミット d4c4949、2026-10-08)で測定されています。公開済みバイナリ 0.5.0(2026-10-21)は方式 v6 で、このソースが計算する方式です。surviving は introduced と同じパスを読み取るため、バイナリブロブ(PDF や画像)はどちらの件数にも行を追加せず、シンボリックリンクは両方の件数に 1 行を追加します。coverage.binary_files は、対象から除外されたブロブの数を示します。方式 v5 を採用したバイナリはリリースされていません。公開済みのレポートは再計算されません。

15 分で始める

curl -fsSL https://causari.dev/install.sh | sh
cd /path/to/a/git/repo
re audit

出力の3行を確認してください。**AIタグ付き(メタデータ一致)**は、コミットのメタデータがルールに一致したコホートです。ベースラインはそれ以外のすべてのコミットであり、タグなしは「人間」を意味するわけではありません。生存率は、タグ付きコホートの行数で重み付けした残存率です。誰がコードを入力したかを証明するものではありません。ルールと限界については、causari.dev/methodをご覧ください。

台帳は、記録を行う場合にのみ使う、2つ目のローカルパスであり、Git の追跡対象外です。

git history → re audit → survival counts
hooks or proxy → .causari/ → re why / trace / lens

シールは監査データに署名します。2つのパスを結び付けるものではありません。

AI がどれだけコードを書くかについては、誰もが議論しています。しかし、その数字を検証できる人はいません。 re audit はプレーンな Git 履歴を読み取り、Co-Authored-By トレーラー、ボット作成者、 エージェントマーカーを調べて、メタデータが一致したコミットを見つけ、git blame でその行のうち HEAD に残っている数を確認します。メタデータが一致していても、モデルがその行を書いた証拠にはなりません。モデルも推定もアンケートもありません。--json は、件数、repository.head、repository.root_commits、手法、blame と numstat のフラグ(coverage.blame_flags、coverage.numstat_flags)、coverage.ignore_revs_sha256、および存在する場合は refs/notes/ai の対象 OID である coverage.notes_oid を保存します。refs/notes/ai のノートのペイロードは保存しません。この参照はコミットオブジェクトの一部ではなく、変更すると coverage.notes_oid が変わり、コミット SHA は同じままでも件数が変わることがあります。変更が加えられたリポジトリでは、コミットも異なります。

  • --json は、公開された各行の根拠となる正確なバイト列です(公開済みの行はこちら:causari.dev/reports/survival。CroviaResearch/causari-survivalのデータセットとしても公開されています)
  • --summary は CI 向けの Markdown、--badge / --card は単色の SVG です
  • --diff <before> <after> は、2つの監査 JSON または .seal.json バンドルを、1つの軸(repository_diff、method_diff、indeterminate_method_diff、metadata_diff、または identical_inputs)に沿って比較します。複数の軸にまたがる差分や、関連のないリポジトリ同士の比較は拒否します
  • --save は、独自の推移を追跡するためにスナップショットを追記します

何と比較するのか:メソッド v3 以降、すべての監査では、リポジトリ内のタグなし行をAIタグ付きの行と並べ、行の経過期間ごとに示し、経過期間を合わせた差を明記します。これは、同じリポジトリ内の期間を合わせた範囲におけるAIタグ付きの生存率からタグなしの生存率を引いた値であり、タイムスタンプが同一のもの同士の比較ではありません。また、HEAD に残っている最古の行と、それより前のコミット数も示します。リポジトリが一掃されたり書き換えられたりした場合はそこに表れ、その比率もそれに応じて読み取れます。

確認できないこと:インライン補完(Copilot、Cursor Tab、 Windsurf など)によるコードは Git に痕跡を残さないため、タグなしのベースラインに含まれます。 タグなしだからといって、人間が書いたという判定にはなりません。トレーラーのないコミットは UNKNOWN です。同じ制約を1つのファイルで確認したいエージェントは、 causari.dev/llms.txtを参照してください。メソッド v1 では、フォーマッターの適用や関数の移動も消失として数えます。1つの大規模コミットが、行数で重み付けした比率を大きく左右することがあります。AIタグ付きコミットが5件未満の場合は、その比率にフラグが付けられます。こうしたすべての内容と、数値に異議を申し立てる方法は causari.dev/methodに記載されています。よくある質問への、コマンドと制約を添えた回答はこちら:causari.dev/faq。git blame、ベンダーのダッシュボード、変更量レポートとの違いはこちら:causari.dev/compare。

毎週公開されるサバイバルレポートでは、 re audit を最大100のオープンソースリポジトリに対して実行します。対象は、手作業で選んだリストと、GitHub のコミット検索で同じAIの作成者メタデータを持つコミットが5件以上見つかった、スター数上位の公開リポジトリ(スター100以上)です。対象は毎週、レポート公開日の前日に、 メソッドページに記載されたルールに基づき scripts/survival_discover.pyで選定されます。行はアルファベット順のままです。.github/survival-optout.txtに1行追加すると、そのリポジトリが除外されます。

CI 内:すべてのプルリクエストで件数を表示

# .github/workflows/causari.yml
on: pull_request
permissions: { contents: read, pull-requests: write }
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }      # the audit reads every commit; shallow clones are wrong
      - uses: croviatrust/causari@v1

Action はビルド済みの Linux バイナリをダウンロードし(数秒)、re audit --summary を実行して、その結果をジョブのサマリーに書き込み、各 PR に固定コメントを 1 件投稿します。クラウドもアカウントも不要です。実例をご覧ください。

台帳:「どのコミット」から「どのプロンプト」まで

監査はどのような履歴でも機能します。さらに、ある行が存在する「理由」——プロンプト、モデル、エージェントが読み込んだファイル——も知りたい場合、Causari はエージェントのアクションを発生時にローカルの追記専用台帳(.causari/、gitignore 対象)へ記録し、各アクションの前後のツリーのスナップショットも保存します。

re init                       # create .causari/ (added to .gitignore)
re hook claude-code           # record every Claude Code prompt and edit, exactly
re hook cursor                # same for Cursor, via its hooks.json (prompt, edit, model)
re proxy                      # local LLM proxy: prompts, models, tokens, cost
re watch                      # attribute file changes to captured completions

re why    src/auth.ts:42      # which recorded event introduced this line
re trace  src/auth.ts:42      # upstream: events that fed into it through reads/writes
re impact <event-id>          # downstream: what later events depended on it
re lens   src/auth.ts         # the file annotated line by line with its event
re find   "the JWT refactor"  # search prompts, messages, reasoning
re bisect --test "npm test"   # first recorded event that breaks a test
re revert <id>                # restore the pre-state, with a preview of what else you undo
re fork / re sessions / re switch / re log --all / re diff a..b
各エージェントが現在実際に提供する情報

「どのエージェントにも対応」と主張するのは簡単です。この表はコードに基づいており、最新の状態に保たれています。セルの内容に誤りがあれば、issue を作成してください。

エージェントプロンプトとファイルの正確な対応モデル、トークン、コスト方法
Claude Codeはい、ライフサイクルフック経由まだ未対応(編集は tool_use として送信されますが、プロキシはまだそれをファイルに関連付けません)re hook claude-code
Aiderヒューリスティックな関連付け、計測済みはいOPENAI_API_BASE / ANTHROPIC_API_BASE → re proxy + re watch
Codex CLI、OpenAI Agents SDKまだ未対応(Responses API の出力を解析していません)はいOPENAI_BASE_URL → re proxy
Cursorはい、ネイティブフック経由モデルは対応(フックがモデル名を通知)、トークンとコストは未対応(Cursor のモデル呼び出しは re proxy を経由しません)re hook cursor
Windsurf、Copilotエージェントが MCP 経由で自己申告した情報のみいいえre mcp
Cline / Roo、カスタムスクリプト、curl補完にコードがテキストとして含まれる場合、ヒューリスティックに関連付けはいベース URL → re proxy + re watch

証拠の種類は 2 つあり、すべての出力にどちらの種類かが示されます。

  • 申告済み(フック、MCP、re record):エージェントが実行した内容を申告しています。プロンプトとパスは正確です。2 つのフックイベントの間に人間がファイルを編集した場合、その編集はフックのスナップショットによって次のエージェントイベントに取り込まれます。これは既知の制約であり、フェーズ 1 で修正中です。
  • 相関済み(プロキシ + watch):挿入した行が、その直前に取得した補完の中から検索されます。これはスコアであり、事実ではありません。examples/real-session/ の敵対的ハーネスには実測値が示されています。クリーンな書き込みでは 100 %、フォーマッターの実行後は 50 % で、同じ時間枠内に 2 つのプロンプトが 1 つのファイルに作用すると、行ごとの帰属を誤ります。

すべてのデータはお使いのマシン内にとどまります。re proxy とフックは、プロンプト、補完、コマンドを .causari/(gitignore 対象)に平文で保存します。sk-… キー、GitHub/GitLab/Slack/npm/PyPI/Hugging Face トークン、AWS キーと Google キー、ベアラートークン、JWT、PEM 秘密鍵など、形式から識別できる認証情報は書き込み前に [redacted:<kind>] に置き換えられ、記録には置換した件数が記載されます。それ以外に貼り付けた内容は、入力されたとおりに保持されます。スナップショットは、除外対象になっていないすべてのファイルを保存します(.env*、node_modules、target、dist、build、.git などはデフォルトで除外されます)。.causari/ は機密情報として扱ってください。保存される情報と保存されない情報、またツールが防御するものと防御しないものについては、SECURITY.md と docs/threat-model.md をご覧ください。

当社を介さず検証できるレシート

Crovia Seals。 re proxy --seal は、すべての完了について crovia.seal.v1 レシートを発行します。Ed25519 で署名され、ハッシュチェーンで連結され、正確なリクエストとレスポンスのバイト列の SHA-256 ハッシュをコミットします(コンテンツがマシンの外に出ることはありません)。記録された各やり取りには seal_id と同じハッシュが含まれるため、レシートと対象の完了を照合できます。実装はリファレンス適合性ベクトルに合格しており、シールは Python リファレンス実装で検証でき、その逆も可能です。

re proxy --seal          # issue a receipt per completion
re seal verify           # every signature, whole chain, offline
re seal issuer           # your issuer id and public key (read-only)

PNX — 非持ち出し証明。 re proxy --pnx は、TACET プロファイル crovia.pnx.v1 において、プロキシを送信先の証人にします。各リクエスト本文は、転送される前にフィンガープリント化(ソルト付きウィノウイング、k-gram 32、ウィンドウ 16)され、スパース Merkle マップにコミットされます。Ctrl-C を押すと、ルートを含む実行記録に署名します。続いて re pnx prove を実行すると、保護対象のアセットの集合について、そのトラフィックと47バイト以上の部分文字列を共有するものがないことを示します。または、共有したアセットを記録します。実行記録と証明にはトラフィックのバイト列もアセットのバイト列も含まれず、re pnx verify または Python リファレンスの tacet-pnx でオフライン検証できます。どちらの方向でも、判定結果と終了コードは同じです。実行記録には、実行時にどこに接続したかも記載されます。つまり、プロキシが転送したすべての上流接続先と、ハッシュで紐付けられた送信ポリシーに基づくその結果です(到達記録、PNX §4a)。ポリシー外の宛先は、本文が外部に出る前に拒否されます。証明が示すこと、示さないことについては、docs/pnx.md を参照してください。

re proxy --pnx --pnx-policy egress-policy.json    # witness a session; upstreams outside the policy are refused; Ctrl-C signs the sheet
re pnx prove --asset api_key=.env --assets-dir src/secret/
re pnx verify .causari/pnx/<run>/proof.json --asset api_key=.env --assets-dir src/secret/ --policy egress-policy.json

監査シール。 re audit --seal は、監査結果を同じ種類のレシートとして書き込みます。re audit --json の正確なバイト列に対する crovia.seal.v1 であり、監査対象のコミットとメソッドのバージョンに紐付けられ、リポジトリごとに1つの発行者キーを使って、プロキシの完了シールとハッシュチェーンで連結されます。re seal verify FILE でオフライン検証できます。ネットワークリクエストを行わない静的ページ causari.dev/verify でも検証できます。有効なシールは、このキーがこのコミットについてこれらの数値に署名し、その後改ざんされていないことを証明します。数値が真実であることまでは証明しません。コミット上で re audit を再実行して比較してください。(re proof はこれに置き換えられ、現在は終了コード 2 で終了し、代替手段を示します。)

re audit --seal --output audit.seal.json
re seal verify audit.seal.json
re audit --diff before.seal.json after.seal.json --summary

試験的機能

これらのコマンドは存在し、デモでは動作しますが、まだ上記の基準に準拠しているとは見なされていません。準拠するまでは、証明の対象にもトップページにも含まれません。

  • re skill distill / verify / export / import / pull / trust:過去の作業を署名付きの単位にします。Ed25519 により後からの編集を検出しますが、署名はコンテンツを保証するものではありません。verified は、distill 時点で固定された申告シグナル(呼び出し元が指定した終了コード 0、または先端時点で依然として存在する申告済みの書き込みパス)であり、実際に観測された成功ではありません。2 倍のランク重みは、その申告シグナルによるもので、信頼性を測定した結果ではありません。proven は付与されません。従来のリコール回数は実行を意味しません。
  • re brief:モデルのコンテキスト用に過去の作業をまとめた Markdown のブリーフィングです。
  • re guard:最近の変更に対する部分文字列ルールです。要求された場合(--fail-on alert|warning)にのみビルドをブロックします。機械処理には --json を使用します。
  • re churn、re report:Git ではなく台帳上で継続状況を測定し、静的な価格表に基づいてコストを推計します。re churn --json を利用でき、チーム独自の下限値を設定する場合は --fail-below <percent> を指定します。
  • re mcp:causari_record、causari_recall、causari_why を備えた stdio MCP サーバーです。re mcp --install はクライアント設定を出力します。

インストール

# Linux / macOS
curl -fsSL https://causari.dev/install.sh | sh

# Windows (PowerShell)
irm https://causari.dev/install.ps1 | iex

# Homebrew (macOS, Linux)
brew install croviatrust/tap/causari

# Scoop (Windows)
scoop bucket add causari https://github.com/croviatrust/scoop-bucket && scoop install causari

# crates.io (Rust 1.85+)
cargo install causari --locked

# no install: launchers that fetch the verified binary on first run
npx causari audit
pipx run causari audit

# from source
cargo install --git https://github.com/croviatrust/causari --locked

1つのプログラムに2つの名前があります。causariはバイナリで、reはすべての例で使われている短縮名です。どちらもすべてのアーカイブに含まれ、両方ともインストールされます。Linux(x86_64、aarch64)、macOS(x86_64、Apple silicon)、Windows(x86_64)向けの約5 MBの静的バイナリ1つで、~/.local/bin(または%LOCALAPPDATA%\Programs\causari)にインストールされます。インストーラーは、アーカイブのSHA-256を各リリースとともに公開されるSHA256SUMS.txtと照合し、不一致の場合はインストールを拒否します。v0.2.0以降、すべてのアーカイブとチェックサムファイルには、リリースワークフローから署名済みのSLSAビルド来歴証明が付与されます。

gh attestation verify causari-v0.5.0-x86_64-unknown-linux-gnu.tar.gz --repo croviatrust/causari

手動でインストールする場合:

VERSION=$(curl -fsSL https://api.github.com/repos/croviatrust/causari/releases/latest | sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p')
TARGET=x86_64-unknown-linux-gnu
base="https://github.com/croviatrust/causari/releases/download/$VERSION"
curl -fsSLO "$base/causari-$VERSION-$TARGET.tar.gz" && curl -fsSLO "$base/SHA256SUMS.txt"
sha256sum --ignore-missing -c SHA256SUMS.txt && tar -xzf "causari-$VERSION-$TARGET.tar.gz" && install -m755 causari re ~/.local/bin/

Homebrew tapとScoop bucketは、各リリースのSHA256SUMS.txtからマニフェストを生成し、6時間ごとに再生成します。crateはリリースタグから、crates.io Trusted Publishing(.github/workflows/publish-crate.yml)を通じて公開されます。長期間有効なトークンはありません。

MCP サーバーとして

re mcpはstdio経由でMCPと通信し、causari_record、causari_recall、causari_whyを公開します。re mcp --installは、Claude Desktop、Cursor、Windsurf、Cline向けの設定ブロックを出力します。このサーバーはserver.jsonをもとにMCP Registryに登録されています。

  • MCP Registry名:mcp-name: io.github.croviatrust/causari
  • Cursorへのワンクリック追加:CausariをCursorに追加 (re mcpを登録します。バイナリがPATH上にある必要があります)
Cursorでの使用

re hook cursorは、プロジェクトの.cursor/hooks.jsonに7つのコマンドフックをマージします(コミットしてください。チームメイトやCursorのクラウドエージェントはリポジトリのルートから実行します)。--userを指定すると、代わりに1台のマシン用の~/.cursor/hooks.jsonにマージします。--dry-runは結果を出力します。同じファイルに他の人が作成したフックは保持されます。各フックはre hook-event cursor:<event>を実行するため、CursorプロセスからreをPATH上で見つけられる必要があります(Claude Codeのフックと同じ注意点です)。reがない場合や、re initを実行していないプロジェクトでは、各フックは中立的なJSONオブジェクトを返し、何も記録しません。台帳に記録される内容は、添付ファイルとモデルを含むプロンプト(beforeSubmitPrompt)、シェルツールまたは書き込みツールを実行する前のスナップショット(preToolUse)、書き込まれたファイルごとに1つのイベント(afterFileEdit)とツリーを変更したコマンドごとに1つのイベント(afterShellExecution)、プロンプトと並べて保存されるエージェントの応答(afterAgentResponse)、およびsessionStart時のコンテキストとしての体験ブリーフィングです。

Claude Codeプラグインとして

このリポジトリはプラグインマーケットプレイスでもあります。Claude Code内で次を実行します。

/plugin marketplace add croviatrust/causari
/plugin install causari@croviatrust

このプラグインは、re hook claude-codeで手動設定する4つのフック(プロンプト、実行前の状態、実行後の状態、セッションブリーフィング)、MCP サーバー、およびwhy、trace、recall、recordを使うべき場面をモデルに伝えるスキルをインストールします。reバイナリがPATH上に必要です。reがない場合や、re initを実行していないプロジェクトでは、各フックは何もせずに終了します。

デモ:scripts/demo*.sh|ps1(モックLLMを同梱)、examples/real-session/(敵対的ハーネス)、scripts/recovery_lab.py(revert/bisectストレスラボ)。

仕組み(1段落)

記録された各イベントは、ツリーの変更前後、エージェント、モデル、ツール、プロンプト、宣言された読み取りと書き込み、トークン数とコスト、親を含む、コンテンツアドレス指定されたオブジェクト(BLAKE3)です。セッションはrefsであり、フォークは暗黙的に扱われます。re whyは現在のチェーン上で、その前後差分が該当行を追加した最初のイベントを見つけます。re traceはそこから読み取りと書き込みを遡り、re impactは先に進みます。変更されていないファイルはスナップショット間で同じblobを共有します。設計の全容と現在の制限については、docs/review-2026-09-20/を参照してください。

今後の展望

Causari は、来歴追跡ツール(Agent Trace、git-ai、Assisted-by: トレーラー、Entire チェックポイント)と競合しません。それらが残したメタデータを読み取り、公開された手法で測定し、第三者がオフラインで検証できるよう結果に署名します。

公開済みのバイナリ 0.5.0 とメソッド v6(2026-10-21)、およびこのソースで完了している項目:git blame -w -M -C、コミットごとの上限、v4 の git-ai ルール、v5 の監査シール、HEAD ツリーの読み取り、git log --numstat -M -z、coverage.copy_capped_lines、署名付きの coverage.notes_oid と coverage.ignore_revs_sha256、単一の軸での re audit --diff、そして numstat でカウントしたパスのみを blame し、バイナリブロブはどちらのカウントにも含めない v6 のルールです。プロキシで完了している項目:PNX の証人モード。プロキシが確認したリクエスト本文について、指定されたアセットがその通信と 47 バイトの部分文字列を共有していないことを証明できます。このセッションで他の接続が一切なかったことを証明するものではありません。

次の予定:Agent Trace リーダー、およびパッケージのバージョンとメソッドが同じペアとなるリリースです。

フェーズと終了条件:ROADMAP.md。

ファミリー

Causari は Crovia の一部です。3つの時制で記述する1つの文法です。TACET は、モデルの公開カードが観測された時間帯にトレーニングデータの開示を含んでいなかったことを証明します。PNX は、指定されたアセットが証人の確認したリクエスト本文と長い部分文字列を共有していないことを示します(ジョブが他の接続を行わなかったことを示すものではありません)。Causari は、ランタイムが宣言した内容を記録し、AI タグ付きコミットの行が現在も HEAD にあるかどうかを測定します。どの製品でもルールは共通です。再現可能な数値、判定なし、自社サーバーを使わない検証、そして制約を最初に明記します。

Crovia の世界観における役割 — 姉妹製品:git メタデータの監査とローカル台帳です。シールは、コミットとメソッドに対するバイト列を認証します。真実や、誰が行を入力したかを認証するものではありません。エージェントの完了結果と監査結果を発行するシール発行者です。

ライセンス

Apache-2.0(LICENSE を参照)。「Causari」は Crovia Trust の商標です。このライセンスは商標権を付与しません(NOTICE を参照)。コントリビューションについては、CONTRIBUTING.md を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。