mcpField
S
study-exemplars

study-exemplars

github.com/shaishavmaisuria生産性57103 回インストール4 日前に更新
リポジトリ

study-exemplars について

study-exemplarsは、対象venueの受賞論文や被引用数の多い論文を分析する、研究論文執筆向けスキルです。合法的に入手できる論文から独自の構成・文体ガイドを作り、本文は保存も転載もしません。

主な機能

  1. 01受賞論文と高被引用論文の選定
  2. 02論文構成と見せ方の分析
  3. 03venueの執筆慣習の整理
  4. 04論文ごとの分析カード作成
  5. 05実測したvenue統計のキャッシュ

活用シーン

  1. 01執筆前にvenueの論文慣習を把握
  2. 02見本論文の貢献の示し方を比較
  3. 03執筆スキル向けの文体ガイド作成

インストール

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

$npx skills add https://github.com/shaishavmaisuria/research-paper-lifecycle-skills --skill study-exemplars

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

同梱ファイル

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

references/
analysis-rubric.md
finding-exemplars.md
scripts/
build_exemplar_bundle.py
lookup_exemplar.py
polite_http.py
rank_top_cited.py

詳細

模範論文を調べる

対象の会議やジャーナルで最も評価の高い論文、つまり最優秀論文賞の受賞作や被引用数上位の論文をもとに、ユーザーが執筆時に参考にできる独自のスタイル・構成ブリーフを作成します。この対象では、受賞論文がどのようにセクションを構成し、貢献を位置づけ、評価を設計し、図表を使用しているかを示します。論文は必要に応じて法的に利用可能なオープンアクセスのソースから取得し、一時的に処理します。成果物にはメタデータと独自の分析のみを含め、論文の本文は含めません。select-venue/parse-cfp(対象の選定)と、執筆スキル(write-abstract、draft-related-work、tailor-to-venue)の間に位置するスキルです。

使用する場面

  • 「の最優秀論文はどのようなものですか?」/「受賞論文を分析してください」
  • 「の被引用数上位論文と、その構成を教えてください」
  • 「初めてに投稿します。採択された論文では、貢献をどのように位置づけ、評価をどう実施し、セクションをどう構成していますか?」
  • 執筆前に、ほかの執筆スキルが利用する会議・ジャーナルのスタイルブリーフを作成する
  • 特定のトピックに関する論文の検索(find-papers)や、内容を対象とした文献レビュー(literature-review)には使用しません。このスキルが調べるのは形式です

入力

  • 対象となる会議・ジャーナル。可能であれば、venues/conferences/<id>.yml のプロフィールを指定します(スキーマ:venues/schema.yml)。それ以外の場合は、references/finding-exemplars.md に従って別名を解決します
  • 任意:対象年(デフォルトは直近3~4回分の終了済み開催年)、模範論文の件数(デフォルトは5~8件)、ユーザーの論文の種類(研究論文/ショートペーパー/デモ)。分析対象のトラックを適切に選ぶために使用します
  • CONTACT_EMAIL 環境変数 — すべてのスクリプトで必須です(丁寧な利用者として識別するため)。未設定の場合、スクリプトは対話形式で入力を求めるか、手順を示してゼロ以外の終了コードで終了します
  • 任意:Semantic Scholar へ安定してアクセスするための S2_API_KEY 環境変数

手順

1. 対象を特定して固定する
  • 会議・ジャーナルのプロフィールがある場合は読み込みます。aliases: ブロックから aliases.s2_venue と aliases.dblp_key を取得し、ユーザーが執筆するトラック、ページ数の上限、テンプレートを確認します。
  • ユーザーが情報を前提として利用する前に、最新の cfp_url を確認し、重要な事実を再検証してください。ブリーフには書式上の規定(ページ数の上限、テンプレート、必須セクション)を記載しますが、プロフィールは古くなる可能性があります。プロフィールの verified.date が現在の CFP サイクルより前の場合は、CFP を取得し、内容を照合してから進めます。
  • プロフィールがない場合は、クエリを実行する前に、find-papers スキルの会議・ジャーナル別名テーブル、または最新の DBLP 会議・ジャーナル検索を使って別名を解決します。S2 の会議・ジャーナル名が間違っていると、論文がゼロ件でも警告なく返されます。
2. 模範論文の候補を作成する(相互補完的な2種類のリスト)

最優秀論文賞の受賞作(会議・ジャーナル独自の品質指標):

  • 受賞情報のページを最新の状態で確認します。会議・ジャーナルや SIG の受賞ページ、各年のサイトに掲載されたお知らせ、または jeffhuang.com の集約ページが候補です。情報源の一覧と検証手順については、references/finding-exemplars.md を参照してください。

  • 受賞情報はAPI では取得できません。記憶に頼って受賞作を断定しないでください。受賞に関する主張にはすべて、(a)このセッションで取得した情報源の URL と、(b)DBLP メタデータとの照合が必要です。

    python3 scripts/lookup_exemplar.py --title "Exact Title From The Award Page"
    

    いずれかが不足している場合は、その論文を除外するか、未検証であることを明記します。

