Word 文档排版技能

上传参考模板 Word + 待排版 Word，自动识别章节结构，套用模板样式，清理乱格式，输出规范化 Word、处理报告和结构 QA 报告。

产品定位
Word 文档排版技能是一个面向投标书、方案书、建议书和商务长文档的 Word 模板迁移排版工具。它不从零生成正文内容，而是把用户已有的参考模板样式，迁移到另一份待排版 Word 文档上，帮助团队快速得到统一、干净、可复核的交付文件。

适用用户
1. 投标团队：将客户或公司标准模板套用到投标书、响应文件、技术方案。
2. 售前和咨询团队：快速统一方案书、项目建议书、咨询报告的版式。
3. 文控和行政人员：批前整理格式混乱的长 Word，统一页眉页脚和标题样式。
4. 集成商和工程团队：将多来源内容整理成统一交付文档。
5. 团队协作用户：使用同一参考模板统一多人协作后的输出格式。

新手 30 秒上手
场景 1：按客户模板重排投标文件
请使用 bid-word-format，把待排版投标文件按照这个参考模板重新排版。保留正文内容，统一标题、正文、页眉页脚和表格基础样式，并输出 QA 报告。

场景 2：整理格式混乱的方案书
这份方案书格式比较乱，请按我提供的标准 Word 模板重新整理，正文不要改写，输出新的 docx 文件。

场景 3：指定运行页眉
请按参考模板排版，并把正文页眉固定为“项目方案设计书”。

场景 4：先自动排版，再复核问题
请先自动套用模板，然后生成处理报告和结构 QA 报告，标出标题、表格、页眉页脚需要人工复核的地方。

工作流
1. 识别并验证参考模板 Word 与待排版 Word；无法可靠区分时先澄清。输出路径和页眉文字均为可选，采用的默认值与排版、QA、渲染检查方案一并展示，确认后执行。
2. 转换旧版 doc：如输入为 doc，使用 LibreOffice 或 soffice 转为 docx。
3. 解析源文档：读取段落、表格和章节文本。
4. 识别标题层级：根据 1、1.1、1.1.1、1.1.1.1 等编号映射标题样式。
5. 清理乱格式：移除源文档中干扰模板的直接字体、字号、颜色，同时保留加粗、斜体、下划线、高亮和上下标。
6. 套用参考模板：按实际样式 ID 映射标题，合并源列表与模板编号；正文行距、段距继承模板，页眉图片独立命名，防止替换正文图片。
7. 处理表格：保留表格文字，应用基础网格和单元格边距。
8. 输出文件：默认在当前任务输出目录生成唯一 docx 文件名；若重名则提出唯一文件名并纳入方案确认。若用户要求覆盖已有目标文件，先说明具体目标及影响并确认；始终拒绝覆盖模板或待排版文件。
9. 生成报告：输出前自动检查内容完整性，再使用模板和源文件运行严格结构 QA；正文、图片、编号和有效语义格式检查失败时不得交付。
10. 渲染检查：使用包内 scripts/render_docx.py 生成 PDF 和逐页 PNG，检查每一页的裁切、溢出和页眉页脚；不依赖外部 Documents 技能。
11. 结果确认与交付：展示预览及 QA 结论，用户确认后交付最终文件；未回复时保留待确认结果，检查未通过时不得作为最终结果交付。

核心能力
模板迁移：从参考 Word 复制样式系统、页眉页脚、页面设置和编号体系。
内容保留：保留源文档正文、标题文本、表格文字和语义强调，不主动重写内容。
标题识别：识别数字编号章节并映射到 Word Heading 1、Heading 2、Heading 3、Heading 4，仅在模板自动编号时移除可见前缀。
乱格式清理：清除源文档中常见的直接字体、字号、颜色覆盖。
表格基础整理：为表格应用可读边框和单元格边距。
页眉页脚迁移：复制参考模板正文页的页眉页脚和页码结构。
结构 QA：比对模板和源文件，检查内容数量、语义强调、节属性、页眉页脚引用和部件完整性。
脱敏示例模板：内置 reference_bid.docx 仅用于演示和回归测试。

支持范围
支持输入：docx，doc 需要 LibreOffice 或 soffice。
支持输出：docx、JSON 处理报告、JSON 结构 QA 报告。
支持模板来源：用户提供的参考 Word。
支持标题识别：1、1.1、1.1.1、1.1.1.1 等数字编号标题。
支持表格处理：基础网格、边距、文字保留。
支持长文档：可以处理单节长 Word，但必须逐页渲染检查，不以抽样替代。

