mcpField
R
Research Repo Doctor

Research Repo Doctor

ローカル
github.com開発ツール116 週間前に更新

Research Repo Doctor について

Research Repo Doctorは、Artifact Evaluationに向けて研究リポジトリを検査するローカルCLIとGitHub Actionです。再現性やレビュー準備の不足を報告し、安全な修正の土台を作成して実行経路を検証します。AI APIキーやネットワーク接続は不要です。

主な機能

  1. 01決定的なリポジトリ監査
  2. 02安全な不足ファイルのひな形作成
  3. 03成果物の実行経路を検証
  4. 04評価用付録の生成
  5. 05GitHub Actionによるプルリクエスト検査

活用シーン

  1. 01Artifact Evaluationに向けたリポジトリ準備
  2. 02投稿前の再現性不足の検出
  3. 03新規指摘を条件とするプルリクエストゲート
  4. 04コーディングエージェントによる修正の検証

MCP 対応

スキャンやリポジトリ設定の読み込みに使える、任意のMCP対応があります。MCP対応はオプションで、コアスキャナーには必須ではありません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"tom409114-rrdoctor": {
"command": "uvx",
"args": [
"rrdoctor"
]
}
}
}
起動コマンドuvx rrdoctor

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypirrdoctor0.2.24

ツール

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

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

詳細

Research Repo Doctor

締め切り前に、Artifact Evaluation に向けて研究成果物を準備しましょう。 リポジトリをスキャンし、簡単な修正のひな形を作成し、実行手順を検証して、付録を生成します。

公開リポジトリ向けの Web デモ:https://research-repo-doctor-bckncrcwwmg6jrbsrd6btj.streamlit.app/ ホストされたデモが起動中、または依存関係を再インストール中の場合は、以下のローカルのゼロインストールコマンドが確実な代替手段です。

uvx rrdoctor scan .

メンテナーは、次のコマンドで匿名デモへのアクセスを確認できます。 python scripts/check_live_demo.py https://research-repo-doctor-bckncrcwwmg6jrbsrd6btj.streamlit.app/。

rrdoctor demo

CI rrdoctor readiness License: MIT Python

rrdoctor は、研究成果物の準備を支援するローカル CLI および GitHub Action です。リポジトリがレビュー可能で、引用可能で、実行可能な状態に近いかを監査し、安全で機械的に行える修正のひな形を作成します。さらに、検出結果を AE 形式の準備状況レベルに対応付け、残りの作業をコーディングエージェントや人間が完了できるチェックリストにまとめます。

プルリクエストのゲートとして使う

GitHub Action が主な導入方法です。成果物の準備中に CLI を実行し、その後もすべてのプルリクエストで同じ決定論的な事前チェックを実行します。

name: Reproducibility preflight

on:
  pull_request:
  push:
    branches: [main]

permissions:
  contents: read

jobs:
  rrdoctor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: Tom409114/[email protected]
        with:
          profile: standard
          fail-on: error

詳しい内容は、GitHub Action ガイドをご覧ください。固定表示される PR コメント、新しい検出結果のベースライン、エージェントプラン、付録、AE 準備パケット全体について説明しています。

AE の締め切りまでの手順

uvx rrdoctor prepare . --profile acm --out-dir rrdoctor-prep

# Or run the pieces explicitly:
uvx rrdoctor scan . --profile acm
uvx rrdoctor fix . --write
uvx rrdoctor appendix . --profile acm --output ARTIFACT_APPENDIX.md
uvx rrdoctor verify . --profile acm
uvx rrdoctor verify . --profile acm --run --timeout 600 --fail-on error  # trusted repos only
# Or pin the official quickstart command as the dynamic gate:
uvx rrdoctor verify . --profile acm --command "python train.py config/default.py" --run --timeout 600 --fail-on error

信頼できるリポジトリでは、rrdoctor verify --run によって静的チェックを超えた検証を行えます。サポート対象の Python リポジトリでは、一時的な分離環境を作成し、宣言された依存関係をインストールして、タイムアウト付きで宣言されたエントリーポイントを実行します。その他のエコシステムでは、明示的なリゾルバーの事前チェックを行います。デフォルトのゲート(--fail-on error)では、L2/L3 の動的ステップが失敗またはブロックされると、ゼロ以外の終了コードを返します。レビュー担当者に実行してほしい特定のスモークテストまたはクイックスタートコマンドが成果物にある場合は、--command を使用してください。動的モードでは、エントリーポイントに加えて依存関係のビルド/インストールフックも実行される場合があるため、信頼できないコードには絶対に使用しないでください。rrdoctor prepare は、レポート、エージェントプラン、成果物の付録、検証手順を、1 つのローカル証拠ディレクトリに書き込みます。

