name: “doc”
description: “当任务涉及阅读、创建或编辑.docx文档时使用,特别是在格式或布局保真度很重要的情况下;首选python-docx和捆绑的scripts/render_docx.py进行视觉检查。”
author: openai
DOCX技能
何时使用
- 阅读或审查DOCX内容,其中布局重要(表格、图表、分页)。
- 创建或编辑具有专业格式的DOCX文件。
- 在交付前验证视觉布局。
工作流程
- 首选视觉审查(布局、表格、图表)。
- 如果
soffice和pdftoppm可用,转换DOCX -> PDF -> PNGs。 - 或使用
scripts/render_docx.py(需要pdf2image和Poppler)。 - 如果这些工具缺失,安装它们或请用户本地审查渲染的页面。
- 如果
- 使用
python-docx进行编辑和结构化创建(标题、样式、表格、列表)。 - 每次有意义更改后,重新渲染并检查页面。
- 如果视觉审查不可能,使用
python-docx提取文本作为后备并指出布局风险。 - 保持中间输出有序,并在最终批准后清理。
临时和输出约定
- 使用
tmp/docs/作为中间文件;完成后删除。 - 在此仓库中工作时,将最终工件写入
output/doc/。 - 保持文件名稳定和描述性。
依赖项(如果缺失则安装)
首选uv进行依赖管理。
Python包:
uv pip install python-docx pdf2image
如果uv不可用:
python3 -m pip install python-docx pdf2image
系统工具(用于渲染):
# macOS (Homebrew)
brew install libreoffice poppler
# Ubuntu/Debian
sudo apt-get install -y libreoffice poppler-utils
如果在此环境中安装不可能,告诉用户哪个依赖项缺失以及如何本地安装。
环境
没有必需的环境变量。
渲染命令
DOCX -> PDF:
soffice -env:UserInstallation=file:///tmp/lo_profile_$$ --headless --convert-to pdf --outdir $OUTDIR $INPUT_DOCX
PDF -> PNGs:
pdftoppm -png $OUTDIR/$BASENAME.pdf $OUTDIR/$BASENAME
捆绑助手:
python3 scripts/render_docx.py /path/to/file.docx --output_dir /tmp/docx_pages
质量期望
- 交付客户就绪的文档:一致的排版、间距、边距和清晰层次。
- 避免格式缺陷:裁剪/重叠文本、破碎表格、不可读字符或默认模板样式。
- 图表、表格和视觉元素必须在渲染页面中可读且对齐正确。
- 仅使用ASCII连字符。避免U+2011(非断字连字符)和其他Unicode破折号。
- 引用和参考文献必须可读;永远不要留下工具令牌或占位符字符串。
最终检查
- 在最终交付前,重新渲染并以100%缩放检查每一页。
- 修复任何间距、对齐或分页问题,并重复渲染循环。
- 确认没有遗留物(临时文件、重复渲染),除非用户要求保留。