DOCX Toolkit
XiaomiMiMo/MiMo-Code
Produces, edits and reads Microsoft Word files through python-docx and lxml, with a decision table for picking the lightest workflow for a given task.
A skill your agent uses when an institutional Word form (.doc/.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout.
$ npx skills add Aperivue/medsci-skills --skill fill-protocol -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Aperivue/medsci-skills fill-protocol --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/fill-protocol .claude/skills/fill-protocol && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "fill-protocol" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocol into .claude/skills/fill-protocol/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fill-protocol", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocolType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Aperivue/medsci-skills --skill fill-protocol -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Aperivue/medsci-skills fill-protocol --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/fill-protocol .agents/skills/fill-protocol && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fill-protocol" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocol into .agents/skills/fill-protocol/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fill-protocol", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Aperivue/medsci-skills --skill fill-protocol -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Aperivue/medsci-skills fill-protocol --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/fill-protocol .cursor/skills/fill-protocol && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "fill-protocol" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocol into .cursor/skills/fill-protocol/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fill-protocol", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Aperivue/medsci-skills.git --path skills/fill-protocol--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Aperivue/medsci-skills --skill fill-protocol -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Aperivue/medsci-skills fill-protocol --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/fill-protocol .gemini/skills/fill-protocol && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "fill-protocol" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocol into .gemini/skills/fill-protocol/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fill-protocol", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Aperivue/medsci-skills fill-protocolInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Aperivue/medsci-skills --skill fill-protocol -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/fill-protocol .github/skills/fill-protocol && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "fill-protocol" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocol into .github/skills/fill-protocol/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fill-protocol", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Aperivue/medsci-skills --skill fill-protocol -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Aperivue/medsci-skills fill-protocol --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Aperivue/medsci-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/fill-protocol .opencode/skills/fill-protocol && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "fill-protocol" agent skill from https://github.com/Aperivue/medsci-skills/tree/main/skills/fill-protocol into .opencode/skills/fill-protocol/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fill-protocol", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
fill-protocolA skill your agent uses when an institutional Word form (.doc/.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout.
Fill Protocol is an agent skill from Aperivue/medsci-skills. Use when an institutional Word form (.doc/.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout. Renders content drafted by /write-protocol into the template; CJK-aware.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts and reference files (for example `examples/example_irb_template.yaml`, `references/best_practices.md` and `scripts/doc_to_docx.py`).
It sits in Documents & Office, covering Word documents. It works with Microsoft Word and LibreOffice. The repository describes itself as: Agent Skills for medical research — literature search, reporting-guideline & citation checks, statistics, publication figures, submission. Works with Claude Code, Codex, Cursor &… The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3b14ae2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (Shell and Python), which the agent can run.
Shell commands in SKILL.md call:
python3bashsofficepandocFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Fill Protocol loads about 1.7k tokens when it runs, and up to ~3.5k if it reads all its reference files. Until then it costs about 65 tokens; SKILL.md has 654 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Aperivue/medsci-skills at commit 3b14ae2, republished under its MIT licence (© Aperivue). 654 words, ~1,747 tokens.
.claude/skills/fill-protocol/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Document(template_path), not
Document(): rebuilding loses the header logo, custom margins, footer placeholders and page
numbering. Replace cell/paragraph text in place; never a single cell.text = "value"
assignment, which erases run-level styles (bold, color, eastAsia font).pandoc -f doc is not
supported; textutil corrupts table structure (merged cells dropped).table.cell(2, 1).
Templates evolve and coordinate matching breaks silently.cantSplit to every filled row so a row never breaks across pages.eastAsia font attribute, not just run.font.name, or
Hangul/Kanji/Hanzi render in fallback fonts.[MISS] line and every WARN: line
([TABLE-MISS], [SECTION-MISS], [RAW-NEWLINE]) before the filled form is submitted.Python packages docxtpl python-docx pyyaml are always required. LibreOffice is needed only for a
legacy .doc template (~700 MB on macOS). The bundled setup.sh detects what is missing:
bash ${CLAUDE_SKILL_DIR}/setup.sh check # report what's installed (read-only)
bash ${CLAUDE_SKILL_DIR}/setup.sh install # install missing pieces (asks before each)When invoking this skill on behalf of a user:
.docx.doc_to_docx.py, run setup.sh check. If LibreOffice is missing, ask the
user before installing, because the cask is ~700 MB.--yes to setup.sh install unless the user has explicitly authorized
unattended installation in this session, because it installs without prompting..doc manually (Word/LibreOffice/Pages → Save
As → .docx) and re-run with the converted file.python3 ${CLAUDE_SKILL_DIR}/scripts/doc_to_docx.py path/to/template.doc path/to/template.docxpython3 ${CLAUDE_SKILL_DIR}/scripts/inspect_template.py path/to/template.docxIt lists every table, every cell (coordinates and content preview) and every top-level paragraph. Take the exact labels for the YAML from this output.
Start from ${CLAUDE_SKILL_DIR}/examples/example_irb_template.yaml. Three fill modes; all keys are
optional.
protections:
korean_font: "맑은 고딕" # CJK font (set to "Noto Sans CJK KR", "SimSun",
# "MS Mincho", etc. for other locales)
cant_split: true # Apply <w:cantSplit/> to every filled row
# Readability options (defaults shown)
blank_between_paragraphs: true # Enter between \n\n chunks
blank_around_section_header: true # Enter above/below filled sections
blank_around_all_section_headers: false # opt-in; also touches untouched sections
normalize_page_breaks: true # empty page-break paragraphs -> pageBreakBefore
# Mode 1 — table key/value (left-label cell → right value cell)
table_kv:
"Study Title": "Multi-center prospective validation of ..."
"Principal Investigator": "Last, First (Department)"
"연구 목적": "본 연구는 ..."
# Mode 2 — section replacement (find numbered header, replace until next header)
section_replace:
"1. Background":
"Hepatocellular carcinoma is the third leading cause of ..."
"4. 연구 배경 및 이론적 근거":
"..."
# Mode 3 — single paragraph in-place text replacement
paragraph_replace:
"Title:":
"Title: Multi-center prospective validation of ..."Read ${CLAUDE_SKILL_DIR}/references/best_practices.md (Readability knobs) before changing any
readability option from its default.
Content rules: put a reference in only with a /search-lit-confirmed DOI or PMID, otherwise mark
it [UNVERIFIED - NEEDS MANUAL CHECK]; mark any unconfirmed clinical definition, diagnostic
criterion or guideline claim [VERIFY] and ask the user.
python3 ${CLAUDE_SKILL_DIR}/scripts/fill_form.py \
--template path/to/template.docx \
--content content.yaml \
--output path/to/filled.docxThe CLI prints [OK] / [MISS] for every fill operation, a summary, then any WARN: lines.
Investigate every [MISS] and WARN: before submitting (Principle 6).
Every value under table_kv, section_replace and paragraph_replace is written exactly as
typed (012345, 12:30, 1.10, No stay text). An empty value or a list/mapping value stops the
run with exit 2 and names the label; write '' to blank a field on purpose. A section_replace
on a header with no later numbered header replaces everything to the end of the document, and its
[OK] line says so with the number of paragraphs replaced. If a signature/date block or anything
else follows the last section, bound it with section_end (header -> regex matched against the
paragraph that starts the kept block):
section_end:
"18. References": "^Investigator signature"soffice --headless --convert-to pdf path/to/filled.docxWithout LibreOffice (a .docx template skips it), export the PDF from Word instead. Open the PDF and confirm: page count is sensible, no table row was split across pages, no font fell
back to Times New Roman, all required fields are populated.
Read ${CLAUDE_SKILL_DIR}/references/best_practices.md when a label or section header does not
match, the template has no numbered section headers (section_end), a cell
needs multi-line content, or cells are merged.
.docx first.section_end pattern is given; the filler cannot tell the section body from a trailing block.© Aperivue, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (scripts, references) in skills/fill-protocol of Aperivue/medsci-skills.
Open the folder on GitHubat commit 3b14ae2
Fill Protocol next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Fill Protocol this skillAperivue/medsci-skills | 329 | — | ~1.7k | Automated safety check: Pass | MIT | |
| DOCX ToolkitXiaomiMiMo/MiMo-Code | 14k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Word DOCX ToolkitNousResearch/hermes-agent | 252k | — | ~2.6k | Automated safety check: Pass | MIT | |
| DOCXguyi-a/pi-ling | 106 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Z Md To Wordtjxj/z-skills | 545 | — | ~815 | Automated safety check: Pass | None | |
| LiteparsePrismer-AI/PrismerCloud | 1.6k | — | ~2.1k | Automated safety check: Pass | MIT |
XiaomiMiMo/MiMo-Code
Produces, edits and reads Microsoft Word files through python-docx and lxml, with a decision table for picking the lightest workflow for a given task.
NousResearch/hermes-agent
Creates, reads, edits and templates Word .docx files with python-docx scripts, including tracked changes, comments, tables of contents and health checks.
guyi-a/pi-ling
Word 文档(.docx)的日常处理:md → docx(生成简历/报告)、docx → PDF/图片(分享预览)、.doc → .docx(老格式升级)。触发场景:用户说"生成 Word 版" / "做份 Word 简历" / "把这份报告转 Word" / "这份 .doc 打不开" / "docx 转 PDF" 等。读 docx 内容走 agent 已有的…
tjxj/z-skills
Convert local Markdown files into Word documents. An agent skill from tjxj/z-skills.
Prismer-AI/PrismerCloud
Parse local document files into LLM-ready content on the daemon itself — PDFs → Markdown / structured JSON (with bounding boxes) / page screenshots via the bundled lit CLI.
nexus-research-lab/nexus
只要 Word 文档或模板(.docx、.dotx、旧版 .doc)是任务的输入或输出,或者需要被打开、 读取、创建、修改,就使用本 Skill。也适用于 Word 内的表格、图片、批注、修订和格式调整, 以及要求以 Word 交付的报告、备忘录、信函和模板。不用于 PDF、电子表格或不涉及 Word 文件的普通写作。
Aperivue/medsci-skills
A skill your agent uses when validating or evaluating a trained medical-imaging model.
Aperivue/medsci-skills
A skill your agent uses when turning a folder of research PDFs into Obsidian notes, even if Obsidian is not named.
Aperivue/medsci-skills
A skill your agent uses when building or auditing a radiomics or tabular clinical-ML prediction model with a classical learner (LASSO, SVM, random forest, XGBoost and similar).
Aperivue/medsci-skills
A skill your agent uses when a clinical CSV/Excel dataset needs profiling and cleaning before analysis (missing values, outliers, duplicates, type mismatches).
Aperivue/medsci-skills
A skill your agent uses when checking a radiology or medical AI study design before drafting or submission.
Aperivue/medsci-skills
A skill your agent uses when each author needs an ICMJE Conflict of Interest disclosure form (coidisclosure.docx) for submission.
Works with
Categories
A skill your agent uses when an institutional Word form (.doc/.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout. Fill Protocol is an agent skill from Aperivue/medsci-skills.docx IRB protocol, ethics application, grant template) must be filled without breaking its styles, tables, fonts or page layout.
Fill Protocol fits situations like: an institutional Word form (.doc/.docx IRB protocol; ethics application; grant template) must be filled without breaking its styles.
Run `npx skills add Aperivue/medsci-skills --skill fill-protocol -a claude-code`. Or copy the skill folder (skills/fill-protocol in Aperivue/medsci-skills) into .claude/skills/fill-protocol in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Aperivue/medsci-skills --skill fill-protocol -a codex`. Or copy the skill folder (skills/fill-protocol in Aperivue/medsci-skills) into .agents/skills/fill-protocol in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Aperivue/medsci-skills --skill fill-protocol -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fill-protocol, .gemini/skills/fill-protocol, .github/skills/fill-protocol and .opencode/skills/fill-protocol in your project.
Going by SKILL.md and its folder, Fill Protocol needs a shell and Python for the scripts in its folder and the command-line tools its instructions call (python3, bash, soffice and pandoc). Our summary lists: Python 3; A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Fill Protocol is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Fill Protocol: DOCX Toolkit (XiaomiMiMo/MiMo-Code, 14k stars), Word DOCX Toolkit (NousResearch/hermes-agent, 252k stars), DOCX (guyi-a/pi-ling, 106 stars) and Z Md To Word (tjxj/z-skills, 545 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Aperivue (a GitHub organization) maintains it in Aperivue/medsci-skills, which has 329 GitHub stars. The repository holds 54 skills in this directory. The repository was last updated on October 5, 2026.
Source: Aperivue/medsci-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.