Artifact Evaluation のチェアや研究室のメンテナーは、提出前の任意の文言や CI の例について、AE チェアガイドを参照できます。

公開されている評価の証拠については、80 リポジトリのデータ概要と nanoGPT の初回実行回帰ケーススタディをご覧ください。

検出できる内容

  • 「--seed フラグが何もしていません。」 RRD052 は、シードオプションを宣言しているものの、random.seed、np.random.seed、torch.manual_seed、tf.random.set_seed、または random_state=seed を呼び出していないコードを検出します。
  • 「自分のノート PC では動きました。」 ローカル環境にしかないデータパス、データの出所情報の欠落、文書化されていない取得手順。
  • 「環境がいつの間にか変わっています。」 バージョンが固定されていない依存関係、実行時バージョンの欠落、宣言されていないインポート、依存関係マニフェストの不在。
  • 「ノートブックに誤りがあります。」 古い出力、順序どおりでない実行、チェックポイントの成果物、秘密情報のようなノートブック出力。
  • 「引用方法や再実行方法をレビュー担当者が判断できません。」 ライセンス、引用情報、CI、テスト、変更履歴、結果の出所情報、実験のエントリーポイントの欠落。

インストール

インストールせずに一度だけ実行するには:

uvx rrdoctor scan .

別の方法:

pipx run rrdoctor scan .
pip install rrdoctor
rrdoctor scan .

ソースから開発用にインストールするには:

git clone https://github.com/Tom409114/research-repo-doctor.git
cd research-repo-doctor
python -m pip install -e ".[dev]"
rrdoctor scan .

簡単な不足を補う

rrdoctor に安全な骨組みを作成させましょう。決定論的で、べき等性があり、既存のファイルを上書きすることはありません。

rrdoctor fix . --write

ガバナンス文書、引用メタデータ、データ/結果の来歴に関する注記、再現可能なシードのヘルパー、変更履歴の項目、研究でよく使われる .gitignore のエントリなど、不足しているものを作成できます。難しい作業も、レビュー可能な計画として提示されます。

rrdoctor plan . --output plan.md

コーディングエージェントと使う

次の内容を Claude Code、Cursor、GitHub Copilot、またはその他のコーディングエージェントに貼り付けてください。

Use rrdoctor as the deterministic, offline, no-API-key grader for this research repo.

Run:
rrdoctor scan . --format json --output baseline.json
rrdoctor plan . --output plan.md

Work through plan.md without weakening rrdoctor checks.

Definition of done:
rrdoctor scan . --baseline baseline.json --fail-on-new error

最後のコマンドは、目的を達成したかどうかを判定するゲートです。開始時のベースラインと照合してエージェントの作業を検証し、新たに発生したエラーがある場合にのみ失敗します。

Agent Skills/Claude Code 形式のワークフローや Cursor プロジェクトルールに対応した、コピー可能なエージェント用テンプレートを integrations/ で利用できます。

キーワード:研究ソフトウェア、再現性、アーティファクト評価、リポジトリー監査、自動修正、コーディングエージェント、AGENTS.md、GitHub Action、ノートブック、データの利用可能性、引用メタデータ。

ルールの調整にご協力ください

rrdoctor を改善する最も効果的な方法は、実際の研究リポジトリーをスキャンした結果についてフィードバックをいただくことです。スキャンを一度実行した後、手間のかからない10分間の試用レポートでは、役に立った点、誤りや不足があった点、実際の締め切りがある作業にこのツールが適しているかどうかだけをお尋ねします。特定のルールについて報告する場合は、誤検知、見逃し、スキャン事例、または新しいルールのイシューを作成してください。ルール ID、コマンド、rrdoctor のバージョン、機密情報を除いた最小限のリポジトリー構成を記載してください。簡単なチェックリストはフィードバックと調整をご覧ください。

これが重要な理由

研究コードは、締め切りに追われるなか GitHub に公開されることがよくあります。レビュー担当者や後から参加した研究室のメンバーが有望なリポジトリーを見つけても、環境の説明が不十分だったり、データパスがローカル環境に依存していたり、ノートブックに古い出力が残っていたり、依存関係が固定されていなかったり、引用情報が不明瞭だったりして、何時間も費やすことになります。

Research Repo Doctor は、繰り返し発生するこうしたリリースの妨げを、具体的な対処方法を示す決定論的なチェックに置き換えます。また、安全に実施できる場合は、機械的な作業の出発点となる骨組みも作成します。通常のメンテナンスの流れに組み込めるように設計されており、リリースの準備中にローカルで実行し、その後 GitHub Actions を使ってプルリクエストで自動実行できます。