不支持或需要人工复核
不直接排版 pdf、pages、wps。
不自动改写正文、补充业务内容。
不凭空生成复杂品牌模板。
不保证不规范标题一次性全部识别准确。
不保证复杂合并单元格、超宽表格完美自适应。
多节源文件（含横竖混排）、图片项目符号、链接式编号会被明确拦截，需另行制定处理方案。
不处理图片内容识别、裁剪、美化、滤镜。
模板正文不会自动拼接到输出；缺失封面、目录、审批页字段时，需要用户补充或人工确认。

输入参数
参考模板 Word：必填，提供排版样式来源，docx 优先。
待排版 Word：必填，提供正文内容来源，docx 优先。
输出路径：可选；默认使用当前任务输出目录和唯一文件名，重名时自动换名。
页眉文字：可选，不指定时保留模板页眉，明确指定时才替换页眉首个文本段落。
报告路径：可选，输出 JSON 处理报告。

输出结果
formatted.docx：排版后的 Word 文档。
formatted.report.json：处理报告，包含输入输出路径、标题识别统计、复制的模板部件。
formatted.qa.json：结构 QA 报告，包含段落、表格、节属性、页眉页脚和样式统计。
渲染 PDF 和逐页 PNG：必须生成并逐页复核；是否随最终 Word 一起交付由用户决定。

报告示例
处理状态：完成
输出文件：formatted.docx
参考模板：reference.docx
待排版文件：messy.docx
段落数量：128
表格数量：6
标题识别：Heading 1 为 8 个，Heading 2 为 24 个，Heading 3 为 37 个
复制模板部件：styles.xml、numbering.xml、theme1.xml、fontTable.xml、settings.xml、headers、footers
QA 状态：页眉页脚引用存在，样式部件存在，编号部件存在，需要渲染检查表格是否溢出

异常处理
文件无法解析：提示用户另存为 docx 后重试。
doc 转换失败：检查 LibreOffice 或 soffice 是否可用。
标题层级识别不足：保留为正文或提示人工确认。
模板本身没有页眉页脚：按模板保留无页眉页脚状态；引用存在但部件缺失时 QA 报错。
表格过宽：保留内容并提示渲染复核。
字体缺失：依赖 Word 或系统字体替换，最终需要视觉检查。
源文档缺少封面字段：需要用户补充字段或人工确认。

安全与隐私
处理过程在本地工作目录执行。
不主动上传用户文档到外部服务。
不覆盖参考模板或待排版 Word；默认也不覆盖已有输出，而是自动生成唯一文件名。
显式输出路径重名时脚本拒绝写入；只有获批覆盖对应输出或报告后才传 --force，该参数不能绕过原始输入保护。
方案、结果验收分别确认；用户要求覆盖已有目标文件时，还须明确确认该目标与覆盖影响。同一阶段已获确认的具体方案不重复询问。
内置参考模板为脱敏示例，不包含真实客户信息。
生产使用时建议用户提供自己的参考模板。

运行依赖
Python 3.10+
python-docx、lxml：见 requirements.txt
LibreOffice 或 soffice：用于 doc 转 docx，以及文档渲染检查
PyMuPDF 或 Poppler（pdfinfo + pdftoppm）：用于生成逐页 PNG
首次运行前执行 python scripts/render_docx.py --check；在 WorkBuddy 任务目录运行时使用技能安装目录下的绝对脚本路径。
排版与 QA 的 --heading-numbers 选项必须一致。渲染目录必须是新目录，重名时另选唯一目录名。
缺少依赖或不能逐页查看时，明确标注视觉验收未完成，不交付为已验收结果。

验收清单
输出文件可以正常打开。
页面尺寸、页边距、页眉页脚接近参考模板。
标题层级出现在 Word 样式系统中。
正文不再保留明显的乱字体、乱字号、乱颜色。
表格文字完整，没有明显裁切。
处理报告和 QA 报告均已生成，且严格 QA 状态为 pass。
渲染页面没有文字重叠、页眉页脚断裂或表格溢出。

本地版本记录

发布版本记录：1.0.1；本地修订：2026-09-30-integrity1。本次修复输出保护、正文与图片完整性、编号合并、样式映射和语义格式保留，补入独立渲染脚本及回归测试。仅更新当前 SkillHub 开发包，尚未发布，也未同步 Codex 安装版。
