Openclaw-master-skills Word / Docx
Read and generate Word documents with correct structure, styles, and cross-platform compatibility.
install
source · Clone the upstream repo
git clone https://github.com/LeoYeAI/openclaw-master-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/word-docx" ~/.claude/skills/leoyeai-openclaw-master-skills-word-docx && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LeoYeAI/openclaw-master-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/word-docx" ~/.openclaw/skills/leoyeai-openclaw-master-skills-word-docx && rm -rf "$T"
manifest:
skills/word-docx/SKILL.mdsource content
Structure
- DOCX is a ZIP containing XML files—
has main content,word/document.xml
has stylesword/styles.xml - Text splits into runs (
)—each run has uniform formatting; one word may span multiple runs<w:r> - Paragraphs (
) contain runs—never assume one paragraph = one text block<w:p> - Sections control page layout—headers/footers, margins, orientation are per-section
Styles vs Direct Formatting
- Styles (Heading 1, Normal) are named and reusable—direct formatting is inline and overrides style
- Removing direct formatting reveals underlying style—useful for cleanup
- Character styles apply to runs, paragraph styles to paragraphs—they layer together
- Linked styles can be both—applying to paragraph or selected text behaves differently
Lists & Numbering
- Numbering is complex:
defines pattern,abstractNum
references it, paragraphs referencenumnumId - Restart numbering not automatic—need explicit
with restart flag<w:numPr> - Bullets and numbers share the numbering system—both use
numId - Indentation controlled separately from numbering—list can exist without visual indent
Headers, Footers, Sections
- Each section can have different headers/footers—first page, odd, even pages
- Section breaks: next page, continuous, even/odd page—affects pagination
- Headers/footers stored in separate XML files—referenced by section properties
- Page numbers are fields, not static text—update on open or print
Track Changes & Comments
- Track changes stores original and revised in same document—accept/reject to finalize
- Deleted text still present with
wrapper—don't assume visible = all content<w:del> - Comments reference ranges via bookmark IDs—
to<w:commentRangeStart><w:commentRangeEnd> - Revision IDs track who changed what—metadata persists even after accepting
Fields & Dynamic Content
- Fields have code and cached result—
vs displayed date{ DATE \@ "yyyy-MM-dd" } - TOC, page numbers, cross-references are fields—update fields to refresh
- Hyperlinks can be fields or direct
—both valid<w:hyperlink> - MERGEFIELD for mail merge—placeholder until merge executes
Compatibility
- Compatibility mode limits features to earlier Word version—check
settingsw:compat - Page size defaults vary by tool and region—set US Letter vs A4 explicitly or pagination and table widths can drift
- LibreOffice/Google Docs: complex formatting may shift—test roundtrip
- Embedded fonts may not transfer—fallback fonts substitute
- DOCM contains macros (security risk); DOC is legacy binary format
Common Pitfalls
- Empty paragraphs for spacing—prefer space before/after in paragraph style
- Manual page breaks inside paragraphs—use section breaks for layout control
- Images in headers: relationship IDs are per-part—same image needs separate relationship in header
- Copy-paste brings source styles—can pollute style gallery with duplicates