監査は AI API キー、ネットワークアクセス、ホステッドサービスを必要とせずに実行できます。同じ決定論性により、担当者やコーディングエージェントが行った修正を検証する、公正な評価ツールにもなります。

audit -> fix -> plan -> (your coding agent / you) -> verify -> PR
  |       |       |                                  |
  |       |       rrdoctor plan                      rrdoctor scan --baseline
  |       rrdoctor fix --write                       --fail-on-new error
  rrdoctor scan

0.2.24 の新機能

  • システムアーティファクトの対応範囲を拡大:既存のチェックで、Cargo、CMake、Meson、コンテナー、Nix の証拠に加え、エントリーポイント、テスト、CI、リリースの各ワークフローにおける、文書化されたアーティファクトスクリプトと Cargo コマンドを認識するようになりました。
  • 静的スキャンのノイズを軽減:対象ソースに起因する SyntaxWarning のノイズを抑制し、エスケープされた Python の例外テキストがローカルの Windows パスとして誤認されなくなりました。
  • 初回利用時の信頼性を再検証:公開 PyPI の rrdoctor==0.2.23 で nanoGPT を評価すると、引き続き Functional(76/100、エラー 0 件)となり、以前からノイズとなっていた RRD050 と RRD063 の検出結果も引き続き表示されません。
  • JOSS の適用範囲を明確化:論文草稿に関する注記で、6 か月を超える公開履歴の要件と、メンテナーが提示する必要のある研究利用、著者資格、利益相反、AI 開示の証拠を区別しました。
  • スキャンを実際に制御する設定ファイル:CLI と MCP の呼び出しで、作業ディレクトリーにかかわらず、対象リポジトリーの .rrdoctor.yml を読み込むようになりました。プロファイル、レポート、しきい値、失敗条件、対象の包含/除外、ルールの各設定が、明示的な CLI オーバーライドの下で機能します。

0.2.23 の新機能

  • より安全なリリース手順:ホスト型デモを、公開済みの最新 PyPI パッケージに固定したまま新しいリリースの反映を待てるため、Trusted Publishing 中に Streamlit のデプロイが壊れるのを防げます。
  • GitHub Actions を第一級でサポート:コンパクトなプルリクエスト用ワークフローが README の上部付近に追加され、公開準備状況のテストによって保護されています。
  • フィードバックまでの時間を短縮:ウェブデモのスキャンが完了すると、有用な検出結果、誤検出、見逃し、実際の期限への適合性を確認する、構成化された10分間の試用レポートへのリンクが表示されます。
  • 公式 MCP Registry での配布:v0.2.24 は io.github.Tom409114/rrdoctor として公開されています。MCP サポートはコアスキャナーの依存関係ではなく、引き続きオプションの追加機能です。Registry への掲載は配布メタデータであり、推奨や採用実績を示すものではありません。
  • 動的検証の網羅性を強化:オフライン統合テストにより、L3 が一時的な Python 環境内に宣言済みのローカルホイールをインストールしてインポートできることを確認します。

0.2.22 の新機能

  • 実際の Python 環境での検証:rrdoctor verify --run は、一時的な隔離 venv を作成し、リポジトリで宣言された依存関係をインストールしたうえで、リゾルバーのドライランで終了するのではなく、そのインタープリターと PATH を使って L3 を実行するようになりました。
  • 実行境界を明確に報告:検証レポートでは、依存関係のビルドフックに伴うリスクを開示し、マシン固有の一時パスを伏せ、実行後に一時環境を削除します。他のエコシステムでは、明示的なリゾルバーによる事前チェックを引き続き実施します。
  • 隔離チェックを強化:継承された PYTHONHOME と PYTHONPATH の値を削除し、python3.10 などのバージョン付きランチャーは一時環境にリダイレクトされます。

0.2.21 の新機能

  • コーパスの根拠をより正確に提示:公開されている80リポジトリのキャリブレーションコーパスには、重点レビューのメモが80件、重点レビュー待ちのリポジトリが0件含まれ、コーパスが証明できることとできないことを説明する簡潔なデータ概要も追加されています。
  • モデルリリースのスキャンでノイズを低減:RRD050 と verify は、ルート、scripts/、tools/ の各構成にある demo.py、inference.py、predict.py、sample.py、generate.py など、一般的なモデルリリースのエントリーポイントを認識するようになりました。
  • シークレットチェックのノイズを低減:RRD063 と RRD090 は、プロバイダー固有の形式のキーは引き続き検出しつつ、一般的な api_key/token/secret/password の代入について、より強いエントロピーの根拠を必要とするようになりました。
  • エージェント連携を拡充:ベースライン → 計画 → 検証の流れに対応する、コピーして使える GitHub Copilot の指示が、既存の Agent Skill および Cursor のテンプレートとともにリポジトリに含まれています。
  • リリース関連資料を明確化:JOSS の草稿では評価の根拠と制約をより明確に説明しています。また、ライブデモのチェックでは、アプリに到達できるかを判断する前に Streamlit の匿名リダイレクトハンドシェイクを行うようになりました。