被引用数上位の論文(コミュニティの品質指標):

# S2 venue string from the profile aliases — NOT the acronym
python3 scripts/rank_top_cited.py --venue "SIGSPATIAL/GIS" --year 2020-2023 --top 10
# or read the alias straight from a profile:
python3 scripts/rank_top_cited.py \
    --venue-profile venues/conferences/sigspatial-2026.yml --year 2020-2023 --top 10

1回の丁寧なリクエストで、指定した会議・ジャーナルの対象年全体を被引用数順に並べます。対象期間の終わりは2~3年前に設定します。当年の被引用数はほぼゼロで、意味のある指標にならないためです。選定上の注意点(サーベイ論文による件数のかさ上げ、影響力のある論文からの引用、DBLP との照合)については、references/finding-exemplars.md を参照してください。

論文は合計5~8件を目安にします。検証済みの受賞作を3~4件、被引用数上位の論文を3~4件選び、複数年にわたるようにしながら、ユーザーのトラックに合わせます(4ページのデモ論文を書くために、10ページの研究論文を調べないでください)。取得を始める前に、最終候補をユーザーに確認します。

3. 各論文の実例を必要に応じて取得する — 一時的に
  • 一度に大量ではなく、論文を1本ずつ扱います。fetch-paper スキル(その中の scripts/resolve_oa.py <DOI> --json)で OA 版を特定するか、ここにある両方のスクリプトが出力する OA の手がかりを使用します(S2 の openAccessPdf、arXiv HTML、2026年以降のオープンアクセス ACM 論文の場合は dl.acm.org/doi/pdf/<doi>。このホストはスクリプトによるダウンロードをブロックするため、ブラウザーで開いてください)。
  • 論文を読み、観察事項を抽出したら、ファイルを破棄します。PDF、そのテキスト、または要約をリポジトリやコミット対象のファイルに書き込んではいけません。
  • 法的に利用できる OA 版がない場合(Unpaywall の is_oa: false で、arXiv 版もない場合)は、論文をスキップし、その旨を明記します — ブリーフに「未分析(オープンなコピーなし)」として記載します。ペイウォールを回避したり、シャドーライブラリを使ったりしてはいけません。
4. 各論文を評価基準に照らして分析する

references/analysis-rubric.md に沿って進めます。評価項目は、識別情報カード、タイトル/要約のパターン、セクション構成、貢献の位置づけ、手法の提示、評価のパターン、図表の慣例、関連研究の位置づけ、再現性に関する要素、文章のミクロスタイルです。文章ではなく、事実と独自の観察事項(セクション名、件数、順序、位置づけの工夫)を記録します。引用は、正確な表現そのものが観察事項である場合に限り、各論文につき出典を明記した短い断片(25語未満)を最大1つまでとします。

各論文の件数を記録する際、測定可能な項目(ページ数、参考文献数、図の数、表の数、要約の語数、ティーザー/バッジの有無、セクションの骨格)も、小さな論文ごとの JSON に記録します。これらはステップ6で使います。

5. スタイルと構成に関するブリーフを統合する
  • まず論文間の統合を行います(実例の半数以上が採用するものをその投稿先の慣例とし、異なる場合はバリエーションとして記載します)。次に、各論文の実例カードを1枚ずつ作成します。両方のテンプレートは評価基準の末尾にあります。
  • 投稿先のプロファイルと照合します。実例が現在の CFP と矛盾する場合(例:以前の実例は8ページだが、現在の上限は10ページ)、最新の CFP を優先し、ユーザーが古いルールを模倣しないよう差分を明記します。
  • すべての実例について、検証済みのメタデータ(タイトル、著者、年、DOI)を引用します。ユーザーの参考文献一覧に追加する項目がある場合は、verify-citations に回します。
6. 測定済み実例バンドルをキャッシュする(データ衛生)

このセッションで得た測定可能な事実は、後続スキルが草稿を評価する際に使う、ファミリー内の分布データです。後続スキルが実際に取得する実例の取得をスキップした場合、またはレート制限にかかった場合、投稿先/ファミリーのプロファイルにある exemplar_distribution: ブロックにフォールバックします。しかし、ほとんどの投稿先では、この値は実測ではなく手作業で推定されています。フォールバックの根拠を実際の実例に基づくものにするため、測定値をキャッシュします。

python3 scripts/build_exemplar_bundle.py measurements.json --out block.yml

