Skip to content
Back to skills

Fill Icmje Coi

ASecurity

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 변경 없음 + sign" for m...

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 12, 2026
toolspythongobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill fill-icmje-coi --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fill Icmje Coi?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Fill Icmje Coi
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-fill-icmje-coi/badge)](https://www.skillsdirectory.com/skills/aibot88-fill-icmje-coi)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: fill-icmje-coi
description: >
  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 변경 없음 + sign" for most authors and only
  flag those who need to amend.
triggers: ICMJE, COI form, conflict of interest form, disclosure form, coi_disclosure.docx, 이해상충, 이해상충 폼, icmje 폼, 저자 동의서, submission forms
tools: Read, Write, Edit, Bash, Grep, Glob
model: inherit
---

# 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:** CK-5 Emphysema → Mortality cohort (2026-04-20) — 6 authors
auto-filled in ~5 seconds from the synthetic seed with zero Word clicks.

## Core Principles (Do Not Violate)

1. **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.
2. **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.
3. **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.
4. **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):
1. **Manuscript title** (exact, as it will appear on title page)
2. **Submission date** (e.g., "April 20, 2026")
3. **Author list** — ordered, one name per slot: `[(1, "Yoojin Nam"), (2, "Hye Ree Cho"), ...]`
4. **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:

```bash
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:
```bash
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:

> 첨부된 ICMJE COI 폼을 검토 부탁드립니다.
> - 내용이 맞으면 서명 후 PDF로 회신
> - 수정이 필요하면 해당 항목을 고쳐서 체크 + 서명 후 회신
> - 전체가 변경 없음이면 "변경 없음" 회신 + 서명본 PDF 별도 회신

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:

1. Open `templates/icmje_coi_seed_synthetic.docx` in Word
2. Edit the desired fields
3. Save as a new file under `{project}/submission/{journal}/` or
   `~/.claude/private-seeds/`
4. 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 under
`~/.claude/private-seeds/`.

## 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:

1. Downloaded the official ICMJE template (`https://www.icmje.org/downloads/coi_disclosure.docx`)
2. Opened in Word, typed placeholder values:
   - Date: `January 1, 2000`
   - Your Name: `Placeholder Author`
   - Manuscript Title: `Placeholder Manuscript Title`
3. Checked each of the 13 disclosure items' "None" option (14 checkboxes total including final certification)
4. Typed "None" in the "Name all entities" column for each item
5. Scrubbed `docProps/core.xml` metadata: creator=`ICMJE`, lastModifiedBy=`Anonymous`, dates=`2000-01-01`
6. 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)

## Related Skills

| 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

Files in this skill

  • SKILL.md9.6 KB
  • source.json1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.