0.2.20 の新機能

  • 成熟した科学系パッケージのスキャンでノイズを低減:RRD010 は LICENSE.txt などの一般的なライセンスファイル名を認識するようになり、RRD043 は CI/devcontainer のパス、テスト/フィクスチャ、URL のパスセグメント、ドキュメントに記載されたプレースホルダー/例示用の絶対パスを無視するようになりました。
  • ライブラリおよびシークレットのヒューリスティックでノイズを低減:RRD050 は、一般的なネストされた package/ レイアウトを含む、成熟したパッケージ/ライブラリプロジェクトを、論文の実験エントリーポイントが欠けているものとして扱わなくなりました。また、RRD090 は URL クエリのトークン、ローカルの関数呼び出しまたはメソッド呼び出しで使われるトークン変数、テスト用ヘルパーにある汎用の偽トークン、生物学系/テスト用の長い配列に埋め込まれたプロバイダー風の部分文字列を無視するようになりました。
  • レビュー済みコーパスのエビデンスを拡充:SciPy を重点レビュー対象とし、RRD010 と RRD043 の期待される不検出のリグレッションゲートに追加しました。scikit-image、JAX、NetworkX、Keras、Transformers、PyTorch Lightning、Biopython、torchvision、MDAnalysis、QuTiP、ESM、stable-diffusion、detectron2、DINO、StyleGAN2-ADA PyTorch、instant-ngp、Big Vision、latent-diffusion、taming-transformers、generative-models、pytorch-image-models、Brax、ArviZ、PyMC、Pyro、TensorFlow Probability、statsmodels、Optax、および残りのコーパス項目にも、初回実行時の信頼性ゲートまたは重点レビューのエビデンスを追加しました。最新の80リポジトリのコーパスゲートでは、期待される不検出のリグレッションが0件、レビュー済みノートが80件で、重点レビュー待ちのリポジトリは0件です。
  • 自動修正の出力がテンプレートらしさを軽減:rrdoctor fix --write は、引用および来歴のひな形を生成する際、リポジトリのコードを実行せずに、単純なリテラル形式の setup.py メタデータを静的に読み取れるようになりました。
  • Artifact Appendix のアクセスノートをさらに補完:rrdoctor appendix は同じローカルメタデータ推論を再利用し、旧形式の setup.py/setup.cfg プロジェクトのリポジトリ URL とバージョンをあらかじめ入力するようになりました。
  • L2 環境チェックの現実性を向上:rrdoctor verify --run は、requirements/base.txt や requirements/main.txt など一般的なネストされた Python 要件ファイルと .yaml 形式の Conda 環境ファイルを解決するようになり、こうしたリポジトリのレイアウトをスキップしなくなりました。
  • ノートブックのシークレットチェックでノイズを低減:RRD063 は RRD090 と同じく、テスト/フィクスチャ内の汎用的な偽トークンを抑制するようになりました。その一方で、単独のプロバイダー形式のキーは引き続き検出します。

0.2.19 の新機能

  • 実験エントリーポイント検出でノイズを低減:RRD050 は、t5x/train.py などパッケージレベルの研究用バイナリ、ドキュメントに記載された python3 ${T5X_DIR}/t5x/train.py コマンド、および graphcast_demo.ipynb など、明確な名前のデモ/例/再現用ノートブックを備えたノートブック主体の成果物を認識するようになりました。
  • 初回実行時のコーパスエビデンスを拡充:重点レビューのノートが、シードコーパスの60リポジトリ中32件を対象とするようになりました。最新の60リポジトリの静的コーパススキャンでは、期待される不検出のリグレッションは0件で、t5x と GraphCast は引き続きエントリーポイントのリグレッションゲートになっています。

0.2.18 の新機能

  • 依存関係チェックでノイズを低減:RRD034 はソーステキストを正規表現で照合する代わりに、Python AST のインポートを解析するようになりました。そのため、コメント、docstring、散文形式の例が、不足しているパッケージとして検出されなくなりました。
  • ランタイムに重点を置いた依存関係シグナル:依存関係の不足を報告する前に、ドキュメント、テスト、ベンチマーク、ベンダーコード、メンテナー用ツール、conftest.py、ビルドシステムの要件、ローカルの兄弟モジュールを除外します。
  • コーパスのレビューエビデンスを拡充:重点レビューのノートが、依存関係シグナルのノイズを調べた scikit-learn、Astropy、scvi-tools、DINOv2 を含む、シードコーパスの60リポジトリ中30件を対象とするようになりました。
  • 現行のインストール方法:PyPI、GitHub Action の例、デモ用の要件、引用メタデータ、セルフスキャンレポートを、このリリースに合わせました。

