word-document
GitHub通过编写并运行python-docx脚本生成真正的.docx文件,支持标题样式、表格和页面结构。适用于报告、合同等正式文档,需代码执行环境。
Trigger Scenarios
Install
npx skills add mohitagw15856/pm-claude-skills --skill word-document -g -y
SKILL.md
Frontmatter
{
"name": "word-document",
"description": "Build a real, formatted Word (.docx) document — headings, styles, tables, TOC-ready. Use when asked to produce a Word doc, a .docx, a formatted report\/contract\/proposal\/letter as an actual file (not markdown). Produces an actual .docx via a generated python-docx script with proper heading styles, body text, tables, and page structure. Requires a code-execution environment (Claude Code, the API code tool, or Claude.ai)."
}
Word Document Skill
When someone needs an actual .docx — a report, proposal, contract, or formal letter they'll edit in
Word — markdown won't do. This skill produces a real Word file by writing and running a python-docx
script: proper heading styles (so the navigation pane and a TOC work), clean body text, tables, and
page structure — a document that looks authored, not exported.
Environment: produces a binary file, so it needs code execution — Claude Code, the API code-execution tool, or Claude.ai. In the browser playground, the existing Word/PDF export turns any skill's markdown into a document; this skill is for a built-to-spec
.docx.
Required Inputs
Ask for these only if they aren't already provided:
- Document type — report, proposal, contract, SOP, letter, whitepaper — and its purpose/audience.
- The content — the material (or a brief to expand), and the required sections/structure.
- Formatting needs — headings/TOC, tables, numbered clauses (contracts), a cover page, letterhead/brand.
- Length & tone.
Process
- Outline the structure — the section hierarchy (H1/H2/H3), and where tables or numbered clauses go. Confirm structure for formal docs (contracts, proposals).
- Write a
python-docxscript that:- Uses real heading styles (
Heading 1/2/3) — not bold body text — so the nav pane, cross-refs, and a generated TOC work. - Sets clean body styling (font, size, spacing), adds tables with proper headers where needed, and page elements (title/cover, page numbers, sections) as required.
- For contracts/formal docs: numbered headings/clauses and consistent defined-term formatting.
- Saves to a clearly named
.docx.
- Uses real heading styles (
- Run it, then summarise the document and note anything the user must fill (signatures, figures, brand assets).
Output Format
- The generated
.docxfile. - A short contents summary (the section structure) and a list of placeholders/fields the user needs to complete.
Quality Checks
- Headings use real Word heading styles (not bold paragraphs) — TOC/nav pane work
- Body text, spacing, and tables are consistently formatted
- Structure matches the document type (e.g. numbered clauses for a contract)
- The script runs and the file opens cleanly in Word/Pages/Docs
- Placeholders the user must complete are clearly flagged
Anti-Patterns
- Do not fake headings with bold text — use heading styles, or the document's structure breaks
- Do not dump unstructured text — apply the section hierarchy the doc type needs
- Do not hand-format what a style should do — consistent styles beat per-paragraph fiddling
- Do not invent contract/legal terms silently — mark drafted clauses and recommend review for anything legal
- Do not claim a file was produced without code execution — fall back to the markdown export instead
Based On
Document-production practice (style-based formatting, structured headings, TOC-ready) implemented with python-docx.
Programmatic Helper
This skill ships scripts/docx_tool.py — zero-dependency (stdlib zip+XML) production of real .docx files:
# Markdown-lite → Word (#/##/### headings, - bullets, 1. numbered, **bold**, *italic*)
python3 scripts/docx_tool.py create out.docx --text-file doc.md
# Fill {{placeholders}} through an existing .docx (body, headers, footers) —
# handles Word splitting a placeholder across formatting runs
python3 scripts/docx_tool.py fill template.docx out.docx --values '{"client":"Acme","date":"2026-07-03"}'
# Verify what a .docx actually says (plain-text extraction)
python3 scripts/docx_tool.py extract out.docx
Write the document first (per this skill), then create it as a real file. Honest limits: the markdown subset above with default styling; complex templates keep their formatting except in paragraphs where a placeholder spanned runs.
Version History
- a38bc30 Current 2026-07-05 11:16


