mcpField
F
fill-icmje-coi

fill-icmje-coi

github.com/aperivueドキュメント353113 回インストール1 日前に更新
リポジトリ

fill-icmje-coi について

標準的な ICMJE COI テンプレートから個別フォームを作成するドキュメントスキルです。シード内の既存の日付、氏名、タイトルだけを置換し、承認と検証の手順で開示項目と著者のプライバシーを守ります。

主な機能

  1. 01日付、氏名、タイトルの入力
  2. 02事前入力済みの合成シードを使用
  3. 03開示項目と認証欄を維持
  4. 04承認と検証のゲート
  5. 05著者への配布案内

活用シーン

  1. 01共著者ごとの ICMJE COI フォーム作成
  2. 02共有前の生成フォーム確認
  3. 03著者レビューと署名済みフォームの回収

インストール

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

$npx skills add https://github.com/aperivue/medsci-skills --skill fill-icmje-coi

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

同梱ファイル

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

skill.yml
references/
seeds.md
scripts/
fill_icmje_coi.py
templates/
icmje_coi_seed_synthetic.docx
tests/
test_fill_icmje_coi.sh

詳細

Fill-ICMJE-COI Skill

公式の ICMJE coi_disclosure.docx では、すべてのフィールドが Word のコンテンツコントロール(SDT)内にあり、python-docx の cell.text では黙って無視されます。そのため、このスクリプトは word/document.xml 内の文字列を直接置換します。この方法が機能するのは、対象の文字列がすでに存在する場合に限られるため、事前入力済みの合成データを含むシードを同梱しています。

基本原則(厳守)

  1. SDT の XML を一から作成しないでください。 事前入力済みのシード内に存在する文字列のみを置換してください。プログラムで作成したコンテンツコントロールは壊れやすく、Word のバージョンによって動作が異なるためです。エラーの解決にシード構造の変更が必要と思われる場合は、作業を中止してユーザーに相談してください。
  2. 実在の著者のデータを含むシードは、使用もコミットもしないでください。 同梱されている templates/icmje_coi_seed_synthetic.docx は、個人を特定できる情報が削除されています(合成の氏名、タイトル、日付、メタデータは ICMJE / Anonymous)。実在の人物を含むシードは、document.xml と docProps の両方から個人情報が漏えいします。実在の氏名を含むカスタムシードはプロジェクトごとの非公開ディレクトリに保管し、シードを採用する前に unzip -p seed.docx docProps/core.xml で実在の氏名が含まれていないことを確認してください。
  3. 13 項目の開示内容や認証チェックボックスは変更しないでください。 スクリプトが置換するのは日付、氏名、タイトルのみです。☒ None の項目はシードからそのまま引き継がれます。スクリプトが「開示内容を処理した」と決して言わないでください。スクリプトが行ったのはシードの複製であり、著者ごとの開示内容の判断は一切行っていません。実際の開示事項がある著者は、自分のフォームを Word で編集します。
  4. シードは事前入力済みである必要があります(すべて ☒ なし + テキスト)。このスクリプトは空の ICMJE テンプレートでは動作しません。

投稿先のジャーナルが標準の ICMJE フォームではなく、独自の申告フォーム(Elsevier Declaration of Interest、BMJ の ICMJE 派生フォームなど)を使用している場合は、このスキルを使用しないでください。まず著者向けガイドラインを確認してください。

実行

フェーズ 1 — 情報の収集

ユーザーに質問するか、会話から次の情報を抽出します。

  1. 論文タイトル(タイトルページに記載されたものと完全に一致するもの)
  2. 投稿日(例:「2026 年 4 月 20 日」)
  3. 著者リスト — 順序を保ち、各スロットに 1 名ずつ記載します:[(1, "Author One"), (2, "Author Two"), ...]。論文のタイトルページまたはユーザーのリストから、原文どおりに取得します。
  4. 出力ディレクトリ — 通常は submission/{journal}/icmje_forms/