0.2.15 の新機能

  • 検証エビデンスをより明確に:rrdoctor verify のレポートでは、ゲートの結果、失敗のしきい値、タイムアウト、信頼境界、再実行コマンド、L3 動的コマンドの出典を先頭に表示するようになりました。
  • Artifact Appendix のひな形を強化:rrdoctor appendix では、利用可能な場合、ローカルの README/プロジェクトメタデータ、依存関係マニフェスト、データ/結果のドキュメント、設定ファイル、検出されたエントリーポイントのコマンドがあらかじめ入力されるようになりました。
  • 生成されるデータのメモをより有用に:rrdoctor fix --write で DATA.md のひな形を作成する際に、候補となるデータセットの URL、DOI、README に記載されたデータコマンド、ローカルのデータスクリプトが引き継がれるようになりました。
  • メンテナー向けリリースゲート:python scripts/check.py と python scripts/check_public_readiness.py により、リリース、JOSS、Artifact Evaluation、一般公開に向けた準備状況を、クロスプラットフォームでローカルに確認できます。

0.2.14 の新機能

  • AE エビデンス一式をワンコマンドで作成:rrdoctor prepare で、静的レポート、エージェントの修正計画、Artifact Appendix、検証の段階的手順を、期限時の引き継ぎ用として 1 つのローカルディレクトリに書き出します。
  • CI が AE エビデンス一式をアップロード:GitHub Action で prepare: "true" と prepare-output が使えるようになり、プルリクエストとリリースゲートで、レビュアー向けの同じパケットをアップロードできます。
  • 実行パスを固定して検証:verify --command "..."、Action の verify-command 入力、MCP の verify ツールを使うと、メンテナーは公式クイックスタートコマンドとタイムアウトを L3 ゲートとして固定できます。
  • 初回実行時のノイズを低減:MAE スタイルのルート main_*.py スクリプト、AlphaFold スタイルの random_seed= の受け渡し、テストファイル内の乱数、プレースホルダーの絶対パスを、より慎重に扱うようになりました。

0.2.13 の新機能

  • スキャンレポートから AE ワークフローへ誘導:Markdown レポートとエージェントの修正計画に、rrdoctor plan、rrdoctor appendix、静的な rrdoctor verify、信頼できる場合のみ実行する動的な verify --run の次の手順コマンドが含まれるようになりました。
  • 自動修正のひな形を強化:生成される AGENTS.md ファイルに、スキャン → 計画 → ベースライン検証のループが含まれるようになりました。また、生成される結果の来歴メモには、ローカルリポジトリのコンテキスト、現在の結果ファイル、構造化された結果一覧表が含まれるようになりました。
  • 導入資料を改善:公開ドキュメントに、フィードバック/キャリブレーションの手順と、任意の提出前文面および CI の例を含む Artifact Evaluation 委員長向けガイドが追加されました。

0.2.12 の新機能

  • 信頼できる動的 Action ゲート:GitHub Action の利用者は verify-run: "true" と verify-fail-on: error を設定できるようになりました。これにより、検証レポートをアップロードしながら、信頼できる動的検証で CI をブロックできます。
  • エージェント配布用テンプレート:リポジトリの Copilot 指示、Agent Skill テンプレート、Cursor プロジェクトルールにより、決定的なスキャン → 計画 → 検証のループをコーディングエージェントのワークフロー間でコピーできるようになりました。
  • エビデンスの表現をより厳密に:コーパスと JOSS のドラフトで、重点的なレビューのメモとリポジトリ全体の手動監査を区別するようになりました。

0.2.11 の新機能

  • 初回実行時の信頼性を調整:README のインストール/実行コマンド、初期値を設定したローカル RNG、PyTorch のパラメーター初期化、UUID 風の識別子、従来型の ML リポジトリで誤検知が減るようになりました。
  • 実際に機能する動的ゲート:rrdoctor verify --run --fail-on error は、依存関係の解決または検出された実行パスが失敗するかブロックされた場合に、ゼロ以外の終了コードを返すようになりました。
  • キャリブレーションのエビデンスを拡充:BERT、CLIP、improved-diffusion、MAE、AlphaFold の追加確認と、修正済みのノイズの多い検出結果が存在しないことを確認するチェックを含む、重点的なレビューのメモ 22 件がコミットされました。

