Skip to content
cccskills
FreePublished on GitHubEnglish overview

docx

Create and edit Word documents and templates, extract or reorganize content, and format reports with headings, tables, and images. The skill also covers tracked changes, comments, and checks of document structure and appearance.

OriginalShow the original description

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.

Works withGoogle DocsWord
AI rating70/ 100See how to install

Good for

  • Creating a Word report with a table of contents
  • Replacing text and images in an existing document
  • Reviewing documents with tracked changes and comments
  • Extracting and reorganizing content from Word files

Overview

What it does

docx helps create, edit, and read Word documents (.docx) and templates (.dotx). It formats documents with tables of contents, headings, page numbers, tables, and images. You can also replace text or reorganize existing files. It supports edits with tracked changes, adding comments, and producing a copy with changes accepted.

When it helps

Use it to prepare reports, memos, or letters in Word format, or to extract and organize content from documents you receive. Its workflow includes rendering the finished document’s pages as images to check their appearance, as well as validating the document structure.

Example requests

  • “Turn this draft into a Word report with a table of contents and page numbers.”
  • “Replace the images in this existing .docx and track the changes you make.”

Notes

Depending on the task, the skill uses docx (npm), pandoc, LibreOffice, and pdftoppm. Older .doc files need conversion first. Empty paragraphs may remain in the displayed version after changes are accepted. The skill has a proprietary license; check LICENSE.txt for its terms.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Objective evaluation

AI rated this skill on four points using only the contents of its SKILL.md. Stars and popularity are not taken into account.

Clear instructionsIs it clear when to use it and what it does?
AGoodIt explicitly defines creation, editing, and reading of .docx and .dotx files and lists excluded document formats.
Concrete stepsAre steps, inputs, outputs, and examples spelled out?
AGoodIt provides creation, editing, and reading methods, execution commands, visual checks, and structural validation steps.
SafetyAre sending data, deleting files, and running commands disclosed?
CCheck firstThe editing example deletes symlinks with find and an existing output with rm -f, without a prior confirmation step.
Easy setupDoes it need few tools or API keys, and are they documented?
BPartly lackingDependencies are listed, but installation guidance mainly covers installing docx if it is unavailable.

The total counts each point as A = 25, B = 15, C = 5. Rated by AI (OpenAI Codex) as of Oct 20, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (61)

  • SKILL.md6.7 KB
  • LICENSE.txt1.4 KB
  • scripts/__init__.py1 B
  • scripts/accept_changes.py4.0 KB
  • scripts/comment.py13.7 KB
  • scripts/merge_runs.py9.2 KB
  • scripts/office/helpers/__init__.py3.3 KB
  • scripts/office/helpers/pptx_chart.py5.7 KB
  • scripts/office/helpers/pptx_slide.py1.6 KB
  • scripts/office/helpers/pptx_theme.py3.4 KB
  • scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd1.9 KB
  • scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd2.5 KB
  • scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd2.8 KB
  • scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd1.3 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd73.2 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd6.8 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd50.1 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd624 B
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd148.5 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd1.2 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd8.7 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd14.4 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd81.7 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd1.2 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd7.2 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd6.2 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd1.2 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd880 B
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd2.5 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd3.4 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd7.3 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd22.8 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd1.3 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd236.6 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd25.5 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd24.7 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd535 B
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd5.6 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd3.9 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd167.4 KB
  • scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd4.5 KB
  • scripts/office/schemas/mce/mc.xsd3.1 KB
  • scripts/office/schemas/microsoft/wml-2010.xsd25.9 KB
  • scripts/office/schemas/microsoft/wml-2012.xsd3.7 KB
  • scripts/office/schemas/microsoft/wml-2018.xsd901 B
  • scripts/office/schemas/microsoft/wml-cex-2018.xsd1.7 KB
  • scripts/office/schemas/microsoft/wml-cid-2016.xsd1002 B
  • scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd600 B
  • scripts/office/schemas/microsoft/wml-symex-2015.xsd745 B
  • scripts/office/soffice.py5.8 KB
  • scripts/office/validate.py6.0 KB
  • scripts/office/validators/__init__.py336 B
  • scripts/office/validators/base.py33.0 KB
  • scripts/office/validators/docx.py17.1 KB
  • scripts/office/validators/pptx.py15.6 KB
  • scripts/office/validators/redlining.py11.0 KB
  • scripts/templates/comments.xml2.5 KB
  • scripts/templates/commentsExtended.xml2.5 KB
  • scripts/templates/commentsExtensible.xml2.6 KB
  • scripts/templates/commentsIds.xml2.6 KB
  • scripts/templates/people.xml115 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

