Research CI スタートガイド - ヘルプとサポート

Research CI スタートガイド

Research CI を初めて使う研究者向けの説明と、使い始めるまでに必要な設定の手順です。 上から順に進めれば、最後に自分の Claude から最初の run を回せる状態になります。

1. Research CI とは

ソフトウェアの CI がコードの変更を自動でテストするように、研究の「問い」をゲートにかけて検査する仕組みです。 あなたが書いた未発表の研究状態(Research Seed)を出発点に、モデルが問いの候補を作り、 Novelty Gate で「本当に新しいか・既知の系ではないか」を判定し、生き残った問いだけを最小の検証(Witness)まで進めます。

3つのソースと役割

run の前に、あなた自身の3つのソースを読みます。ソースが読めなかった場合は「読めなかった」と明示され、 空の結果を「新規性の証拠」として扱うことはありません。

ソース役割
📚 Zotero何を「新しい」と呼んではならないか(先行研究の発見用インデックス)
🗒 Notion何が既知で何が未解決か。既存の問いと、kill 済みの問いの記録
💻 GitHub実際に何を計算・証明・反証したか(seed と、seed が指すファイル・直近 commit)

だれが何をするか

構成要素役割
あなたの ClaudeMCP 経由で Research CI のツールを呼び、問いを作り、判定を提出する「運転手」
Research CI Core三源を読み、ルール付きのプロンプトを渡す。結果を Notion の Research Questions DB に記録する
Research CI Gateway本人確認、各サービスへの接続、Preflight、そして FAIL policy の執行(モデル側からリセットできない)
zotero-user-<あなたのID>あなた専用の Zotero 接続サービス。API key はここにだけ置かれる

2. 開発版(β0)の前提

  • 招待制です。運営者から user_id と招待リンクを受け取った方のみ使えます。
  • 対象分野は domain: quantum(量子研究)のみ。
  • seed の公開範囲は visibility: private のみ。breedable / open は受理されません。
  • Zotero API key の登録はご本人に行っていただきます(手順 4)。key を運営者に渡す必要はありません。
  • 仕様は変わることがあります。動作がこのページと違う場合は運営者に知らせてください。

3. セットアップ

本人 はあなたが行う作業、運営者 は運営者側で行う作業です。

手順 0 — 運営者から受け取るもの 運営者

  • あなたの user_id
  • GitHub 接続用と Notion 接続用の招待リンク(有効期限 7 日。期限切れなら再発行を依頼)
  • Zotero 用サービス zotero-user-<user_id> がある Railway project への招待
  • (手順 5 の後)Research CI トークン rci_... と MCP の URL

手順 1 — Research Seed を書く 本人

GitHub に seed 用の private repository を用意し、ルートに seed.md を置きます。 これは論文の草稿ではなく、あなたの現在の研究状態です。問い生成は「手持ちの結果の中の異常」から出発するので、 結果・計算・失敗例のセクションが最も効きます。

---
seed_id: my-research-seed
title: A one-line statement of what this seed is about
domain: quantum
visibility: private
owner: your-github-handle
---

## Problem
## Current claim / hypothesis
## Known results
## Assumptions
## Open questions
## Existing calculations
## Relevant literature
## Failure cases / counterexamples
区分セクション
必須Problem / Current claim / Assumptions / Open questions — 欠けると REJECTED
内部証拠Known results / Existing calculations / Failure cases の少なくとも1つ — 全部空だと INCOMPLETE
推奨Relevant literature — Novelty Gate が「新しいと呼べないもの」の出発点にする
  • TODO / TBD / HTML コメントだけのセクションは空とみなされます。
  • Existing calculations には repository 内のパスを書いてください。CI はそのファイルを実際に読みます。存在しないパスは報告され、その計算は確立済みとして扱われません。
  • 見出しのタイプミスは警告として報告されます(黙って捨てられることはありません)。

Core が手元にある場合は push 前に検証できます:

research-ci seed validate ./seed.md   # READY=0 / INCOMPLETE=1 / REJECTED=2

手順 2 — GitHub を接続する 本人

  1. GitHub 用の招待リンクを開き、Research CI GitHub App をインストールします。
  2. アクセスを許可する repository に、seed repository と、結果を書き戻す CI 書き込み先(同じ repo でも可)を含めます。
  3. 完了したら、どの repo を seed / 書き込み先にするかを運営者に伝えてください 運営者が bind。

