mcpbeat Sign in

Fill Icmje Coi Agent Skill

> Batch-generate per-author ICMJE Conflict of Interest Disclosure Forms (`coi_disclosure.docx`) for manuscript submission. Pre-fills all 13 disclosure items as "☒ None" + final certification ☒ using a synthetic seed template shipped with the skill, then clones the seed per author with Date, Name, and Manuscript Title replaced. Designed for the common case of hospital-based observational research where no author has real financial conflicts; the circulated forms become "reply 'no changes' + sign" for most authors and only flag those who need to amend.

12k tokens
context cost
the whole folder, loaded on every use
5
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
230
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Aperivue/medsci-skills --skill fill-icmje-coi

The instruction itself

15 sections, as written by the author

Fill-ICMJE-COI Skill

You are helping a researcher prepare ICMJE Conflict of Interest Disclosure Forms

for every co-author on a manuscript about to be submitted to an ICMJE member

journal (CHEST, NEJM, JAMA, Lancet, Radiology, etc.). This skill batch-generates

one personalized .docx per author from a synthetic all-None seed shipped with

the skill, avoiding 10–20 minutes of repetitive Word clicking per author.

Why This Skill Exists

The official ICMJE coi_disclosure.docx puts every field inside Word Content

Controls (Structured Document Tags, a.k.a. SDTs). Naive python-docx

manipulation of cell.text silently ignores SDT content, so the straightforward

programmatic approach does not work. The historical workaround was to open the

template in Word and manually fill each author's form (21 authors × 13

checkboxes × 2 clicks = ~500 clicks). This skill replaces that by operating

directly on word/document.xml inside the docx zip and doing literal-string

replacement — but that requires the target strings to already exist in the

seed, so the skill ships a pre-filled synthetic seed.

Precedent: a multi-author cohort manuscript submission — 6 authors

auto-filled in ~5 seconds from the synthetic seed with zero Word clicks.

Core Principles (Do Not Violate)

  • Never author SDT XML from scratch. Only replace existing strings in an

already-populated seed. Creating Content Controls programmatically is

fragile and Word-version-dependent.

  • Never ship a real author's filled form as the seed. The template

directory contains icmje_coi_seed_synthetic.docx with all PII scrubbed

(synthetic name, title, date; metadata reset to ICMJE / Anonymous).

Real-person seeds leak PII through both document.xml and docProps.

  • Never modify the 13 disclosure items or certification checkbox. The

script only replaces Date/Name/Title. If any author has a real disclosure,

they must edit in Word manually — the skill's purpose is the common

all-None case.

  • Always verify before circulation. Each output must have 14 × ☒ and

13 × "None" in document.xml. The script runs this check implicitly by

preserving the seed structure; a post-generation grep is cheap insurance.

When to Use This Skill

  • Manuscript accepted for submission to an ICMJE member journal
  • 3+ co-authors with no real financial conflicts
  • Editorial Manager / submission portal requires per-author ICMJE disclosure docx
  • About to hand-fill the same form 6–21 times

Skip this skill when:

  • Any author has a real financial disclosure to list (they fill their own form

in Word; this skill does not help)

  • Target journal uses its own declaration form (not ICMJE) — check author

guidelines first

  • Only 1 author (not worth the setup)

Execution

Phase 1 — Intake

Ask the user (or extract from conversation):

  • Manuscript title (exact, as it will appear on title page)
  • Submission date (e.g., "April 20, 2026")
  • Author list — ordered, one name per slot: [(1, "Author One"), (2, "Author Two"), ...]
  • Output directory — typically submission/{journal}/icmje_forms/

Present the intake back to the user for confirmation (Gate 1 — user approval)

before generating anything. Explicitly name which authors will get all-None

forms and remind that anyone with a real disclosure must instead fill their own

form in Word.

Phase 2 — Generate

Invoke the script with the synthetic seed that ships with this skill:

python3 ${SKILL_DIR}/scripts/fill_icmje_coi.py \
  --seed ${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"],...]'

The script exits nonzero if any seed string is not found, preventing silent

failures.

Phase 3 — Verify

For each generated docx, confirm:

  • ☒ count = 14 (13 disclosure items + 1 final certification)
  • "None" count = 13
  • Correct name appears after "Your Name:"
  • Correct title appears after "Manuscript Title:"
  • No leakage of seed placeholder strings (Placeholder Author, Placeholder Manuscript Title, January 1, 2000)

Verification one-liner:

for f in {out_dir}/*.docx; do
  python3 -c "
import zipfile, sys
xml = zipfile.ZipFile('$f').read('word/document.xml').decode()
assert xml.count('☒') == 14, 'bad ☒ count'
assert xml.count('None') == 13, 'bad None count'
assert 'Placeholder' not in xml, 'seed leak'
print('✓ $f')
"
done

Present verification results to user (Gate 2 — user review) before handing

off files.

Phase 4 — Circulation Guidance

Provide the user with circulation copy to send with each personalized form (write it in the co-authors' preferred language — Korean is common for Korean co-authors):

> Please review the attached ICMJE COI form.

> - If the contents are correct, sign and reply with a PDF.

> - If a change is needed, edit/check the relevant item, sign, and reply.

> - If there are no changes at all, reply "no changes" and return the signed PDF separately.

All 6–21 authors can be emailed in one gws gmail draft batch (**Gate 3 — user

approves batch send** before actually dispatching).

Custom Seeds

If the user wants a custom seed (e.g., different default wording, pre-filled

items 2/3 with a common grant), generate it once as follows:

  • Open templates/icmje_coi_seed_synthetic.docx in Word
  • Edit the desired fields
  • Save as a new file under {project}/submission/{journal}/ or a

local private seeds directory (outside this repo)

  • Pass --seed /path/to/custom.docx to the script along with the new seed

values for --seed-name, --seed-title, --seed-date

Do NOT commit custom seeds that contain real author names to the public

medsci-skills repo. Keep them in private per-project directories or a

local private seeds directory (outside this repo).

Seed Provenance (how the shipped synthetic seed was created)

The shipped templates/icmje_coi_seed_synthetic.docx was derived from the

official ICMJE coi_disclosure.docx through the following steps:

  • Downloaded the official ICMJE template (https://www.icmje.org/downloads/coi_disclosure.docx)
  • Opened in Word, typed placeholder values:
  • Date: January 1, 2000
  • Your Name: Placeholder Author
  • Manuscript Title: Placeholder Manuscript Title
  • Checked each of the 13 disclosure items' "None" option (14 checkboxes total including final certification)
  • Typed "None" in the "Name all entities" column for each item
  • Scrubbed docProps/core.xml metadata: creator=ICMJE, lastModifiedBy=Anonymous, dates=2000-01-01
  • Scrubbed docProps/app.xml Company/Manager fields

No real author's disclosure data is embedded. The file is safe to redistribute.

Anti-Hallucination

  • Never invent author names, email addresses, or ORCIDs. Pull them

verbatim from the manuscript's title page or the user's author list.

  • Never claim to have filled the 13 disclosure items — they come from the

seed unchanged. If the user asks whether the script "handled the

disclosures," the honest answer is "it cloned the seed's ☒ None entries;

no author-specific disclosure reasoning happened."

  • Never promise the script works on a blank ICMJE template. It does not —

the seed must be pre-filled with all-None ☒ + text.

  • Never edit seed XML by authoring new SDT elements. If an error requires

altering the seed structure, stop and escalate to the user; Word-generated

SDT XML is the ground truth.

  • Never push private seed files to public repos. If the user asks to

promote a custom seed, verify by unzip -p seed.docx docProps/core.xml that

no real names remain in metadata before committing.

References

  • ICMJE Disclosure of Interest page: https://www.icmje.org/disclosure-of-interest/
  • ICMJE COI form download: https://www.icmje.org/downloads/coi_disclosure.docx
  • ICMJE FAQ on disclosure forms: https://www.icmje.org/about-icmje/faqs/conflict-of-interest-disclosure-forms/
  • ${SKILL_DIR}/scripts/fill_icmje_coi.py — generator CLI + Python API
  • ${SKILL_DIR}/templates/icmje_coi_seed_synthetic.docx — shipped synthetic seed (PII-free)

| Skill | Relationship |

|---|---|

| write-paper | Completes the manuscript whose title is used as input |

| find-journal | Identifies whether the target journal requires ICMJE form |

| add-journal | Journal profile records whether ICMJE form is required |

| revise | After revision, updated title may require re-generating forms |

Non-Goals

  • Filling journal-specific disclosure forms (Elsevier Declaration of Interest,

BMJ ICMJE derivative, etc.) — only the canonical ICMJE form

  • Handling authors with real disclosures — those authors fill their own forms
  • Signing the forms — authors sign manually after receiving their personalized docx
  • Uploading to Editorial Manager — that remains manual, post-signature

Other skills for the same job

different authors, same section of the catalogue
DOCX
by anthropics
vendor ×16

Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks

7k tokens
PDF
by anthropics
vendor ×16

Comprehensive PDF manipulation toolkit for extracting text and tables, creating new PDFs, merging/splitting documents, and handling forms. When Claude needs to fill in a PDF form or programmatically process, generate, or analyze PDF documents at scale.

13k tokens scripts
PPTX
by JayZeeDesign
×15

Presentation creation, editing, and analysis. When Claude needs to work with presentations (.pptx files) for: (1) Creating new presentations, (2) Modifying or editing content, (3) Working with layouts, (4) Adding comments or speaker notes, or any other presentation tasks

308k tokens scripts
Canvas Design
by anthropics
vendor ×13

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

1388k tokens
PDF
by anthropics
vendor ×10

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

15k tokens scripts
DOCX
by w95
×6

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.

5k tokens
PPTX
by w95
×4

Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates, layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx filename, regardless of what they plan to do with the content afterward. If a .pptx file needs to be opened, created, or touched, use this skill.

2k tokens
Obsidian Markdown
by ZhanlinCui
×3

Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax. Use when working with .md files in Obsidian, or when the user mentions wikilinks, callouts, frontmatter, tags, embeds, or Obsidian notes.

3k tokens

How to use it

Copy the folder

Take aperivue/fill-icmje-coi from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.