name: "official-doc-writer" description: "党政机关公文生成技能,符合GB/T 9704-2012,支持通知、报告、请示、函等10类公文,可导出Word。触发:公文生成、写报告、正式文件、通知、请示、official document、government doc。" author: "neuqik@hotmail.com" license: "MIT"
党政机关公文生成技能
生成符合《党政机关公文处理工作条例》和 GB/T 9704-2012《党政机关公文格式》的公文,支持通知/报告/请示/函/通报/纪要/决定/意见/批复/命令 10 类,可导出 Word。
快速使用: python scripts/generate_official_doc.py
字体依赖
必需字体:方正小标宋_GBK(发文机关标志/标题)、仿宋_GB2312(正文)、黑体(一级标题)、楷体_GB2312(二级标题)、宋体(页码)。
- 自动安装:
python scripts/install_fonts.py(Windows 需管理员) - 验证:
python scripts/install_fonts.py --check - 详细说明见
fonts/README.md与scripts/install_fonts.py
对话交互
scripts/dialog_manager.py 逐步引导收集要素:
- 核心要素:公文类型(选择式)、发文机关、主送机关、标题、成文日期(默认今天)、正文要点
- 可选要素:发文字号、密级、紧急程度、签发人(上行文)、附件、抄送机关、印发机关/日期
- 智能提示(
scripts/smart_prompts.py):开头语/结尾语推荐,如通知"为……,现……如下:"/"特此通知。"
格式规范(GB/T 9704-2012)
版面:A4(210×297mm);天头 37mm±1、订口 28mm±1;版心 156×225mm;每面 22 行×28 字。 字体字号:标题/发文机关标志=小标宋2号;正文=仿宋3号;一级标题=黑体3号;二级标题=楷体3号;三级/四级=仿宋3号;页码=宋体4号半角。 编排:版头(发文机关标志+发文字号〔年份〕序号+红色分隔线);主体(标题"机关+事由+文种"、主送机关、正文,层次 一、(黑体)→(一)(楷体)→1.(仿宋)→(1)(仿宋)、附件、成文日期);版记(分隔线+抄送+印发机关/日期)。
完整标准见
references/GBT_9704-2012_党政机关公文格式.md
工作流程
- 需求收集:提取 公文类型/发文机关/主送机关/发文字号/标题/正文/成文日期/附件(可选)/抄送(可选)
- 生成文档:
from scripts.generate_official_doc import create_official_document
content = {'issuer':'发文机关','doc_number':'发文字号','title':'标题','recipient':'主送机关','body':['段落1'],'signer':'署名','date':'成文日期','attachment':'附件(可选)','copy_to':'抄送(可选)'}
doc = create_official_document('公文类型', content)
doc.save('输出.docx')
- 格式校验:标题/发文字号/正文层次/语言/要素齐全
- 语言规范:成文日期用阿拉伯数字(2026年3月13日);序号不编虚位(1号);统计用阿拉伯数字,概数用汉字(三五天)。
Iron Law 铁律
- 严格符合 GB/T 9704-2012,不得为美观偏离标准。
- 必备要素(发文机关、标题、主送机关、正文、成文日期、印章/署名)缺一不可。
- 使用规范公文语言,禁口语化/网络化。
- 必须用标准字体,缺失时提示安装,不得静默替换。
- 生成前必须预览并获用户确认。
- 违规:❌非标准页边距 ❌缺要素 ❌口语化 ❌字体缺失不提示 ❌跳过预览
- 合规:✅严格标准参数 ✅输出前查要素清单 ✅规范表述 ✅字体缺失主动提示 ✅先预览后生成
Red Flags 红旗
- L1 输入:INPUT-ODW-001 信息不足确定类型→🔴引导补充;002 发文机关为空→🔴;003 正文<20字→🟡
- L2 执行:EXEC-ODW-001 格式参数不合标准→🔴修正;002 口语化→🟡改写;003 缺字体静默替换→🔴中止;004 跳过预览→🔴回退
- L3 输出:OUTPUT-ODW-001 Word 打不开→🔴查字体;002 与预览不一致→🔴;003 路径越界→🟡
- 处理:🔴立即停止上报等待指示 | 🟡记录尝试自动修复 | 🔵记录正常继续