VacantAI のアカウンタビリティ層GitHub

証拠と再現 · 再現 / コマンドとハッシュ · 

再実行の方法

手順を一つずつここに並べます。メカニズムのシミュレーション、実モデルのスイート、API を使わないオフライン再生、レシートチェーンの検証。統計的な結論の大部分は、API を使わない再計算スクリプトで再実行でき、モデルは一切使いません。

#なぜ大部分の結果をコストゼロで再実行できるのか

利得実験の元の記録はすべて rows.jsonl に一問ずつ書き出されており、arm / task_id / delivered / hidden_pass / calls_used の五つのフィールドを含みます。つまり統計的な結論のためにモデルを呼び直す必要はありません。

# ゲートの収束(CONFORM、三つの問題バンク)
ops/gain/replay/conform_settle.py
ops/gain/replay/paired_ci.py          # 対応のある McNemar + 固定シードの bootstrap
ops/gain/replay/pooled_paired_ci.py   # バンクを統合

# 候補の上限と早期停止
ops/gain/replay/verify_hidden.py
ops/gain/replay/rows_visible_audit.py  # 可視/非公開の分離監査

# k 曲線
ops/gain/replay/off5_k_curve.py

# ループの帰属(turn-1 のコードをオフラインで取り出し直す、モデル呼び出しゼロ)
ops/gain/analyze_r460.py --rescore-turn1

# 多者実行
ops/gain/replay/peer_exec_sim.py
ops/gain/replay/peer_exec_real.py

#メカニズムのシミュレーション

python examples/pulse_suite.py --out <DIR>   # E17–E24、パルス攻撃
python examples/entrycost_suite.py --out <DIR>  # E1–E16、参入コスト

完全に決定的です。rng のシード = f'{seed}:{config_digest}' なので、同じパラメータなら必ず同じ結果になります。

#実モデルのスイート

python examples/realmodel_suite.py --out <DIR> --tasks 60
問題バンクEvalPlus MBPP+ v0.2.0(378 問、sha256 で固定)
品質判定アームの外での compile_check(t.check)(answer)
対応キーtask_id = sha256(prompt + tests)、アーム間で安定
統計McNemar の正確検定 + 固定シードの bootstrap 95% CI + 検出力
再開(arm, i) をキーにしており、中断しても最初からやり直す必要なし

#レシートチェーンとオフラインビューア

vacant audit <name>                     # ある logbook の署名チェーンを再検証(PASS/FAIL)
vacant verify-att att.json --answer "olleh"   # 持ち運べる署名付きの証憑を検証

オフラインの単一ファイルビューアもこのサイトに置いています。そのままダウンロードして使えます。

ファイルサイズ内容
receipt_viewer.html0.3 MB単独実行
receipt_viewer_multiparty.html4.5 MB多者実行

どちらも Vacant リポジトリの examples/ からそのままコピーしたものです。

  • レシートはファイルに埋め込まれています
  • 外部リソースゼロ、ネットワークリクエストゼロ
  • 保存して file:// で直接開いても、チェーン全体の検証を最後まで実行できます

#回帰の判定基準

.venv/bin/python -m pytest tests/ -q
時点結果
初期179 passed
2026-07-09(VM リセット後)189 / 189
独立レビューの修正ブランチ361 passed / 1 skipped(ベースライン 330)
チャネル分離の改版428 passed / 1 skipped(判定基準を 25 件追加)

#データ索引そのものも検証できる

實驗記錄/_index/files.jsonl は 3,322 行のリストで、各行にパス、型、行数、sha256 が記録されています。そのため証拠ディレクトリ全体(3,322 個のファイル、1,550,582 行、325,111,980 バイト)が手を加えられていないかどうかを独立に検証できます。

claims.json の各項目には「再計算の方法」フィールドがあり、どのスクリプトを再実行し、どのフィールドを読み、どの分母を使うかが書かれています。

#サイトの側

npm run build     # content/**/*.md → docs/、blog/、sitemap.xml、検索索引
npm run check     # 内容の完全性だけを検証し、ファイルは書かない
python3 -m http.server 8899   # ローカルでプレビュー

サイトのライブデータは Vacant 本体のリポジトリのスクリプトが生成します。

cd ~/Documents/GitHub/Vacant
python examples/publish_status.py \
  --root ~/.vacant-mcp \
  --out ../vacant-docs-web/data/status.json \
  [--run-tests]
```}}



## 証拠の等級

論文の 121 件の参考文献は、証拠の等級ごとに整理されています。

| 等級 | 定義 | 件数 |
|---|---|---|
| **A 全文あり** | PDF が手元にあり、引用は一字一句照合済み | 81 |
| **A ウェブ保存** | 公式文書、仕様、ソースコードのページを保存し、ハッシュを登録済み | 13 |
| **B 要旨に基づく** | 要旨のみ手元にある。それに基づく論断は本文で「要旨に基づく」と明示 | 5 |
| **C 書誌のみ** | 全文は未収録。書誌は DOI、Crossref、出版社のページで確認済み | 16 |
| **プロジェクト文書** | 本プロジェクトの未出版文書 | 6 |



## 次に

- データ索引の各項目の内容:{{doc:evidence-ledger|証拠台帳}}
- 本研究の経緯:{{doc:journey|研究の経緯}}

最終更新: · 約 8 分で読めます

世新大学世新大学 情報伝播学科Vacant

世新大学 情報伝播学科 2026 年度卒業研究・展示会