0.2.10 の新機能

  • コーパスのキャリブレーションの信頼性向上:公開評価コーパスの実行ツールは、git clone がタイムアウトした場合に GitHub アーカイブへフォールバックするようになり、初回実行時の信頼性チェックが不安定な通信に左右されにくくなりました。
  • メンテナー向け自動化の改善:ファーストパーティーのワークフローとドキュメントの例で、Node 24 に対応する最新の GitHub Actions リリースを使用するようになりました。
  • 診断の精度向上:rrdoctor doctor は、パッケージとインポート時の依存関係が実際に読み込まれた場合に限り、オプションの MCP 統合の利用可否を報告するようになりました。

0.2.9 の新機能

  • 初回実行時の CLI 動作を改善:rrdoctor --version はインストール済みパッケージのバージョンを報告するようになり、引数なしで rrdoctor を実行するとルートのヘルプページが正常に表示されるようになりました。

0.2.8 の新機能

  • README に記載された実行経路の認識を改善:python -m package.train ... のように README に記載されたコマンドが、ローカルリポジトリのモジュールに対応する場合、実験のエントリーポイントとして認識されるようになりました。
  • ML ランチャーの動的検証を強化:ローカルの Python エントリーポイントを含む python -m torch.distributed.run train.py ... のようなモジュールランナーコマンドを、rrdoctor verify が認識するようになりました。

0.2.7 の新機能

  • 引用情報のひな形を改善:rrdoctor fix --write は、構造化された PEP 621 および Poetry のメタデータを読み取り、複数の著者を保持し、SSH の git リモートを正規化し、CITATION.cff の生成時に git worktree の origin URL を処理するようになりました。
  • 依存関係チェックのノイズを低減:RRD034 が PEP 621 の環境マーカーと Poetry の依存関係グループを認識するようになり、未宣言インポートの誤検知が減りました。

0.2.6 の新機能

  • シークレットチェックのノイズを低減:Rcpp の Generator token マーカーと、公開されている pkgdown の docsearch.api_key 検索設定では RRD090 が発生しなくなりました。一方、一般的な認証情報らしき API キーは引き続き検出されます。
  • コーパススキャンの信頼性向上:評価ランナーは、git clone の通信が不安定な場合に GitHub アーカイブのダウンロードへフォールバックするようになりました。対象リポジトリのインストールや実行は行いません。
  • 手動キャリブレーションの証拠を拡充:現在の公開コーパスのスナップショットでは、静的スキャンの成功が 60/60 件、読み込まれた重点レビュー記録が 22 件、予期しない不在の回帰が 0 件となっています。