ゲート 1 — ユーザーの承認。 生成を始める前に、収集した情報をユーザーに提示してください。すべての項目が None のフォームを受け取る著者の名前を示し、実際の開示事項がある著者は代わりに Word で自分のフォームを記入する必要があることを伝えてください。

フェーズ 2 — 生成
python3 ${CLAUDE_SKILL_DIR}/scripts/fill_icmje_coi.py \
  --seed ${CLAUDE_SKILL_DIR}/templates/icmje_coi_seed_synthetic.docx \
  --seed-name "Placeholder Author" \
  --seed-title "Placeholder Manuscript Title" \
  --seed-date "January 1, 2000" \
  --new-title "{exact manuscript title}" \
  --new-date "{submission date}" \
  --out-dir {out_dir} \
  --authors '[[1,"Author One"],[2,"Author Two"],...]'

著者ごとに ICMJE_COI_{NN}_{Name}.docx を 1 つ作成し、シード内の文字列が見つからない場合はゼロ以外の終了コードで終了します。--seed-*、--new-* の値、または著者名のいずれかが空の場合は、何も書き込む前に終了コード 2 で終了します。シード文字列が空だと何にも一致せず、すべてのフォームでシードの値がそのまま残るためです。

フェーズ 3 — 検証

生成した各 docx について、☒ の数が 14(13 項目の開示内容 + 最後の認証)であること、「None」の開示が 13 件あること、「Your Name:」の後に正しい氏名、「Manuscript Title:」の後に正しいタイトルがあること、シードの文字列が残っていないことを確認します。SEED にはフェーズ 2 で使用した --seed-name、--seed-title、--seed-date の値を正確に指定してください(以下の同梱プレースホルダー、またはカスタムシードに含まれる文字列)。TITLE には --new-title の値を指定してください。

python3 - {out_dir}/*.docx <<'PY'
import sys, zipfile
SEED = ("Placeholder Author", "Placeholder Manuscript Title", "January 1, 2000")  # = --seed-* values
TITLE = "{exact manuscript title}"                                                 # = --new-title
assert all(s.strip() for s in SEED) and TITLE.strip(), "empty SEED/TITLE value"
for f in sys.argv[1:]:
    xml = zipfile.ZipFile(f).read("word/document.xml").decode("utf-8")
    assert xml.count("☒") == 14, f"{f}: bad ☒ count"
    assert xml.count(">None<") + xml.count(">None ") == 13, f"{f}: bad None count"
    for ph in SEED:
        assert ph not in xml, f"{f}: seed leak {ph!r}"
    t = TITLE.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
    assert t in xml, f"{f}: title missing"
    print("✓", f)
PY

このスニペットでは、「Your Name:」フィールド内の氏名の位置は特定されません。各フォームを開いて氏名を確認してください。

ゲート 2 — ユーザーによる確認。 ファイルを引き渡す前に、検証結果をユーザーに提示してください。

フェーズ 4 — 回覧の案内

各著者向けにカスタマイズしたフォームに添えて送るため、共著者の言語で以下の文面をユーザーに渡してください。

添付の ICMJE COI フォームをご確認ください。

  • 内容に問題がなければ、署名して PDF で返信してください。
  • 変更が必要な場合は、該当項目を編集またはチェックし、署名して返信してください。
  • 変更がまったくない場合は、「変更なし」と返信し、署名済み PDF を別途返送してください。

全著者へのメールは、1 つの下書きバッチで作成できます(例:gws gmail draft)。ゲート 3 — 送信前に、ユーザーがバッチを承認します。

カスタムシードとシードの由来

ユーザーがカスタムシード(デフォルトの文言を変更したもの、または項目 2/3 によく使われる助成金をあらかじめ入力したもの)を希望する場合や、同梱されているシードの作成方法について尋ねた場合は、${CLAUDE_SKILL_DIR}/references/seeds.md を読んでください。

コメント