mcpField
J
journal-if

journal-if

github.com/agents365-ai生産性97371 回インストール2 週間前に更新
リポジトリ

journal-if について

journal-if は、ジャーナルのインパクトファクターを検索・照会し、一覧を一括処理するコマンドラインスキルです。内蔵 CSV を優先し、該当しない場合は OpenAlex の概算2年指標を使います。オフライン検索にも対応し、OpenAlex の値は公式 JCR の数値ではないと明示します。

主な機能

  1. 01CSV キャッシュと OpenAlex 検索
  2. 02あいまい検索によるジャーナル検索
  3. 03ファイルからの一括処理
  4. 04オフラインキャッシュのみの検索
  5. 05JSON と人間向け表示

活用シーン

  1. 01ジャーナルの指標を確認
  2. 02テーマに合うジャーナルを検索
  3. 03ジャーナル名の一覧を処理
  4. 04ジャーナル間の概算指標を比較

インストール

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

$npx skills add https://github.com/agents365-ai/365-skills --skill journal-if

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

同梱ファイル

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

.gitignore
journal_if.py
data/
journals_if.csv

詳細

ジャーナルのインパクトファクター検索

2 つの情報源を順に使ってジャーナルのインパクトファクターを検索します。バンドルされた CSV キャッシュ(一般的なジャーナル約 200 誌)→ OpenAlex API(あらゆるジャーナルの概算 2 年 IF)。

重要なルール: 検索には必ず journal_if.py を使用してください。インパクトファクターを推測してはいけません。毎年変わり、版によっても異なります。

クイックリファレンス

ユーザーの要望Tierコマンド
ジャーナルの IF を検索するreadpython3 journal_if.py lookup "Nature Medicine"
ジャーナルを検索するreadpython3 journal_if.py search "cancer immunology"
ジャーナルのリストを処理するreadpython3 journal_if.py batch journals.txt
キャッシュのみ(ネットワークなし)readpython3 journal_if.py --offline lookup "Cell"
キャッシュの状態を確認するreadpython3 journal_if.py cache status
上流の CSV を更新するwritepython3 journal_if.py cache update
機械可読な CLI コントラクトreadpython3 journal_if.py schema
サブコマンド 1 つ分のスキーマreadpython3 journal_if.py schema lookup
出力形式

CLI が端末に接続されていない場合(パイプ接続またはエージェントによるキャプチャ)、標準出力は安定した JSON エンベロープになります。TTY で実行した場合は、人が読みやすい形式で表示されます。形式を指定するには、--format json|table|human|auto を使用してください。--json は後方互換性のための --format json の別名です。

エンベロープの形式:

  • 成功:{ "ok": true, "data": {...}, "meta": { "schema_version", "cli_version", "latency_ms" } }
  • 部分的な成功(バッチ):{ "ok": "partial", "data": { "succeeded": [...], "failed": [...] }, "meta": {...} }
  • エラー:{ "ok": false, "error": { "code", "message", "retryable", ... }, "meta": {...} }
終了コード
Code意味
0成功(部分的な成功を含む)
1実行時エラー/上流エラー
2検証エラー/入力不正(ファイルがない、フラグが不正)
3見つからない(該当するジャーナルなし)
エラーコード(error.code 内)
Code再試行可能終了コード意味
not_foundいいえ3検索は完了しましたが、該当する情報源がありませんでした
upstream_unavailableはい1OpenAlex API で一時的な障害が発生しました。後でもう一度試すか、--offline を使用してください
file_not_foundいいえ2入力ファイルのパスが存在しません
validation_errorいいえ2引数またはフラグの組み合わせが不正です
runtime_errorはい1想定外の内部エラーです

