Processing docx
Processes Word document files (.docx). Creates, edits, annotates, tracks revisions, analyzes OOXML structure, and preserves formatting for contracts, policies, academic papers, and business documents. Use when working with .docx files or Word documents. Do NOT use for PDFs, spreadsheets, presentations, or plain text files.From its SKILL.md
npx -y skills add telagod/code-abyss --skill processing-docxAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.6 KB, 581 tokens by cl100k_base, as published. Nobody here has run it
DOCX Processing
.docx is a ZIP archive of XML and resources. Different tasks have different tools and workflows.
Workflow Decision
| Intent | Workflow | Reference |
|---|---|---|
| Read/analyze text only | pandoc → markdown | raw-xml-access.md |
| Read structure, comments, media, formatting | unpack → raw XML | raw-xml-access.md |
| Create new document | docx-js (JS/TS) | docx-js.md |
| Edit own document, simple changes | Document library (Python) | ooxml.md |
| Edit someone else's document | Redlining (tracked changes) | redlining.md |
| Legal / academic / business / gov docs | Redlining — REQUIRED | redlining.md |
| Visual analysis | soffice → PDF → pdftoppm | raw-xml-access.md |
Text Extraction (Quick)
pandoc --track-changes=all path-to-file.docx -o output.md
# --track-changes=accept/reject/all
Create New Document
- MANDATORY — READ ENTIRE FILE:
docx-js.md(~500 lines). NEVER set range limits. - Create JS/TS file using Document, Paragraph, TextRun components.
- Export with
Packer.toBuffer().
Edit Existing Document (Own, Simple)
- MANDATORY — READ ENTIRE FILE:
ooxml.md(~600 lines). NEVER set range limits. python ooxml/scripts/unpack.py <office_file> <output_dir>- Run Python script using Document library.
python ooxml/scripts/pack.py <input_dir> <office_file>
Edit Someone Else's Document → Redlining
See redlining.md for full 6-step workflow with batching strategy and RSID preservation.
Code Style
- Write concise code, no verbose variable names, no unnecessary print statements.
Dependencies
| Package | Install | Purpose |
|---|---|---|
| pandoc | apt install pandoc | Text extraction |
| docx | npm i -g docx | Create new docs |
| LibreOffice | apt install libreoffice | PDF conversion |
| Poppler | apt install poppler-utils | pdftoppm for images |
| defusedxml | pip install defusedxml | Secure XML parsing |
What ships with it: 59 files
1151.4 KB alongside SKILL.md, 11 of them executable
ooxml/
- schemas/ecma/fouth-edition/opc-contentTypes.xsd1.9 KB
- schemas/ecma/fouth-edition/opc-coreProperties.xsd2.5 KB
- schemas/ecma/fouth-edition/opc-digSig.xsd2.8 KB
- schemas/ecma/fouth-edition/opc-relationships.xsd1.3 KB
- schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd6.8 KB
- schemas/ISO-IEC29500-4_2016/dml-chart.xsd73.2 KB
- schemas/ISO-IEC29500-4_2016/dml-diagram.xsd50.1 KB
- schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd624 B
- schemas/ISO-IEC29500-4_2016/dml-main.xsd148.5 KB
- schemas/ISO-IEC29500-4_2016/dml-picture.xsd1.2 KB
- schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd8.7 KB
- schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd14.4 KB
- schemas/ISO-IEC29500-4_2016/pml.xsd81.7 KB
- schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd1.2 KB
- schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd7.2 KB
- schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd6.2 KB
- schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd1.2 KB
- schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd880 B
- schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd2.5 KB
- schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd3.4 KB
- schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd7.3 KB
- schemas/ISO-IEC29500-4_2016/shared-math.xsd22.8 KB
- schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd1.3 KB
- schemas/ISO-IEC29500-4_2016/sml.xsd236.6 KB
- schemas/ISO-IEC29500-4_2016/vml-main.xsd25.5 KB
- schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd24.7 KB
- schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd535 B
- schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd5.6 KB
- schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd3.9 KB
- schemas/ISO-IEC29500-4_2016/wml.xsd167.4 KB
- schemas/ISO-IEC29500-4_2016/xml.xsd4.5 KB
- schemas/mce/mc.xsd3.1 KB
- schemas/microsoft/wml-2010.xsd25.9 KB
- schemas/microsoft/wml-2012.xsd3.7 KB
- schemas/microsoft/wml-2018.xsd901 B
- schemas/microsoft/wml-cex-2018.xsd1.7 KB
- schemas/microsoft/wml-cid-2016.xsd1002 B
- schemas/microsoft/wml-sdtdatahash-2020.xsd600 B
- docx-js.md16.1 KB
- ooxml.md22.8 KB
19 more files not listed here. See all 59 in the repository.
Gives 0 of the 12 instructions most pdf office docs skills give in 581 tokens
Counted across 569 of the 585 authors here whose files we hold, read 2026-09-06
- Ensure every slide fits inside one viewportin 20 of 569, across 11 files
- Check for product marketing context firstin 15 of 569, across 5 files
- Ask for the minimum neededin 15 of 569, across 5 files
- Set the API key environment variablein 15 of 569, across 10 files
- Support keyboard and touch navigationin 14 of 569, across 5 files
- Match the buyer stagein 13 of 569, across 3 files
- Split overflowing content into multiple slidesin 12 of 569, across 3 files
- Set page size explicitly for consistent resultsin 12 of 569, across 5 files
- Convert documents to markdown using pandocin 12 of 569, across 6 files
- Read STYLE_PRESETS.md before generatingin 12 of 569, across 7 files
- Send multipart POST requests to the APIin 12 of 569, across 7 files
- Use smart quotes for new contentin 11 of 569, across 4 files
Said here and by no other author read
- Read the entire docx-js file
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.