公文排版
按 GB/T 9704-2012 生成规范的党政机关公文 Word。核心是可复用脚本 scripts/gen_gongwen.py:只需把内容写成 JSON 配置即可得到排好的 .docx,无需手调版式。
工作流
- 确认文种与版式
- 判定文种:报告(上行汇报)、通知(下行部署)、函(不相隶属商洽)、请示(上行请求批准)等,据此确定语气与结束语;
- 判定红头/白头:用户点名“红头/正式发文”或文种为通知、函 → 红头(mode:"red");情况说明、报告类默认白头(mode:"white")。 - 收集内容要素:标题、主送机关、正文(按“一、/(一)/1.”层级组织)、发文机关署名、成文日期;红头需发文机关标志、发文字号。缺失信息一律用占位(××、〔年份〕),不得编造。
- 编写配置并生成:把内容写入
config.json(结构见脚本头注释),执行:
bash python3 <skill>/scripts/gen_gongwen.py config.json
脚本自动处理:A4 页面边距(上3.7/下3.5/左2.8/右2.6cm)、行距固定 28 磅、标题二号小标宋两行梯形居中、主送顶格、正文三号仿宋首行缩进 2 字符、一级标题黑体/二级楷体/三级仿宋、落款署名居中于日期且日期右空四字、页码“— 1 —”(单右双左)、红头版头与版记。 - 生成后必做校验:按
references/format-spec.md第五节逐项执行——①python-docx 回读结构(字体 eastAsia/字号/行距/缩进/落款/页码);②soffice --headless --convert-to pdf渲染后逐页检查(落款不跨页、标题不孤行、无空白页、页码位置正确);③核对要素与用户要求一致。发现问题直接改配置/脚本后重跑。 - 交付:用 present_files 交付 .docx;告知用户占位项(文号、落款单位、日期、联系人等)需自行替换。
配置示例
{
"mode": "white",
"title": "昆明市教育体育局关于政务云资源优化调整有关情况的报告",
"recipient": "市数据局:",
"body": [
{"type": "para", "text": "根据贵局工作部署,我局对相关资源使用情况进行了核查,现将有关情况报告如下:"},
{"type": "h1", "text": "一、同意按优化建议调整的项目"},
{"type": "para", "text": "昆明市学生资助门户网站、昆明市学生资助管理信息系统;昆明市智慧教育(一期)建设项目。我局将配合做好调整实施及业务保障。"},
{"type": "h1", "text": "二、因业务原因无法降配的资源"},
{"type": "para", "text": "昆明市教育资源平台建设JYJHCFWQ02(10.221.5.14,中间件从节点)、JYJJCSJK02(10.221.5.21,数据库备用节点)。两资源系平台主备、主从高可用架构必需节点,日常使用率低属正常设计,非资源冗余;降配将影响业务连续性和数据安全,需维持现有配置。"},
{"type": "para", "text": "综上,恳请贵局对上述2个资源维持现有配置予以审核同意。我局将持续加强资源监测和精细化管理,配合做好优化工作。特此报告,请予审阅。"}
],
"signature": "昆明市教育体育局",
"date": "2026年9月2日",
"output": "报告.docx"
}
边界与说明
- 本技能只负责排版与通用公文版式,不替代公文内容写作;正文内容由用户提供或按对话确认。
- 标题过长自动分两行(上长下短);也可用
title_lines手动指定分行。 - 字体名(方正小标宋简体、仿宋_GB2312、黑体、楷体_GB2312)写入文档;目标机器缺字体时 Word 会自动替换,可提示用户按单位字体微调。
- 如需信函格式(函)红头(机关标志不加“文件”二字、首页不显页码)等特殊版式,按
references/format-spec.md第四节扩展scripts/gen_gongwen.py。
Resources
scripts/gen_gongwen.py— 版式生成脚本(读 JSON 配置,产出 docx)references/format-spec.md— GB/T 9704 版式速查与验收清单(生成后校验必读)