Personal Access Token は預かりません。Gateway は App から1時間で失効するトークンをその都度発行します。 結果は常に research-ci/<seed>-<run> ブランチの Pull Request として届き、main へ直接 push されることはありません。

手順 3 — Notion を接続する 本人

  1. Notion 用の招待リンクを開き、ワークスペースへのアクセスを許可します。
  2. Research CI に読ませたいページを共有します(許可画面で選択、または各ページの ••• → 接続(Connections) → Research CI)。 最低1ページの共有が必要です。
  3. 問いの記録先 Research Questions データベースは自動で探索・作成されます。
既存の DB を使う場合: タイトルを Research Questions にしてください。 同名の DB が複数あると、どれを使うかを CI は勝手に選ばず、確認を求めます。 また Status と Lifecycle は Select 型である必要があります (Notion が既定で提案する組み込みの「Status 型」では読み込みが失敗します)。新規作成に任せるのが確実です。

手順 4 — Zotero API key を登録する 本人(開発版)

開発版では、Zotero の資格情報をご本人が自分専用のサービス zotero-user-<user_id> に登録します。 key は Gateway にも運営者にも渡りません。

4-1. Zotero で key を発行する

  1. zotero.org/settings/keys を開きます(ログインが必要)。
  2. ページ上部の 「Your user ID for use in API calls is ○○○○」 の数字を控えます。これが ZOTERO_LIBRARY_ID です(ユーザー名ではありません)。
  3. Create new private key を押し、次のように設定します。
    • Key Name: 例 research-ci
    • Personal Library: Allow library access に✔(Allow notes access は任意)
    • Allow write access はオフのまま(Research CI は読み取りのみ)
    • グループライブラリを使う場合のみ、該当グループに Read Only を付与
  4. Save Key を押すと key が一度だけ表示されます。次の手順ですぐ使います。

4-2. Railway のサービスに登録する

  1. 招待された Railway project を開き、サービス zotero-user-<あなたの user_id> を選びます。他の人のサービスは開かないでください。
  2. Variables タブで次の3つを設定します。
変数値
ZOTERO_API_KEY4-1 で発行した key
ZOTERO_LIBRARY_ID個人ライブラリ: 4-1 で控えた user ID(数字)
グループ: zotero.org/groups/<数字>/... の数字
ZOTERO_LIBRARY_TYPEuser(個人ライブラリ、既定)または group
  1. 変更を反映(Deploy / Apply changes)します。
  2. Deployments → View logs に Zotero credential check: OK と出れば成功です。
  3. 運営者に「登録した」とだけ伝えてください 運営者がサービスを bind。key の値は伝えないでください。
触らないもの: EXTERNAL_URL / PORT / HEALTH_PORT などの他の変数は変更しないでください。 また、このサービスに public domain を追加しないでください(private network からのみ到達する設計です)。
ログの表示意味と対処
HTTP 403 / 404key・ID・TYPE のどれかが違います。ID がユーザー名になっていないか、グループなのに user のままでないかを確認
ZOTERO_API_KEY is required変数名の綴り違い、または値が空です
degraded起動時に Zotero API に届かず key を検証できていません。再デプロイしてください。この状態では Preflight は通りません

手順 5 — Preflight で READY を確認する 運営者 / 本人

5項目すべてが ok のときだけ STATUS = READY になります。接続後は Claude から research_ci_preflight でも確認できます。

チェック失敗したときに見る所
github_readableGitHub App がインストールされ、repo が許可されているか(手順 2)
notion_readableNotion を認可し、1ページ以上共有しているか(手順 3)
zotero_readableログに credential check: OK が出ているか(手順 4)
project_binding_validseed repo が App の許可範囲に入っているか
ci_write_target_valid書き込み先 repo に push 権限があるか