DOCX creation, editing, and analysis

A .docx is a ZIP archive of XML files. Choose your approach by task:

TaskApproach
Create a new documentWrite a docx (npm) script — see gotchas below
Edit an existing documentunzip → edit word/document.xml → zip (docx-js cannot open existing files)
Read contentpandoc -t markdown file.docx

Script paths below are relative to this skill's directory.

Creating with docx-js — gotchas

docx is preinstalled — do not run npm install first; write the script and require('docx') directly. Only if that require fails: npm install docx. The model knows the API; these are the footguns:

  • Page size defaults to A4. For US Letter set page: { size: { width: 12240, height: 15840 } } (DXA; 1440 = 1″).
  • Landscape: pass portrait dimensions and orientation: PageOrientation.LANDSCAPE — docx-js swaps width/height internally.
  • Tables need dual widths: set columnWidths on the table AND width on every cell, both in WidthType.DXA (PERCENTAGE breaks in Google Docs). Column widths must sum to the table width.
  • Table shading: use ShadingType.CLEAR, never SOLID (renders black).
  • Lists: never insert • literally; use a numbering config with LevelFormat.BULLET.
  • ImageRun requires type: ("png", "jpg", …).
  • PageBreak must be inside a Paragraph.
  • Never use \n — use separate Paragraph elements.
  • TOC: headings must use built-in HeadingLevel.*; custom heading styles need outlineLevel set or they won't appear.
  • Don't use a table as a horizontal rule — use a paragraph bottom border instead.
  • Dot-leader / right-aligned-on-same-line: use PositionalTab (alignment: PositionalTabAlignment.RIGHT, leader: PositionalTabLeader.DOT) inside a TextRun, not literal . or space padding.

Verify the output

After writing a .docx, render it and look at it:

python scripts/office/soffice.py --headless --convert-to pdf output.docx
pdftoppm -jpeg -r 100 output.pdf page
ls page-*.jpg   # then Read the images

pdftoppm zero-pads page numbers to the width of the page count (page-01.jpg…page-12.jpg).

Editing existing documents

Legacy .doc files must be converted first: python scripts/office/soffice.py --headless --convert-to docx file.doc.

unzip -q doc.docx -d unpacked/
find unpacked -type l -delete   # strip symlink entries — docx from external parties is untrusted
python scripts/merge_runs.py unpacked/   # coalesce fragmented runs so text is findable
# edit unpacked/word/document.xml in place — do NOT reformat or pretty-print
(cd unpacked && rm -f ../out.docx && zip -Xr ../out.docx .)
python scripts/office/validate.py out.docx --original doc.docx   # XSD checks; --auto-repair fixes common issues
# redlining? add --author "<the name you redlined under>" to check every edit is tracked

Word splits text across many <w:r> runs (revision ids, spell-check markers), so a phrase you can see in the document often doesn't exist as a contiguous string in the XML. merge_runs.py merges adjacent identically-formatted runs in word/document.xml without changing content or rendering; it also accepts a .docx directly (python scripts/merge_runs.py doc.docx -o merged.docx).

Tracked changes: when redlining, validate with --author "<the name you redlined under>" (needs --original) — it reports any text you changed without a <w:ins>/<w:del> around it, which is easy to do by accident and invisible in the accepted view. Wrap runs in <w:ins>/<w:del> with w:id, w:author, w:date attributes. Inside <w:del>, the text element is <w:delText>, not <w:t>. A deleted paragraph mark (<w:pPr><w:rPr><w:del w:id=".." w:author=".." w:date=".."/></w:rPr></w:pPr>) means "merge this paragraph into the next" — so deleting a paragraph outright is that plus a <w:del> around every run. The <w:del/> must come before the rPr's other children; their order is schema-enforced.

To produce a clean copy with all tracked changes accepted: python scripts/accept_changes.py in.docx out.docx.

