mcpField
O
openscite

openscite

github.com/mo7yw4ng生産性3146 回インストール8 週間前に更新
リポジトリ

openscite について

opensciteは、ユーザーが提供した学術PDFを引用する論文を分析する、再開可能なワークフローです。OpenAlexをキーなしで利用し、証拠確認を経て指定言語のレポートを作成します。

主な機能

  1. 01再開可能な引用分析ワークフロー
  2. 02提供PDFと引用論文の照合
  3. 03主張ごとの引用姿勢ラベル付け
  4. 04網羅状況付き証拠レポート

活用シーン

  1. 01対象論文を引用する研究の確認
  2. 02手動トリアージ後の分析再開
  3. 03全文を得られない場合の証拠報告

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mo7yw4ng/openscite --skill openscite

インストール後、Claude Code で/opensciteを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
README.md
README.zh-TW.md
.gitignore
agents/
openai.yaml
references/
labeling.md
fulltext-processing.md
providers.md
output-schema.md
ranking.md
user-interaction.md
scripts/
openscite.py
__init__.py
render_report.py
documents.py
openscite_core.py
tests/
test_openscite_core.py

詳細

OpenScite

ユーザーが提供した 1 件の学術 PDF を引用している論文を分析します。アップロードされた PDF は対象であり、たどるべき参考文献の情報源ではありません。ユーザーのファイル名を保持し、タイトルと引用箇所は原語のままにして、レポートはユーザーの言語で作成してください。キー不要の OpenAlex を使用します。

再開可能なランナーを使用する

このスキルのディレクトリを <skill-dir> として解決します。コマンドはユーザーのワークスペースから実行し、デフォルトの成果物がそこに作成されるようにしてください。代替のパイプラインスクリプトを生成しないでください。

python "<skill-dir>/scripts/openscite.py" prepare "<target.pdf>" --language <zh-TW|en> [--n N] [--run-dir <dir>]

prepare を最初の PDF 操作にしてください。これは最新のローカル Anydoc リリースを実行し、出力をキャッシュし、任意の inbox ファイル名を DOI/タイトルで照合し、その成果物が抽出失敗を記録している場合にのみフォールバックします。正確なページロケーターが重要な場合にのみ --require-page-aware を追加してください。これは意図的にページ対応フォールバックを使用します。--rule-triage は診断にのみ使用してください。

再試行のたびに、同じターゲット、実行ディレクトリ、N、モード、言語を再利用してください。返されたステータスに従います:

  • needs_user_selection: 必要であれば最初に target-claims.json を作成し、次に references/user-interaction.md を読み、ショートリストのサイズのみを尋ね、--n N を付けて再実行します。20 を提案してください。既存の正の N がある場合は尋ねずに再利用してください。
  • needs_target_claims: target-analysis-packet.json を読み、対象論文から個別の主張を抽出し、JSON 配列を target-claims.json に書き込み、再実行します。各項目には claim_id、claim、source を含める必要があります。裏付けがある場合は、母集団、介入/曝露、アウトカム、方向、ページを含めてください。この内部分析についてユーザーに尋ねないでください。
  • needs_abstract_triage: references/ranking.md を読み、triage-context.json を一度ロードし、triage-pending.jsonl のみを分析します。サブエージェントが利用可能な場合は、最大 4 つの重複しないバッチを 1 回の並列ウェーブでディスパッチしてください。結果を各 ID/ハッシュを保持したまま triage-results.jsonl に追記し、その後 prepare を再実行します。
  • needs_analysis: references/labeling.md を読み、analysis-context.json を一度ロードし、analysis-pending.jsonl のみを分析します。各論文グループを 1 つのワーカーに維持してください。サブエージェントが利用可能な場合は、最大 4 つの論文グループバッチを 1 回の並列ウェーブでディスパッチしてください。ステートメントごとに 1 つの結果を analysis-results.jsonl に追記し、ID/ハッシュを保持して label_source: model を設定し、次を実行します:
python "<skill-dir>/scripts/openscite.py" finalize --run-dir "<run-dir>"
  • needs_user_files: references/user-interaction.md を読みます。対話型ブラウザー機能が利用可能な場合は、fulltext-requests.md に記載された許可済み PDF をダウンロードするために、ユーザーの現在のブラウザーセッション (学術機関/VPN アクセスを含む) を使用するかどうかを一度尋ねてください。オプトインした場合は、範囲を限定した並列ブラウザー手順を使用します。そうでない場合はリンクを提示し、fulltext/inbox/ 内の添付ファイルまたはファイルを受け入れます。元のファイル名を保持し、ファイルが到着した後に同じ prepare コマンドを再実行してください。
  • partial または complete: report.md を提供し、カバレッジを簡単に述べます。partial は、利用できない全文またはバインドされていないコンテキストが明示的に unknown である場合に有効なエビデンスレポートです。

再試行されるのは保留中の行のみです。有効な結果行は再利用可能なままです。finalize が needs_analysis を返した場合は、再生成された保留中ファイルを処理し、それを再実行してください。

fulltext-manifest.json に曖昧な一致が含まれている場合は、references/user-interaction.md を読み、マッピングについて 1 つ質問してください。確認されたマッピングを file-mappings.json に保存します:

{"mappings":[{"file_name":"original-name.pdf","citing_work_id":"W123"}]}

その後 prepare を再実行します。サブエージェントはレコードを親に返し、ユーザーに尋ねたり共有成果物を編集したりしません。

エビデンスとアクセスのルール

プロバイダー/OA の問題については references/providers.md を、解析または照合の失敗については references/fulltext-processing.md を、成果物を拡張する場合にのみ references/output-schema.md を読んでください。

ユーザーが提供したファイルと正規の OA URL を使用してください。PDF マジックを検証してください。ホスト型 OCR を使用する前に明示的な同意を得てください。診断とランキングの内部情報を report.md に含めないでください。

スタンスは対象に紐づく引用箇所ごとに割り当ててください。参考文献のみ/トピックのみのヒットおよび欠落したエビデンスは unknown のままにします。ルールの出力がモデルラベルになることはありません。

完了チェック

run.json、target.json、selection.json、citing-works.json、citations.json、fulltext-requests.md、report.md を必須とします。unknown 以外のすべての記述には、正確なコンテキスト、不変ハッシュ、信頼度、理由、および label_source: model|human が必要です。レポートでは、まず固有の論文を、次にパッセージを、ユーザーの言語で、デバッグ用メタデータを含めずに報告してください。

コメント