データソース

  1. バンドルされた CSV — ライフサイエンス、医学、化学、物理学、工学分野の主要ジャーナル約 200 誌を収録しています。JCR データをもとに厳選し、スキルに同梱されています。常に利用可能で、即座に検索できます。

  2. OpenAlex API — 無料で利用できるオープン API です。引用数から概算の 2 年インパクトファクターを算出します。ほぼすべての学術ジャーナルをカバーしています。この数値は公式 JCR IF とは異なります。同じ計算式(Y 年に、Y-1 年と Y-2 年に出版された論文が受けた引用数を、その 2 年間の引用可能な論文数で割る)を使った引用率指標ですが、OpenAlex 独自の論文分類に基づいています。順位付けや比較には十分ですが、正式な場面で「JCR インパクトファクター」として引用してはいけません。

どちらを使うか
シナリオ情報源
主要ジャーナルをすばやく確認するバンドルされた CSV(即時)
ニッチなジャーナルや新しいジャーナルOpenAlex のフォールバック(自動)
正式な投稿/助成金申請注意:OpenAlex IF ≠ 公式 JCR IF。概算値としてのみ引用してください。
多数のジャーナルを一括処理するキャッシュ済みのものは CSV、見つからないものは OpenAlex
オフライン/エアギャップ環境--offline フラグ(バンドルされた CSV のみ)

ワークフロー

ステップ 1:意図を判定する
意図アクション
「Nature の IF はいくつですか?」lookup "Nature"
「Cell と Science の IF を比較する」lookup を 2 回実行し、結果を比較する
「IF が 20 を超える免疫学ジャーナルはどれですか?」search "immunology" を実行してから絞り込む
「このジャーナルリストを処理する」batch journals.txt
「これは高インパクトのジャーナルですか?」lookup を実行し、分野の状況を踏まえて IF を解釈する
ステップ 2:実行

適切な journal_if.py コマンドを実行します。このスクリプトは以下を処理します。

  1. ローカル CSV 検索(即時、厳選された約 200 誌)
  2. OpenAlex API へのフォールバック(自動、2 年間の概算 IF)
  3. あいまい検索 — わずかな名称の違いを検出します
ステップ 3:結果の提示
  • 雑誌名、インパクトファクター、データ年を表示します
  • 出典(CSV キャッシュまたは OpenAlex の概算値)を明記します
  • 検索結果の場合:IF、年、カテゴリを含む表を表示します

インパクトファクターについて

IF の範囲一般的なランク例
> 30エリート(上位 0.1%)Nature(64.8)、Science(56.9)、Cell(64.5)
20–30非常に優秀(上位 1%)Cancer Cell(50.3)、Immunity(32.4)
10–20優秀(上位 5%)Nature Communications(16.6)、Sci Adv(13.6)
5–10高水準(上位 15%)eLife(7.7)、Cell Reports(8.8)
2–5堅実PLOS ONE(3.7)、Sci Rep(4.6)
< 2ニッチ/新興分野特化型や新しい雑誌が多数

注意事項:

  • IF は分野によって大きく異なります。数学分野のトップ雑誌でも IF が 5 未満の場合がある一方、中堅の腫瘍学雑誌では IF が 10 を超えることがあります。
  • IF は必ず同じ分野内で比較してください。
  • IF のデータ年は重要です。数値は毎年変動します。
  • OpenAlex の概算 IF は公式 JCR IF とは異なります。認証済みの数値ではなく、ランキング指標として扱ってください。

一括処理

1 行に雑誌名を 1 つずつ記載したテキストファイルを作成します。

Nature Medicine
Journal of Biological Chemistry
Proceedings of the National Academy of Sciences

次に、以下を実行します。

python3 journal_if.py batch journals.txt

トラブルシューティング

問題解決策
「データが見つかりません」より短い名前または別の名前を試してください。あいまい検索には search を使用してください
OpenAlex が IF として 0 または None を返す雑誌が新しすぎる可能性があります(2 年以上のデータが必要です)。キャッシュのみを確認するには --offline を使用してください
OpenAlex の IF が JCR と異なる想定内です。OpenAlex は独自の記事分類を使用しています。正式な引用ではなく、ランキングに使用してください。
キャッシュのダウンロードに失敗するネットワークを確認してください。同梱の CSV はオフラインでも使用できます
別の雑誌が一致したより具体的な名前を使用してください。あいまい検索では最も近い部分文字列が選ばれます

コメント