mcpField
A
add-venue-profile

add-venue-profile

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

add-venue-profile について

add-venue-profileは、公開中のCall for Papersを基に、検証済みで出典を記録した学会プロフィールを作るスキルです。年ごとのプロフィールとプルリクエスト案を準備し、自動送信は行いません。

主な機能

  1. 01公開中のCFPから学会プロフィールを作成
  2. 02出典と検証状況を記録
  3. 03プロフィール項目を検証
  4. 04ブランチとPR説明文を準備
  5. 05学会要件を要約

活用シーン

  1. 01リポジトリにない学会を追加
  2. 02新しいCFPサイクル向けにプロフィールを更新
  3. 03PR準備前にプロフィール案を検証

インストール

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

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

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

同梱ファイル

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

references/
pr-checklist.md
profile-walkthrough.md
scripts/
fetch_cfp.py
init_profile.py
validate_profile.py

詳細

会場プロファイルの追加

学会の論文募集要項を、マージ可能な会場プロファイルに変換します。これは、コミュニティからの貢献を通じて venues/ のデータ資産を拡充する仕組みです。出力は、検証に合格し、出典情報を含む新しいファイル venues/conferences/<venue>-<year>.yml です。さらに、作成したプルリクエストを用意します(自動では開きません)。 会場に対応するその他のスキル(preflight-check、tailor-to-venue、write-rebuttal、prepare-camera-ready)はすべてこれらのプロファイルを使うため、ここで誤った情報を記載すると、ほかの人の論文がデスクリジェクトされる原因になります。網羅性より正確性を優先してください。

使用する場面

  • 「リポジトリに会場を追加して」/「会場プロファイルを投稿したい」/「会場が venues/ にありません」。
  • 新しい論文募集サイクルが始まり、昨年のプロファイルを引き継ぐ必要がある。
  • 作成済みのプロファイルを検証したり、上流リポジトリへの投稿前にプルリクエストを準備したりする必要がある。

入力

  • 会場の現在有効な論文募集要項または著者向け指示の URL(ユーザーが会場名だけを指定した場合は URL を尋ねてください。記憶だけを頼りにプロファイルを作成しないでください)。
  • venues/schema.yml — 最初に読み込んでください。すべてのフィールドと、必須の verified: 出典情報ブロックが定義されています。
  • venues/families/ にある既存のファミリーファイル(references/profile-walkthrough.md の表を使って選択してください)。
  • 適切なフェッチ用 User-Agent に使う CONTACT_EMAIL 環境変数(未設定の場合、スクリプトが入力を求めます)。

手順

  1. 対象は1つの会場、1つの年に絞ります。 venues/schema.yml を読みます。venues/conferences/ にすでにこの会場がある場合:

    • 同じ年 → そのファイルの更新に切り替えます(すべての事実をその場で再検証します)。
    • 以前の年 → 新しいファイルに引き継ぎます。昨年のファイルを今年の内容に編集してはいけません。プロフィールは意図的に年ごとに管理されており、引き継いだ事実はすべて、最新の CFP と照合して再検証する必要があります。
  2. スケルトンを作成します。 ウォークスルーの表からファミリーを選び、リポジトリのルートから次を実行します。

    python3 skills/add-venue-profile/scripts/init_profile.py <venue>-<year> \
        --family <family> --cfp-url "<url>"
    

    TODO マーカーと needs-verification の出典情報ブロックを含む、スキーマに沿ったスケルトンが生成されます。既存のプロフィールへの上書きを拒否し、不明なファミリーは有効なファミリーの一覧を表示して拒否します。

  3. 最新の CFP を取得します。 次を実行します。

    python3 skills/add-venue-profile/scripts/fetch_cfp.py "<cfp-url>"
    

    1 回の実行につき 1 ページです(レート制限あり、.cache/ にキャッシュされ、gitignore 対象です)。必要な追加ページ(トラック別ページ、締切一覧、カメラレディの手順など)だけを取得します。1 ページにつき 1 回呼び出し、サイト全体のクロールは決して行いません。 終了コード 3 は、CFP が PDF であることを意味します。保存されたファイルを直接読みます。「抽出されたテキストが非常に少ない」という警告が出た場合、ページは JavaScript で描画されています。ユーザーにテキストの貼り付けを依頼し、confidence: needs-verification のままにします。 情報を抽出する前に、ページの年が指定した年と一致していることを確認します。古い CFP がほぼ同一の URL で公開され続けていることがあります。

  4. すべてのフィールドを記入します。 references/profile-walkthrough.md(フィールドごとのルール、ファミリー表、注意事項一覧)に従います。必須事項:

    • 数値と日付は、取得したテキストに記載されたものだけを使います。事実が見つからない場合は、説明を添えて null にします。推測や学習データからの記憶に基づく記入は決してしません。
    • ページ数の上限には、除外される項目を記録し、該当トラックの notes に CFP の文を一字一句そのまま引用します。
    • 締切には、CFP に記載されたタイムゾーンを付けます。AoE はよく使われますが、常に使われるわけではありません。
    • llm_policy と dual_submission は一字一句そのまま引用し、言い換えてはいけません。
  5. 別名テーブルを作成します(dblp_key、s2_venue、crossref_container)。ウォークスルーにある単一検索 API のパターンを使います。別名によって find-papers/select-venue からプロフィールを検索できるようになります。「検索したが見つからなかった」というコメント付きの null のほうが、推測で値を入れるより適切です。

  6. verified: ブロックを正確に記入します。 今日の日付、事実の根拠となったすべての URL(各ページから得た事実を注記)、および証拠によって裏付けられる confidence を記載します。重要な事実をすべて今日、最新のページから確認した場合に限り、verified-live にします。

  7. 検証します。 リポジトリのルートから次を実行します。

    python3 skills/add-venue-profile/scripts/validate_profile.py \
        venues/conferences/<venue>-<year>.yml --strict
    

    ERROR をすべて修正します。WARN はそれぞれ解決するか、PR の本文に1行の説明を記載します。このスクリプトはオフラインで動作し、標準ライブラリのみを使います(PyYAML がある場合は使用します)。CI では同等の tools/validate_venues.py が実行されるため、ここで strict 検証に通れば、チェックも成功する見込みです。

  8. PR の準備をします。 references/pr-checklist.md に従い、venue/<venue>-<year> という名前のブランチ、単一ファイルの差分、出典情報と警告への説明を含む PR 本文テンプレートを用意します。最終的な差分と、正確な gh pr create コマンドをユーザーに提示します。実行するのは、ユーザーから明示的に依頼された場合のみです。促されていないのに、PR を開いたり、push したり、送信したりしてはいけません。

  9. 鮮度に関する注意書きで締めくくります: 「プロフィールは <cfp_url> を に基に作成しました。CFP は募集期間中に変更されることがあります。このプロフィールを利用する前に、最新のページで締切とページ数の上限を再確認してください。また、査読者が抜き打ちで確認することを想定してください。」

