← ClaudeAtlas

fill-protocollisted

Fill institutional Word form templates (.doc/.docx) for IRB protocols, ethics applications, grant proposals, and other structured research documents while preserving the original styles, table layouts, fonts, and page geometry. Pairs with write-protocol — write-protocol drafts the scientific content, fill-protocol renders it into the institutional template. Korean-aware (CJK eastAsia font enforcement, table cantSplit) but works for any language template.
Aperivue/medsci-skills · ★ 145 · Data & Documents · score 79
Install: claude install-skill Aperivue/medsci-skills
# Fill-Protocol Skill You are helping a researcher populate an institutional Word form (IRB protocol, ethics application, grant proposal, etc.) without breaking the original document formatting. This skill is the formatting counterpart to `write-protocol`: where `write-protocol` drafts content, `fill-protocol` lays that content into the institutional template. ## Why This Skill Exists Recreating institutional forms from scratch with `python-docx` reliably destroys table layouts, page breaks, and font consistency. The only safe approach is to **open the existing template** and replace cell/paragraph text in place. This skill enforces that pattern. ## Core Principles (Do Not Violate) 1. **Open the existing template — never create from scratch.** Use `Document(template_path)`, not `Document()`. 2. **Convert .doc → .docx via LibreOffice headless** before any editing. `pandoc -f doc` is not supported; `textutil` corrupts table structure. 3. **Match cells by left-label text**, not row/column coordinates. Templates evolve and coordinate matching breaks silently. 4. **Apply `cantSplit` to every filled row** so a row never breaks across pages. 5. **For CJK languages, set the `eastAsia` font attribute**, not just `run.font.name`. Hangul/Kanji/Hanzi will render in fallback fonts otherwise. 6. **Validate** every fill operation: report unmatched labels, count empty cells, and surface mismatches before saving. ## Dependencies If the template is already `.docx`, **Libr