手順 6 — Claude に Research CI を接続する 本人

  1. 運営者から Research CI トークン(rci_ で始まる)を受け取ります。表示は一度きりなので、パスワードマネージャーに保存してください。有効期限は既定で 90 日です。
  2. Claude の 設定 → コネクタ → カスタムコネクタを追加 で、運営者から案内された MCP の URL(https://…/mcp の形)を登録します。
  3. 接続すると Connect Research CI という画面が開くので、rci_... トークンを貼って Connect を押します。
  4. ツール一覧に research_ci_preflight などが表示されれば完了です。

このトークンはあなた自身の user_id にしか届きません。他の人の研究状態は読めませんし、他の人からあなたの状態も読めません。

4. 最初の run

Claude に例えば次のように頼みます。

Research CI で preflight を確認してから、私の seed の context を読み、
run を開いて問いの候補を作ってください。各候補は gate に提出し、
結果は Research Questions DB に記録してください。

Claude は通常、次の順にツールを呼びます。

ツール内容
research_ci_preflight接続が READY か確認
research_ci_get_contextseed・三源・Gate 0〜2 のルールを取得。候補はここからだけ作る
research_ci_open_runrun を開始し、使える予算を受け取る
research_ci_submit_gate判定を1件ずつ記録。候補を kill できるのはこれだけ
research_ci_record_question生き残った候補も kill された候補も Notion に記録。既定は dry run で、commit=true のときだけ実際に行が作られる
research_ci_killed_questionsこの seed でこれまでに kill された問いの一覧(run をまたぐ)

Notion の行は Target Journal = Exploratory、Security = Confidential など保守的な値で作られ、 Last Human Review は空のままです。内容を確認するのはあなたです。

5. 強制されるルール

以下は「お願い」ではなく Gateway 側で執行されます。モデルが言い換えても、新しい run を開いても回避できません。

判定意味
PASS必要条件を満たした
PASS WITH NARROWINGclaim を狭めれば生きる
HOLD有望だが証明・計算・確認が未完了(未検証の計算を PASS と書かないための判定)
FAIL不成立。理由(fail_kind)で扱いが変わる
  • 終了する FAIL: prior_art / natural_corollary / reformulation / internal_duplication。その候補は死に、同じ seed では以後の run でも復活しません。
  • 1回だけ救済される FAIL: robustness / scope。claim の narrowing が1回だけ許されます。
  • 致命的な FAIL が2回起きると run は終了します。fail_kind の無い FAIL は致命扱いです。
  • kill された問いを言い換えて再提出すると拒否されます。応答には一致した問いと kill 理由が含まれます。押し切りを3回続けると run が閉じます。
  • prior_art で kill するには外部一次ソースの証拠が必要です(DOI / arXiv / 出版社ページを実際に読み、先行研究の具体的な主張と衝突の理由を書く)。 Zotero にある・キーワードが一致した、だけでは kill できず、その場合候補は生き残ります。

※ Zotero は「発見のための索引」であって新規性の権威ではありません。 ライブラリに無いことは新しいことの証拠ではなく、ライブラリにあることは先行研究が候補を沈める証拠ではありません。

6. 秘密情報の扱い

資格情報どこにあるか
GitHubPAT は預かりません。App から1時間有効のトークンを都度発行
NotionOAuth トークンを Gateway 内で暗号化して保管。Core やモデルには渡りません
Zotero API keyあなたの zotero-user-<id> の Railway Variables だけ
rci_ トークンあなたの手元だけ。Gateway はハッシュしか持たず、再表示できません
貼らない場所: Zotero API key と rci_ トークンを、Notion・GitHub(seed や issue を含む)・Slack・Claude との会話に貼らないでください。 漏れた可能性がある場合は、Zotero key は zotero.org/settings/keys で削除して再発行し、 rci_ トークンは運営者に失効を依頼してください。

7. 困ったとき

症状対処
招待リンクが開けない有効期限(7日)切れです。運営者に再発行を依頼。接続済みの項目を再度つなぐと上書きされる点に注意
seed が INCOMPLETEKnown results / Existing calculations / Failure cases のどれかを実際の内容で埋める
seed が REJECTED必須セクションの欠落、または domain / visibility が β0 の範囲外
Notion の DB を作れないResearch CI に共有したページが無い、または候補ページが複数ある。親にしたいページを運営者に伝える
Notion に行が増えないrecord_question が dry run のまま。commit=true で記録するよう Claude に頼む
コネクタ接続で弾かれるrci_ トークンの期限切れ・失効・貼り間違い。運営者に再発行を依頼
「読めなかったソース」と出る該当サービスの接続を確認し、Preflight をやり直す。この状態の run では確信度が低く扱われます

解決しない場合は、秘密情報を含めずに症状・時刻・run ID を添えて運営者に連絡してください。

準備チェックリスト

Research CI β0(開発版)7 セクション
スタート
Research CI