validate-bib について
validate-bibは、講義ファイルの引用と参考文献リストを照合するスキルです。標準の構造チェックに加え、意味チェックでは重複検出、DOI検証、引用スタイル確認を行います。
主な機能
- 01参考文献リストにない引用の検出
- 02未引用項目とキーの誤記候補の指摘
- 03参考文献のフィールドと形式の確認
- 04意味チェックでの重複文献検出
- 05DOIメタデータと引用スタイルの任意検証
活用シーン
- 01提出前の講義資料の監査
- 02引用が不統一な参考文献項目の特定
- 03複数ファイルのDOIメタデータと引用形式の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pedrohcgs/ claude-code-my-workflow --skill validate-bibインストール後、Claude Code で/validate-bibを入力して読み込まれたか確認します。
詳細
参考文献の検証
講義ファイル内の引用を参考文献エントリと照合します。モードは2つあります。
- デフォルト(構造): エントリの欠落、未使用のエントリ、不正なフィールド、誤字の候補を検出します。
--semantic: 引用のずれ(同じ論文の重複エントリ)、crossref 経由の DOI 検証、各ファイル内の引用スタイルの一貫性チェックを追加します。
レポートは quality_reports/bib_audit_[structural|semantic].md に保存されます。
モード1:構造(デフォルト)
手順
-
参考文献ファイルを読み込み、すべての引用キーを抽出します。
-
講義ファイルをスキャンして引用キーを探します:
.tex:\cite{、\citet{、\citep{、\citeauthor{、\citeyear{、\textcite{、\parencite{.qmd/.md:@key、[@key]、[@key1; @key2]- 使用されている引用キーをすべて抽出します。
-
照合します:
- エントリの欠落(重大): 講義で引用されているものの、
.bibに存在しないエントリ。 - 未使用のエントリ(参考情報):
.bibにあるものの、一度も引用されていないエントリ。 - 誤字の候補:
.bibのキーとの編集距離が2以内のキー(例:Smith2020とSmth2020)。
- エントリの欠落(重大): 講義で引用されているものの、
-
エントリの品質を確認します:
- 必須フィールド(author、title、year、journal/booktitle)が存在すること。
- author フィールドが適切に書式設定されていること。
- year が1900年から現在までの範囲であること。
- 不正な文字やエンコーディングの問題がないこと。
doiフィールドが正規化されていること(先頭にhttps://doi.org/が付いていないこと)。
-
レポートを
quality_reports/bib_audit_structural.mdに書き込みます。
スキャン対象ファイル
Slides/*.tex
Quarto/*.qmd
guide/*.qmd
master_supporting_docs/**/*.tex
参考文献の場所
デフォルトではリポジトリのルートにある Bibliography_base.bib を使用します。CLAUDE.md で上書きできます。
モード2:セマンティック(--semantic)
モード1のすべてに加えて、以下を実行します。
2a. 引用のずれの検出
異なるキーで、同じ論文を記述している複数の .bib エントリを検出します。典型的な例:
- DOI またはタイトルが同一の
Smith2020とSmith2020a。 - 同じ論文を指す
CallawaySantAnna2021とCS2021。 - 複数の共同作業者がマージした
.bibファイル。
検出ヒューリスティクス(いずれかに該当 → フラグを付けます):
| チェック | 判定基準 |
|---|---|
| キー間で同じ DOI | 完全な重複(重大) |
| タイトルが同一(大文字・小文字を区別せず、句読点を除去) | 重複の可能性が高い(重大) |
| 著者+年+ジャーナルが同一 | 重複の可能性がある(中) |
| 4文字以上のトークンでタイトルの Jaccard 係数が0.85超 | 部分的な重複(低) |
フラグを付けた各ペアについて、両方のキー、それぞれが引用されている場所、正規キーの推奨を一覧表示します(引用数が最も多いキーを優先し、同数ならアルファベット順で先のキーを選びます)。
2b. DOI の検証(任意;ネットワーク接続が必要)
doi がある各エントリについて、https://api.crossref.org/works/{doi} を取得し、以下を比較します。
- 第一著者の姓
- 年
- タイトル(正規化されたトークンの Jaccard 係数が0.7超)
- Container-title / ジャーナル(完全一致または略称)
重大度:
- 著者またはタイトルの不一致 → 重大(異なる論文)
- 年の不一致 → 中(プレプリントと出版版の違い、または誤字)
- ジャーナルの不一致 → 低(正当なプレプリント版の違い)
レート制限: 1回の実行につき照会は最大50件、呼び出し間の待ち時間は0.5秒です。quality_reports/.doi_cache.json にキャッシュします。
オプトアウト: オフライン環境や WebFetch を利用できない環境では --skip-doi を指定します。
2c. ファイル内の引用スタイルの一貫性
各ファイルで引用コマンド(\citet と \citep と \cite、または @key と [@key])の数を数えます。明確なパターンがないままスタイルが混在しているファイルにフラグを付けます(例:同じスライドデッキで \citep が20回、\cite が3回)。重大度は低です。
2d. 引用と主張の整合性確認(フラグのみ)
--cite-claim を指定すると有効になります。各ファイルで最も多く引用されている上位10件の文献について、WebFetch で crossref の要旨を取得し、本文中の文脈と併せて表示します。自動判定は行いません。主張と一致するかどうかは人が判断します。
これは存在と構造の確認であり、妥当性の評価ではありません。 引用された論文が本文中の主張を実際に述べているかを判断するのは
/verify-claimsの役割です。この機能では原典を読み、引用箇所とページに基づいて「支持する/一部支持する/反論する」と判定します(弁護可能な別の名前付き解釈については EXPLAINED による例外があります)。--cite-claimが提示するのは要旨のみです。判定が必要な場合は/verify-claimsを実行してください。
レポートの構成(quality_reports/bib_audit_semantic.md)
# Bibliography Semantic Audit
**Date:** YYYY-MM-DD
**Bibliography:** Bibliography_base.bib (N entries)
**Files scanned:** [list]
## Summary
| Check | Critical | Medium | Low |
|---|---|---|---|
| Structural | | | |
| Citation drift | | | |
| DOI verification | | | |
| Style consistency | 0 | 0 | |
## Critical Issues
### Duplicate entries
| Keys | Signal | Citations | Recommended canonical |
|---|---|---|---|
### DOI mismatches
| Key | Field | .bib value | crossref value |
|---|---|---|---|
## Medium / Low issues
…
## Next steps
1. Resolve duplicates — pick canonical key, update citations, remove orphans.
2. Fix DOI mismatches — verify paper in crossref or strip the wrong DOI.
3. Review style-consistency notes.
終了時の動作
- 構造: 終了コード 0。レポートに問題が列挙されます。
- 意味: LOW の指摘のみの場合は終了コード 0、CRITICAL が1つでもある場合は終了コード 1 です。投稿前のゲートとして利用できます。
相互参照
.claude/skills/review-paper/SKILL.md— 投稿前の完全なレビューと組み合わせます。.claude/skills/audit-reproducibility/SKILL.md— 数値の主張に関する対応スキルです。.claude/skills/verify-claims/SKILL.md— 引用の適切性に関する対応スキルです(引用した論文は主張を裏付けていますか?)。このスキルでは、引用が存在し、正しい形式であることを確認します。/verify-claimsでは、引用が主張を裏付けていることを確認します。
このスキルで行わないこと
- 引用が適切な文脈で使われているか、つまり、引用した論文が主張の根拠として実際に記述されている内容を確認すること。これは
/verify-claimsの役割です(2d を参照)。このスキルでは、存在と構造のみを確認します。 .bibファイルの自動修正。すべての編集内容は提案です。- DOI 以外の識別子(ISBN、arXiv、SSRN)の確認。これは今後のロードマップに含まれます。