Accepting a deleted paragraph mark should join that paragraph to the one below it, so a paragraph whose runs are all deleted vanishes. Word does this; accept_changes.py and pandoc --track-changes=accept don't always. Both fail the same way — they strip the deleted text but leave the emptied paragraph behind, which reads as a stray empty bullet when it was auto-numbered:

  • pandoc --track-changes=accept never joins the paragraphs.
  • accept_changes.py (LibreOffice) joins them correctly, except when the deleted paragraph is followed by an empty spacer paragraph.

An empty bullet in either view is an artifact of that view, not a defect in the document. Check paragraph deletions in the XML.

Comments

Comments require six cross-linked files. Use the helper — directory mode when you'll also be editing document.xml (saves an unzip/rezip cycle), .docx-direct mode otherwise:

# Against an already-unpacked directory (preferred when also placing markers)
python scripts/comment.py unpacked/ "Fees & expenses cap is too low"
python scripts/comment.py unpacked/ "Agreed" --parent 0

# Against a .docx directly
python scripts/comment.py contract.docx "This cap is too low" -o annotated.docx

The script writes comments.xml, commentsExtended.xml, commentsIds.xml, commentsExtensible.xml, the relationships, and the content-type overrides. Comment IDs are auto-assigned. It then prints the <w:commentRangeStart>/<w:commentRangeEnd>/<w:commentReference> snippet to add to word/document.xml so the comment anchors to specific text — until you place those markers, the comment exists but is not visible.

Dependencies

docx (npm, preinstalled — install only if require('docx') fails) · pandoc · LibreOffice (soffice) · pdftoppm (Poppler)

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

academy-guide

FreeSummaryAI rating 100

Find Claude Academy learning resources that closely match questions about using Claude, its features, or team adoption. It supplements direct answers with a small selection of relevant courses, tutorials, worked examples, or product learning hubs.

  • Find resources for getting started with Claude
  • Learn how to use a specific Claude feature
  • Choose learning materials for team adoption
anthropics/skills182.2KUpdated Oct 10, 2026

algorithmic-art

FreeSummaryAI rating 90

Create original generative art with p5.js, using particles, mathematical rules, and controlled randomness. Explore variations through interactive controls, reproduce results with a seed value, and save the artwork as a PNG.

  • Creating original art with code
  • Exploring particle motion and flow fields
  • Comparing variations by changing seeds and parameters
anthropics/skills182.2KUpdated Oct 10, 2026

brand-guidelines

FreeSummaryAI rating 90

Apply Anthropic's brand colors and typography to visual materials. The skill specifies heading and body fonts, background-aware text colors, and accents for shapes, with fallback fonts when Poppins and Lora are unavailable.

  • Styling materials with Anthropic's brand colors
  • Unifying heading and body fonts
  • Adjusting text colors for light and dark backgrounds
anthropics/skills182.2KUpdated Oct 10, 2026

canvas-design

FreeSummaryAI rating 90

Create original posters and static artwork by first defining a visual direction, then expressing it through color, shapes, spacing, and restrained text. Deliverables include PNG or PDF artwork and a Markdown document explaining the design philosophy.

  • Creating an original poster around a theme
  • Making abstract artwork with minimal text
  • Documenting a visual direction alongside finished artwork
anthropics/skills182.2KUpdated Oct 10, 2026

claude-api

FreeSummaryAI rating 70

Guides implementation and maintenance of Claude applications using language-specific references and official SDKs, the libraries used to call the API. Covers tool integration, streaming responses, model migration, cost reviews, prompt audits, and evaluation workflows.

  • Adding Claude API calls to an application
  • Building an agent that uses custom tools
  • Migrating existing Claude integrations to another model
anthropics/skills182.2KUpdated Oct 10, 2026

discernment-nudge

FreeSummaryAI rating 100

Add two or three specific follow-up questions after actionable advice, plans, estimates, or analysis. The questions help users examine facts, reasoning, and missing context before acting, with clear exclusions and a limit of once per conversation.

  • Examining assumptions behind cost or timeline estimates
  • Checking reasoning behind a recommended plan
  • Spotting missing context in proposals or email drafts
anthropics/skills182.2KUpdated Oct 10, 2026

See all skills by anthropics

Report a problem with this skill