该技能处理 .docx 文件的创建、编辑与分析。.docx 本质是包含 XML 与资源的 ZIP 归档,可按任务选择不同流程;所有生成文件必须写入 outputs/<document-name>/(描述性小写连字符命名),中间文件与最终文件均放在此目录,不写入仓库根目录或 public/。
读取分析:纯文本可用 pandoc 转 markdown 并保留修订,如 pandoc --track-changes=all path-to-file.docx -o output.md;批注、复杂格式、嵌入媒体、元数据等需解包读取原始 XML,命令为 python ooxml/scripts/unpack.py <office_file> <output_directory>。document.xml 为主内容,comments.xml 为批注,media/ 为嵌入媒体,修订使用 <w:ins> 与 <w:del> 标签。
创建新文档使用 docx-js,需完整阅读 docx-js.md 后用 Document、Paragraph、TextRun 编写并以 Packer.toBuffer() 导出。编辑既有文档使用 Document 库(Python OOXML 操作),需完整阅读 ooxml.md,先解包、编写并运行脚本、再用 python ooxml/scripts/pack.py <input_directory> <office_file> 打包。他人文档或法律、学术、商务、政府文档建议或必须使用红线审阅流程:先用 pandoc 转带修订 markdown,按 3–10 项一批分批实施,只标记实际变化并保留未变文本原 <w:r>,完成后打包、转 markdown 验证并做视觉校验。
视觉校验为强制步骤:用 soffice --headless --convert-to pdf --outdir outputs/<document-name>/ outputs/<document-name>/document.docx 转 PDF,再用 pdftoppm -jpeg -r 150 outputs/<document-name>/document.pdf outputs/<document-name>/page 转图片,检查文字、版式、表格列表、修订标记与截断溢出,发现问题修复后重来。依赖包括 pandoc、docx(npm install -g docx)、LibreOffice、Poppler、defusedxml。