0.2.5 の新機能

  • モデルリリースのエントリーポイント:README に記載された python scripts/*.py/python tools/*.py コマンドと、pyproject で宣言された CLI コマンドが実験のエントリーポイントとして認識されるようになり、Segment Anything や Whisper などのリポジトリで初回実行時の誤検知が減りました。
  • ML ツールのエントリーポイント:一般的な tools/train.py、tools/test.py および関連する ML フレームワークのコマンドが RRD050 の対象となるようになりました。
  • シード用ヘルパーのひな形:rrdoctor fix --write は、プロジェクトのコードを上書きせずに、RRD052 用の再現可能な set_global_seed(seed) ヘルパーのひな形を作成できます。
  • コーパスに基づく回帰ゲート:エントリーポイントの修正は、重点レビュー記録と公開評価コーパス内の expected_absent チェックによって裏付けられています。

0.2.4 の新機能

  • 初回実行時の信頼性を改善:ルートレベルの train.py/main.py/run.py、Snakemake/Nextflow のワークフロー、README の実行コマンドが実験のエントリーポイントとして認識されるようになりました。
  • セキュリティチェックのノイズを低減:ノートブックとリポジトリのシークレット検出では、ブロッキングエラーを発生させる前に、認証情報らしき値の確度が高いことを要求するようになりました。
  • README チェックをより実情に即したものに改善:具体的な学習、評価、ベンチマーク、ワークフロー、または再現用のコマンドが、結果を再現するための証拠として認識されるようになりました。
  • コーパスに基づくルールのキャリブレーション:公開評価コーパスで、誤検知と見逃しのレビュー記録、予期しない不在の回帰ゲート、ルールの集計頻度を追跡するようになりました。
  • リリースの整備:引用ガイダンスの検出で、README の「Citing」セクション、BibTeX、DOI リンク、「please cite」の文言が認識されるようになりました。また、ローカルの git タグが決定論的なバージョン情報として扱われます。
  • リリースの仕上げ:デモ GIF を生成し、課題へのアクセスを公開し、コミット済みのセルフスキャンレポートが 100/100 になりました。

0.2.0 の新機能

  • rrdoctor fix は、一般的な不足項目(ガバナンス文書、引用メタデータ、データ/結果の来歴情報、シード用ヘルパーの足場、変更履歴、無視対象のエントリー)を、決定論的かつ冪等に自動修正します。既存の内容を上書きすることはありません。
  • rrdoctor plan は、任意のコーディングエージェントに渡せる、ツールに依存しない修正計画を出力します。各タスクには、検証に使う決定論的なチェックが明記されます。
  • ベースラインによるゲーティング:rrdoctor scan --baseline report.json --fail-on-new error は、新たに発生した検出事項だけを対象に失敗するため、大規模なリポジトリでも監査を段階的に導入できます。
  • rrdoctor badge は、Shields.io エンドポイントまたは SVG 形式のアーティファクト準備状況バッジを出力します。
  • アーティファクト準備状況ラベルは、検出事項を AE 形式のレベル(Available、Functional、Reproduced-ready)に対応付けます。数値スコアは、補助的なトリアージ指標として引き続き利用できます。
  • PR 自動化を標準搭載:Action は固定表示の PR コメントを投稿し、ジョブのサマリーを書き込み、修正計画を添付できます。組み込みの GITHUB_TOKEN のみを使用します。
  • 新しいルールには、バージョンが固定されていない依存関係、コミット済みのノートブックチェックポイント、pre-commit 設定、エージェントと人間のコントリビューター向けタスクガイドである AGENTS.md が含まれます。

クイックスタート

rrdoctor scan .                   # deterministic audit (Markdown report)
rrdoctor fix . --write            # apply safe scaffolding for easy gaps
rrdoctor plan . --output plan.md  # tool-agnostic work order for the rest
rrdoctor scan . --format json --output baseline.json --fail-on none
rrdoctor scan . --baseline baseline.json --fail-on-new error  # gate regressions

より厳格なゲートとレポートファイル:

rrdoctor scan . --profile strict --fail-on warning --output rrdoctor-report.md

機械可読形式とエージェント向け出力:

rrdoctor scan . --format sarif --output rrdoctor.sarif --fail-on none
rrdoctor scan . --format agent --output fix-plan.md

投稿締切前:

rrdoctor prepare . --profile acm --out-dir rrdoctor-prep          # one local AE packet
rrdoctor appendix . --profile acm --output ARTIFACT_APPENDIX.md   # appendix + checklist mapping
rrdoctor verify . --profile neurips                               # L1/L2/L3 ladder (static)
rrdoctor verify . --run --timeout 600 --fail-on error              # build + run gate (trusted repos)
rrdoctor verify . --command "python train.py config/default.py" --run --timeout 600

投稿プロファイル:acm、neurips、icml、ml-paper、fair4rs、joss(汎用の minimal/standard/strict/ml ティアに加えて利用できます)。静的な依存関係チェックとランタイムチェックは、Python と JavaScript だけでなく、R、Julia、Rust/Cargo、CMake ベースのビルド、コンテナ、Nix 環境にも対応しています。

監査 → 修正 → 検証のループ

決定論的なチェッカーは再現性が高く、信頼できますが、文章を書いたり意図を判断したりすることはできません。コーディングエージェントは優れた編集能力を持ちますが、正確な仕様と客観的な完了条件が必要です。Research Repo Doctor は、その両方を提供します。

  1. 監査:rrdoctor scan は決定論的な検出結果を生成します。
  2. 簡単な項目を修正:rrdoctor fix --write は、ガバナンス文書、引用メタデータ、来歴情報のメモ、シード用ヘルパー、変更履歴、無視対象のエントリーをひな形として作成します(冪等で、既存の内容を上書きすることはありません)。
  3. 残りの項目を計画:rrdoctor plan は、ツールに依存しない作業指示書を出力します。任意のコーディングエージェントに貼り付けたり、イシューに添付したり、手作業で進めたりできます。
  4. 検証:ベースラインと照合して監査を再実行します。検証は決定論的で、キーを必要としないため、どのような方法で行われた変更にも、公正な評価者として機能します。

docs/agent-workflows.md と docs/autofix.md を参照してください。

GitHub Action

多くのリポジトリに 1 つのワークフローを追加するだけで、プルリクエストやプッシュ時に一貫した再現性レポートを取得できます。この Action に API キーは必要ありません。

name: Reproducibility audit

on:
  pull_request:

permissions:
  contents: read
  pull-requests: write

jobs:
  rrdoctor:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: Tom409114/[email protected]
        with:
          profile: standard
          fail-on: none
          comment-pr: "true"     # sticky PR comment with the report
          step-summary: "true"   # report in the job summary
          plan: "true"           # attach an agent-ready fix plan
          appendix: "true"       # attach an Artifact Evaluation appendix
          verify: "true"         # attach the L1/L2/L3 verification ladder
          prepare: "true"        # upload a complete AE prep packet directory
          # For trusted repos, add verify-run: "true" and verify-fail-on: error

新しい検出事項によるゲーティングと、コミット済みのベースラインについては、docs/pull-request-automation.md を参照してください。

出力例

Research Repo Doctor Summary
Profile: standard
Readiness: Functional
Score: 64/100
Errors: 0
Warnings: 5
Rules evaluated: 32

How to fix first:
- RRD030 No dependency manifest found: Add pyproject.toml, requirements.txt, or another manifest.
- RRD040 Data availability documentation missing: Add DATA.md, docs/data.md, or a README section.

実例は examples/reports/ にあります。修正計画 とセルフスキャンレポートも含まれています。

コマンド

コマンド用途
rrdoctor scan決定論的な監査を実行します。--baseline と --fail-on-new をサポートしています。
rrdoctor fixよくある不足を補う安全で冪等な足場を適用します(適用するには --write を指定します)。
rrdoctor planツールに依存しない修正計画を出力します(Markdown または JSON)。
rrdoctor prepareローカルの AE 準備パケット(レポート、計画、付録、検証)を書き出します。
rrdoctor verify再現性の段階的評価 L1/L2/L3 を実行します。--command は公式クイックスタートを固定し、--run は実際にビルドして実行します。
rrdoctor appendixACM Artifact Appendix と ACM/NeurIPS チェックリストの対応表を生成します。
rrdoctor badgeアーティファクトの準備状況を示すバッジを出力します(Shields.io エンドポイントまたは SVG)。
rrdoctor mcpMCP サーバーを実行します(scan/verify/appendix をエージェントツールとして利用)。
rrdoctor initドキュメント付きの .rrdoctor.yml を書き出します。
rrdoctor list-rules登録済みのルールをすべて一覧表示します。
rrdoctor explain RRD0xxルールとその修正方法を説明します。
rrdoctor doctor自己診断を実行します。
rrdoctor --versionインストール済みパッケージのバージョンを表示します。

ルールのカテゴリ

ドキュメント、環境、データ、実験、ノートブック、引用、ガバナンス、テスト、 CI、セキュリティ、リリース、メタデータです。全一覧は docs/checks.md にあり、 自動修正可能なルールには印が付いています。

再現性に関する方針

Research Repo Doctor は、論文の再現性を証明するものではありません。再現を試みられるようにするためのリリース管理を確認します。レポートはヒューリスティックに基づいており、メンテナーが確認する必要があります。生成される修正は出発点であり、リリース前に埋める必要があるプレースホルダーが含まれています。

基本方針

まずは決定論的に。スキャナーは理解しやすく、テスト可能で、ネットワークアクセスなしでも役立ちます。コアスキャナーにネットワーク呼び出しを追加したり、ホスト型サービスの API キーを必須にしたり、導入状況の指標を捏造したりすることはありません。AI は出力に基づいて行動するために利用するものであり、監査自体の依存関係ではなく、特定のツールに縛られるものでもありません。

設定

version: 1
profile: standard
paths:
  exclude: [".git", ".venv", "node_modules", "__pycache__"]
thresholds:
  large_file_mb: 50
  large_notebook_output_kb: 1024
rules:
  RRD032:
    enabled: false
  RRD042:
    severity: warning
fail_on: error

docs/configuration.md を参照してください。

貢献

貢献を歓迎します。CONTRIBUTING.md と AGENTS.md から始めて、ルールのリクエストまたは誤検知の報告を作成し、可能であれば最小限のフィクスチャを添えてください。

セキュリティ

認証情報が漏えいしている疑いがある場合は、公開 Issue で報告しないでください。SECURITY.md を参照してください。

引用

同梱の CITATION.cff を使用するか、このリリースのバージョン DOI を引用してください:10.5281/zenodo.21289885。 安定版のコンセプト DOI、 10.5281/zenodo.21045161 は、 最新のアーカイブ済みリリースを参照し、完全なバージョン系列を保持します。

JOSS 形式の論文草稿を確認用として paper/ に用意しています。これは投稿済み原稿ではなく、未検証の導入実績に関する主張を意図的に避けています。 正式な投稿メタデータは、事実である場合にのみ更新されます。

@software{research_repo_doctor_2026,
  title = {Research Repo Doctor},
  author = {{Research Repo Doctor Maintainers}},
  version = {0.2.24},
  year = {2026},
  doi = {10.5281/zenodo.21289885},
  url = {https://github.com/Tom409114/research-repo-doctor}
}

ライセンス

MIT。LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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