본문으로 건너뛰기
cccskills
무료GitHub에 공개

fill-icmje-coi

Use when each author needs an ICMJE Conflict of Interest disclosure form (coi_disclosure.docx) for submission. Clones a pre-filled synthetic seed with every item marked None and replaces only date, name and manuscript title, so most authors just confirm or amend.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills스타 349(GitHub 349 + cccskills 0)
연동 도구Word

실행 점수 미검증

설치 방법 보기

포함된 파일(6)

  • SKILL.md5.8 KB
  • references/seeds.md1.8 KB
  • scripts/fill_icmje_coi.py6.3 KB
  • skill.yml1.4 KB
  • templates/icmje_coi_seed_synthetic.docx29.6 KB
  • tests/test_fill_icmje_coi.sh5.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Fill-ICMJE-COI Skill

The official ICMJE coi_disclosure.docx keeps every field inside Word Content Controls (SDTs), which python-docx cell.text silently ignores. The script therefore does literal-string replacement in word/document.xml, which only works when the target strings already exist — hence the shipped pre-filled synthetic seed.

Core Principles (Do Not Violate)

  1. Never author SDT XML from scratch. Only replace existing strings in an already-populated seed, because programmatic Content Controls are fragile and Word-version-dependent. If an error seems to require altering the seed structure, stop and escalate to the user.
  2. Never use or commit a seed that contains a real author's data. The shipped templates/icmje_coi_seed_synthetic.docx is PII-scrubbed (synthetic name, title, date; metadata ICMJE / Anonymous); real-person seeds leak PII through both document.xml and docProps. Keep custom seeds with real names in private per-project directories, and before promoting any seed check unzip -p seed.docx docProps/core.xml for real names.
  3. Never modify the 13 disclosure items or the certification checkbox. The script replaces only Date, Name and Title; the ☒ None entries come from the seed unchanged. Never say the script "handled the disclosures": it cloned the seed, and no author-specific disclosure reasoning happened. An author with a real disclosure edits their own form in Word.
  4. The seed must be pre-filled (all-None ☒ + text). The script does not work on a blank ICMJE template.

Skip this skill when the target journal uses its own declaration form (Elsevier Declaration of Interest, a BMJ ICMJE derivative, etc.) rather than the canonical ICMJE form — check the author guidelines first.

Execution

Phase 1 — Intake

Ask the user (or extract from the conversation):

  1. Manuscript title (exact, as on the title page)
  2. Submission date (e.g., "April 20, 2026")
  3. Author list — ordered, one name per slot: [(1, "Author One"), (2, "Author Two"), ...], taken verbatim from the manuscript title page or the user's list
  4. Output directory — typically submission/{journal}/icmje_forms/

Gate 1 — user approval. Present the intake back before generating anything. Name which authors will get all-None forms and remind the user that anyone with a real disclosure must fill their own form in Word instead.

Phase 2 — Generate

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"],...]'

It writes one ICMJE_COI_{NN}_{Name}.docx per author and exits nonzero if any seed string is not found. It exits 2, before writing anything, if any --seed-* or --new-* value or author name is empty: an empty seed string would match nothing and leave the seed's value in every form.

Phase 3 — Verify

For each generated docx confirm: ☒ count = 14 (13 disclosure items + final certification); "None" disclosures = 13; the correct name after "Your Name:" and title after "Manuscript Title:"; no seed strings left. SEED must be the exact --seed-name, --seed-title and --seed-date values used in Phase 2 (the shipped placeholders below, or a custom seed's own strings); TITLE must be the --new-title value.

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

This snippet does not locate the name inside the "Your Name:" field; confirm the name by opening each form.

Gate 2 — user review. Present the verification results before handing off the files.

Phase 4 — Circulation Guidance

Give the user this copy to send with each personalized form, written in the co-authors' language:

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 authors can be emailed in one draft batch (e.g., gws gmail draft). Gate 3 — the user approves the batch before anything is sent.

Custom Seeds and Seed Provenance

Read ${CLAUDE_SKILL_DIR}/references/seeds.md when the user wants a custom seed (different default wording, a common grant pre-filled in items 2/3) or asks how the shipped seed was made.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when a medical AI paper should be found and cited by AI search engines and RAG tools. Optimizes the title, abstract, summary box (Key Points, Research in Context), keywords, preprint, GitHub README/CITATION.cff and Hugging Face card, returning a visible pass/fail checklist.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills3492026년 10월 25일 업데이트

Use when a target journal has no profile yet. Reads the journal's author guidelines and writes a detailed /write-paper profile plus a compact /find-journal profile, public or user-local private, in the canonical format with quality gates.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills3492026년 10월 25일 업데이트

Use when data needs statistical analysis. Runs reproducible Python/R code for Table 1, diagnostic accuracy, agreement, regression, survival, propensity score, survey-weighted and repeated-measures models, with publication tables. Sample size is /calc-sample-size; pooling studies is /meta-analysis.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills3492026년 10월 25일 업데이트

Renamed to /model-selection in v6 (removed in v7).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills3492026년 10월 25일 업데이트

Use when analyzing a researcher's publication record from PubMed. Fetches an author's papers, classifies study types and author position, charts the patterns and writes a strategy report, with an optional trajectory-archetype classification. Works from PubMed metadata only.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills3492026년 10월 25일 업데이트

Use when one validated cohort analysis must be repeated across many exposure/outcome pairs. Generates one R/Python script per combination from a single methodology template, changing only the variables, and aggregates the results into a summary matrix.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Aperivue/medsci-skills3492026년 10월 25일 업데이트

Aperivue의 스킬 모두 보기

이 스킬의 문제 신고