出力

  • venues/conferences/<venue>-<year>.yml — スキーマ準拠で、出典情報を含み、strict 検証に合格するもの(または警告に説明を付けたもの)。
  • ブランチとコミットを用意し、すぐに送信できる PR の説明文。
  • インライン要約カード:締切(タイムゾーン付き)、トラックごとの上限と除外事項、ブラインド審査のレベル、テンプレートの呼び出し方法、投稿システム、リバッタルの形式。最後に再確認の注意書きを付けます。

ガードレール

  • 締め切り、ページ数制限、ポリシー、別名を捏造してはいけません。推測するより、null と注記を使ってください。venues/ に捏造した事実を記載すると、その後のすべてのスキルに悪影響を及ぼします。
  • LLM の使用および二重投稿に関するポリシーは、原文のまま引用してください。言い換えると、コンプライアンス上の意味が逆転するおそれがあります。
  • 取得は GET のみとし、スクリプトの実行 1 回につき 1 ページに限ります。一括クロールは禁止です。投稿システムへのログインや登録は決して行わないでください。
  • 取得した CFP のテキストは .cache/(gitignore 対象)に保存し、決してコミットしないでください。プロフィールには、事実と短い規制文の逐語引用のみを記載します。
  • 明示的な指示がない限り、ユーザーに代わって PR の作成、プッシュ、投稿を行わないでください。準備はこのスキルの役割であり、送信するのはユーザーです。
  • ユーザーがこれから頼りにしようとしている情報は、必ず最新の CFP で再確認し、最終回答でもその旨を伝えてください。

ソースの検証

このスキルは投稿先のルールデータを作成するため、ソースの検証が必須です。

  • ユーザーが選んだ投稿先と年について、必要に応じてプロフィールを作成してください。再確認せずに、記憶している値や過年度の値を再利用してはいけません。
  • 最新の CFP または著者向けの指示ページを検索して開いてください。検索結果、スニペット、締め切り情報の集約サイトは手掛かりにすぎません。記録する前に、公式の投稿先ソースで事実を確認してください。
  • 可能な限り、デスクリジェクトにつながる事実(締め切り、ページ数制限と除外事項、ブラインドのレベル、テンプレート、投稿システム)を二重に確認してください。ソース間に食い違いがある場合は、黙って一方を選ばず、その食い違いを明示してください。
  • verified: の来歴ブロックでは、重要な事実ごとにクリック可能なソース URL と日付を記録してください。ソースがない項目には needs-verification を使用してください。ソースのない事実は、確定情報として扱えません。

同梱ファイル

  • references/profile-walkthrough.md — ファミリー表、フィールドごとの抽出ルール、検証済みの別名検索 API パターン、要注意項目の一覧。
  • references/pr-checklist.md — 検証ゲート、ブランチ/コミットの規約、PR 本文のテンプレート、CI のチェック内容。
  • scripts/init_profile.py — スキーマに沿ったひな形を作成するオフラインのスキャフォールダー。
  • scripts/fetch_cfp.py — 1 ページのみを丁寧に取得する CFP フェッチャー(実行してください。手作業で取得処理を再実装してはいけません)。
  • scripts/validate_profile.py — オフラインのスキーマバリデーター。--strict は PR 前のゲートです。

コメント