# DOCX

> Create polished, editable Microsoft Word documents such as reports, letters, proposals, and handbooks.

- Skill: `modsetter/docx` (Agent Skill)
- Install (CLI): `npx skillmds@latest add modsetter/docx`
- Raw SKILL.md: https://api.skillmd.com/api/skills/modsetter/docx/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: MODSetter (https://skillmd.com/u/modsetter)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/modsetter/docx

---


# DOCX

Create the requested Word document in `/workspace` with the preinstalled
`python-docx` package. Never install or download dependencies.

## Authoring rules

- Use one page size and orientation for the document unless the user asks for a
  different layout. Prefer portrait; narrow wide content instead of silently
  switching sections to landscape.
- Choose the page size the user requests, or the locale-appropriate default
  when they do not specify one.
- Set margins of at least 18 mm and use built-in heading levels.
- Set table and cell widths deliberately and use a visible table grid.
- Use Word numbering/list styles; never insert literal `•` characters.
- Put page breaks in their own paragraphs. Use separate paragraphs instead of
  newline characters for separate blocks.
- Do not add a table of contents unless the user asks. If requested, use
  built-in heading levels and state that page numbers populate when Word opens
  and updates the field.
- For right-aligned text on the same line, use a right tab stop.
- Generate the document as one whole document. Do not assemble or save one
  DOCX per intended page; Word controls pagination through reflow.

## Revisions

Start an in-place revision with `load_artifact_for_revision`. Use
`python-docx` to open `primary_path`, make common edits directly to the existing
document, and write the result to `expected_output_path`. Common edits include
paragraph text and styles, headings, ordinary tables, lists, headers/footers,
section settings, and embedded images that `python-docx` can safely preserve.

If the requested edit touches a structure `python-docx` cannot safely interpret
or preserve—such as macros, SmartArt, complex fields, tracked changes, content
controls, or unsupported drawing/layout XML—stop and report the blocker. Do not
silently rebuild from `markdown_path` and do not fall back to a Markdown-only
deliverable. Rebuild the DOCX from Markdown/context only when the user
explicitly requested or accepted that lossy rebuild.

Do not use vision to reconstruct the document; `verify_artifact` may use vision
after the revision is written. Save the verified revision with the returned
`artifact_id` and `expected_generation`. A changed title, filename, or design
is still the same artifact unless the user explicitly asks for a separate copy.

## Verify and save

Call `verify_artifact(path=output_path, format="docx")`. Warnings are advisory. If it reports
blocking findings, fix all blockers together, regenerate once at the same
output path, and reverify. If a blocker remains, stop and explain it instead of
entering another automatic rewrite loop.

Then call `save_artifact(path=output_path, title="...",
markdown_representation="...")`. Working files may use any paths; no source
file, preview file, or matching filename stem is part of the publication
contract. The Markdown representation must faithfully contain the document's
substantive text for accessibility and search.