この処理では、論文ごとの測定値(ステップ4)をスキーマに準拠したブロックに集約します。含まれるのは、密度の範囲(作り上げた単一の値は使いません)、比率、最頻の骨格で、それぞれに measured: true、n、recency、as_of: <date> のスタンプが付きます。対象のプロファイル(venues/conferences/<id>.yml、または実例の集合がファミリー全体にまたがる場合は venues/families/<family>.yml)に貼り付け、手作業で推定したブロックがあれば置き換えます。3本未満の論文から得られた範囲は null のままとし、過大な主張を避けるため、ブロックには measured-low-confidence の印を付けます。詳細なルールと入力スキーマについては、references/analysis-rubric.md の §14 を参照してください。

ブロックには measured と as_of が含まれるため、これを使って利用側が算出するすべてのスコアに、cache-vs-live のラベル(live/family-prior (measured, as_of <date>)/family-prior (hand-estimated)/none)が付きます。キャッシュ由来のスコアが、実際にその場で測定したかのように見えることはありません。

出力

以下を含む Markdown 形式のブリーフ(デフォルトでは作業ディレクトリ内の exemplar-brief-<venue>.md、またはユーザーの指定先):

  1. 模範論文の一覧 — メタデータ、選定理由(受賞 + 出典 URL/引用順位 + 件数)、使用した OA リンクを添えた 5~8 本の論文
  2. 会場の慣例 — すべての評価軸にわたる論文間の統合分析。各主張には、それを示す模範論文をタグ付けします
  3. 模範論文カード — 各論文についての簡潔な分析
  4. 差分と注意事項 — 現行の CFP と相容れない模範論文の慣例、OA 版が見つからず除外した論文、検証できず除外した受賞の主張
  5. 出典情報 — 実行したスクリプト、受賞ページの URL、日付、および引用件数はスナップショットである旨の注記(Semantic Scholar、ODC-BY、出典明記)

さらに、測定を行った場合は、キャッシュされた exemplar_distribution: ブロック(ステップ 6)を該当する会場/ファミリープロファイルに貼り付けます。これは、ライブ取得に失敗した際に後続スキルが使用する測定済みのフォールバックであり、measured、n、as_of の値が付与されます。

ブリーフには、メタデータと独自の分析のみを含めます。抄録、再掲した文章、抽出した図表は含めません。

参考資料

  • references/analysis-rubric.md — 分析軸、論文ごとに記録する内容、出力時の著作権表記、統合分析と模範論文カードのテンプレート、および §14 の測定済み模範論文バンドルのキャッシュ(入力スキーマ + 出典ラベル)
  • references/finding-exemplars.md — 受賞情報の出典と検証手順、引用数上位論文の選定方法と注意事項、OA 版の解決順序、別名に関する注意点
  • scripts/build_exemplar_bundle.py — 論文ごとの測定値を集約し、出典情報を付与した exemplar_distribution: ブロックを生成します(オフライン、標準ライブラリのみ使用。値を捏造せず、データが少ない区分は抑制します)

ガードレール

  • 論文の内容を同梱しないでください。 リポジトリ、ブリーフ、コミット対象ファイルのいずれにも、論文の本文、抄録、図表、PDF を含めないでください。必要に応じて取得して一時的に処理し、メタデータ(DOI、タイトル、BibTeX フィールド)と独自の分析のみを保持してください。引用は 25 語以下で出典を明記し、論文ごとに最大 1 件までとします。
  • 模範論文を捏造しないでください。 受賞の主張には、すべて有効な出典 URL と DBLP との照合が必要です。引用件数はすべて、このセッション中にスクリプトを実行して取得してください。参考文献に追加するものは、すべて verify-citations を通してください。
  • 適法な OA 版の出典のみを使用し、丁寧な取得を 1 回ずつ行ってください(スクリプトはホストごとに 1 リクエスト/秒以下、連絡先メールアドレスを含む User-Agent、429 の場合のバックオフ、.cache/study-exemplars/ へのキャッシュを適用します)。会議録を一括取得しないでください。
  • 会場プロファイルは出発点であり、確定情報ではありません。ユーザーがそれを頼りにする前に、ライブの cfp_url を照合してページ数制限、テンプレート、必須セクションを再確認してください。
  • テキストではなく測定値をキャッシュし、過剰な主張をしないでください。 キャッシュされた exemplar_distribution: ブロックに含めるのは件数、区分、セクション名のみです(コミットしても問題ありません)。論文の本文を含めないでください。これはフォールバックであり、確定情報ではありません。対象会場のライブコーパスがある場合は、そちらを優先してください。区分を出力するには論文が 3 本以上必要です(それ未満の場合は null / measured-low-confidence)。架空の単一値は決して出さず、キャッシュに基づくスコアにはすべて cache-vs-live とラベルを付け、このセッションでライブ測定した値と誤解されないようにしてください。
  • 模範論文の調査では、論文を模倣するのではなく、慣例を学んでください。出典を明記せずに特定の論文の文章や構成をそのまま再現したり、アイデアを流用したりしないでください。ユーザーに代わって、いかなるシステムにも何も提出しないでください。

コメント