| name | gongwen-writing-formatting |
| description | 按党政机关公文写作与排版规范起草、修改、校对和排版中文公文,并直接生成 .docx Word 文档和/或 .pdf 文件。用户要求公文写作、公文排版、通知/请示/报告/函/纪要等文种起草、按公文格式生成 Word/PDF、检查中文公文是否符合党政机关公文处理和 A4 版式要求时使用。 |
公文写作排版
第一句话
当用户要求生成可交付文件,但没有明确说明输出格式时,先问一个简短问题:
请问这份公文需要输出 Word(.docx)还是 PDF?也可以说“两者都要”。
如果用户已经说明要 Word、PDF 或两者都要,不要重复询问。
工作流程
- 先确认输出格式:
docx、pdf 或 both。
- 只补问缺失的关键信息:文种、标题/事由、主送机关、发文机关、成文日期、正文要点、附件、属于上行文/下行文/平行文哪一类。
- 起草或修改正文时,读取
references/gongwen-standards.md,按其中的文种规则、行文规则、写作要求和排版标准执行。
- 根据公文内容整理 JSON 规格文件,然后运行
scripts/generate_gongwen_document.py 生成文件。
- 检查生成文件是否存在;如果生成 PDF,尽量检查页数或抽取文本确认内容正常。
- 向用户返回生成文件的绝对路径。
生成脚本
使用内置脚本稳定生成 Word/PDF:
python3 /Users/kent/.codex/skills/gongwen-writing-formatting/scripts/generate_gongwen_document.py \
--spec /absolute/path/spec.json \
--format docx \
--out-dir /absolute/output/dir
如果默认 Python 缺少 docx 或 reportlab,先调用 load_workspace_dependencies,使用其返回的内置 Python 运行时。
参数说明:
--format docx:只输出 Word 文档。
--format pdf:只输出 PDF。
--format both:同时输出 Word 和 PDF。
--print-template:打印 JSON 规格模板。
--demo:生成一份样例文档,用于测试脚本是否可用。
JSON 规格示例
最小可用规格如下:
{
"title": "关于开展安全生产检查工作的通知",
"subtitle": "",
"issuer_mark": "某某单位文件",
"doc_number": "某发〔2026〕1号",
"recipient": "各部门:",
"body": [
"为进一步加强安全生产管理,现就有关事项通知如下。",
"一、检查范围",
"(一)办公区域。",
"1. 消防设施、用电安全、应急通道等情况。",
"二、工作要求",
"请各部门高度重视,按时报送检查情况。"
],
"signature": "某某单位",
"date": "2026年5月24日",
"attachments": [
{
"title": "安全生产检查表",
"content": ["一、基本情况", "二、问题清单", "三、整改措施"]
}
],
"copy_to": "",
"print_org": "",
"print_date": ""
}
默认排版标准
除非用户提供了单位模板或明确要求,否则按以下规则排版:
- 纸张:A4。
- 页边距:上 3.7 厘米、下 3.5 厘米、左 2.8 厘米、右 2.6 厘米。
- 页眉/页脚距离:页眉 1.5 厘米,页脚 2.4 厘米。
- 正文:3 号仿宋,行距 30 磅,约每行 28 个汉字、每页 22 行。
- 标题:2 号小标宋,居中;副标题:3 号楷体,居中。
- 结构层次:
一、 用黑体;(一) 用楷体;1. 和 (1) 用仿宋加粗。
- 日期:用阿拉伯数字将年、月、日标全。
- 页码:4 号宋体阿拉伯数字,单面输出时居中编排在页脚。
写作要求
- 使用公文语言:准确、简洁、具体、可执行,避免宣传腔和营销式表达。
- 先判断文种是否正确。不要在报告中夹带请示事项。
- 写请示时,坚持一文一事,明确请求事项,结尾使用规范请批表述。
- 写报告时,只汇报工作、反映情况或答复询问,不提出审批请求。
- 写函时,用于不相隶属机关之间,语气平等、事项明确。
- 写通知时,写清对象、事项、时间要求、材料要求和责任单位。
- 涉及正式发文、密级、法务或合规风险时,只提供起草和排版支持,并提醒用户提交责任部门最终审核。