Install
openclaw skills install @chesaram/gongwen-format-pro党政机关公文标准排版与质检校对技能,严格依据《党政机关公文格式》GB/T 9704-2012。当用户明确要求对公文做以下操作时使用:①排版——将 Markdown/TXT/DOCX/PDF(文本层) 草稿转换为国标合规的 Word 公文(红头、发文字号、2号小标宋标题、3号仿宋正文、一/(一)/1./(1)四级标题、附件、署名与成文日期、版记、页码);②质检——扫描已有 .docx 公文,按高/中/低三级输出不合规清单与整改建议;③文风净化——在用户要求时,对口语、网络用语、AI 腔与常见错别字做表层规范化(实质性内容只标记不改写)。适用场景(需用户主动提出):公文排版、红头文件、公文格式、发
openclaw skills install @chesaram/gongwen-format-pro一个技能覆盖公文成文的三个环节:先净化文风 → 再国标排版 → 后合规质检。
用户是公务员、文员,坐在对话框前,不是终端前。本文档里的所有命令行是给你执行的,不是给用户看的。
scripts/ 下的脚本。除非用户明确说"给我命令我自己跑",否则回复里不出现 python scripts/... 这类代码块。.docx 与报告交付给用户。拿到用户请求后,先判断落在哪一档,再决定调用哪个脚本。三个模式可单独用,也可串联。
| 用户意图信号 | 模式 | 脚本 |
|---|---|---|
| 公文排版、红头文件、按国标排公文、不规范 Word/TXT 重排为公文 | A. 排版 | scripts/gongwen_format.py |
| 检查格式、这份公文合规吗、质检、找问题、校对格式、格式审核 | B. 质检 | scripts/gongwen_check.py |
| 统一文风、去口语、去网络用语、去 AI 味、改成公务书面语、润色成公文语言、纠错别字 | C. 文风净化 | scripts/style_clean.py |
| 「把这篇草稿弄成正式文件」这类笼统请求 | C → A → B 串联 | 三个都跑 |
关键词匹配会失灵,下面几种情况按此处理,不要反问一堆问题把用户挡在门外:
| 情况 | 处理 |
|---|---|
| 用户只丢来一段文字,什么都没说 | 默认跑 模式 C(净化风险最低、不需要任何额外要素),然后问一句:「已按公务书面语初步净化。需要我排成正式公文吗?如果要红头,请告诉我发文机关和发文字号。」 |
用户丢来一个 .docx,只说「看看」 | 默认跑 模式 B 质检,报结论,再问是否需要按国标重排 |
| 说了「排版」但没给标题 | 从正文首行猜标题,猜完必须复述确认:「我按《××》作为公文标题,对吗?」 |
| 说了「红头文件」但没给机关名 | 先按无红头版式生成,交付时说明:「未提供发文机关名称,暂未加红头。告诉我机关全称和发文字号即可补上。」不要用「××市人民政府」这类占位符冒充真实机关 |
| 判不准是哪种 | 先问用户确认意图(给出「只净化 / 只质检 / 净化+排版+质检」等选项),不自行跑全链路;用户确认后再执行 |
用户常会顺口说「帮我写个关于××的通知」。本技能不代拟公文内容,遇到时这样答:
我可以负责格式和文风,但公文内容涉及具体政策、数据和责任分工,需要由您来定。 您把要点写下来(哪怕是几句大白话),我来做三件事:润色成公务用语 → 按国标排版 → 出质检报告。
不要一边说"不代拟"一边生成一篇编造的通知——格式再标准,内容是假的就是废纸。
脚本只依赖 python-docx。首次使用先确认:
python -c "import docx" || pip install python-docx
PDF 导出不在本技能范围内:排版产物为标准 .docx,可用 Word/WPS「另存为 PDF」获得 PDF 版。
字体处理:脚本内置字体回退链,仅以只读方式查询本机已安装字体列表用于回退映射(不读取其他环境信息)。国标要求的「方正小标宋简体」在多数 Windows/macOS 上并未预装,此时自动回退到宋体/华文中宋并在运行日志中打印实际映射。若必须严格写入国标字体名(送印刷厂、对方机器有字体),加 --strict-font。
正文来源支持三种:--input draft.md / draft.txt / draft.docx,或写进 JSON 配置的 body_text 字段。
正文里的层级用下面任一种写法,脚本都能识别并套用正确字体:
一、提高思想认识 → 黑体 3号,顶格空两字
(一)压实属地责任 → 楷体 3号
1. 建立台账 → 仿宋 3号
(1)逐点登记 → 仿宋 3号
Markdown 的 #/##/###/#### 会被映射到上面四级;**加粗**、- 列表 等标记会被清理,不会漏进正文。
python scripts/gongwen_format.py \
--title "××市人民政府关于进一步加强城市排水防涝工作的通知" \
--input draft.md \
--output 通知.docx
python scripts/gongwen_format.py \
--redhead "××市人民政府" \
--doc-number "×政发〔2026〕12号" \
--title "××市人民政府关于进一步加强城市排水防涝工作的通知" \
--recipient "各区县人民政府,市政府各部门、各直属机构" \
--input draft.md \
--attachment "1. 城市易涝点位整治清单" \
--attachment "2. 排水防涝责任分工表" \
--author "××市人民政府" \
--date 2026-08-06 --seal \
--notes "此件公开发布" \
--cc "市委办公室,市人大常委会办公室" \
--print-author "××市人民政府办公室" --print-date 2026-08-07 \
--output 通知.docx
要素多时改用配置文件更清爽(模板见 gongwen_config.demo.json):
python scripts/gongwen_format.py --config my.json --output 通知.docx
命令行参数优先级高于配置文件,可以混用。
--signer "张××"。签发人与发文字号同一行,发文字号左空一字、签发人右空一字;发文机关标志上边缘改为距版心上边缘 80mm。--redhead "××市发展改革委;××市财政局",--author 同理用 ; 分隔。--minutes,自动取消版记与印章版式。--copies 000001 --secret-level "机密★20年" --urgency 特急,三要素按国标编排在首页版心上方左右两侧。--attachment-doc "附件1.md::城市易涝点位整治清单"。--no-page-num。国标要求全篇编码,--no-first-page-num 仅为迁就个别单位惯例,默认不要用。排版脚本结束后紧接着跑一次质检,把报告结论同步给用户:
python scripts/gongwen_check.py --input 通知.docx --report 质检报告.md
对任何 .docx(不限于本技能生成的)做逐项扫描:
python scripts/gongwen_check.py --input 待检公文.docx --report 质检报告.md
检查覆盖 6 组共 30+ 项:页面设置、标题、正文与层级字体、版头要素、署名日期与版记、结构完整性。详细项目见 references/qc-checklist.md。
输出分三级,向用户汇报时按级别归并说明:
| 级别 | 含义 | 处理建议 |
|---|---|---|
| 高 | 明确违反国标强制条款,如页边距错、正文非3号仿宋、纸张非A4 | 必须改 |
| 中 | 不符合通行规范或国标推荐做法,如版记字号、页码位置、成文日期用汉字 | 建议改 |
| 低 | 提示性问题,如缺少可选要素、行距略有偏差 | 酌情 |
结论只有两种:合规(无高级别问题)/ 不通过(存在高级别问题)。不要自行放宽。
加 --json 可拿到结构化结果,便于程序化处理。
python scripts/style_clean.py --input draft.md --output draft_clean.md --report 文风报告.md
处理逻辑分两档,这是本模式的核心设计:
2026年08月06日→2026年8月6日、发文字号 [2026]12号→〔2026〕12号、附件说明去尾标点)、半角标点转全角、emoji 清除。向用户交付时,务必把 FLAG 清单单独列出来请其确认,不要替用户拍板。
当净化报告出现 FLAG 项(如"赋能、闭环、抓手、我觉得"),不要悄悄改掉,也不要只丢一份报告了事——把决定权交回用户:
文风净化发现 N 处建议人工确认的用法(不改变原文,仅供您定夺):
- "赋能基层治理" → 建议改为"提升基层治理效能"([替换] / [保留])
- "形成闭环" → 建议改为"健全工作闭环机制"([替换] / [保留])
- "我觉得应按…" → 建议改为"经研究,拟按…"([替换] / [保留]) … 回复"全替换"我立即批量改写;回复"保留 X、Y"则原样保留,其余替换。
其它参数:--dry-run 只出报告不改文件;--keep-markdown 保留 # 等标记以便后续交排版脚本识别层级(串联使用时建议加上);--no-punct 跳过标点规范化。
用户丢来一篇脏草稿要「正式文件」时:
# 1. 净化文风,保留 Markdown 层级标记
python scripts/style_clean.py --input draft.md --output clean.md --report 文风报告.md --keep-markdown
# 2. 国标排版
python scripts/gongwen_format.py --config my.json --input clean.md --output 正式文件.docx
# 3. 合规质检
python scripts/gongwen_check.py --input 正式文件.docx --report 质检报告.md
三份产物一起交付:正式文件.docx + 文风报告.md + 质检报告.md。
给用户的回复里要包含:
--strict-font。用户看不到命令行黑盒,但要知道"在跑什么、跑完了没"。处理过程中给一句短反馈,处理完给一句结论,中间不刷进度、不贴命令:
正式文件.docx(GB/T 9704-2012 合规);②文风报告.md;③质检报告.md。质检结论:合规(高 0 / 中 1 / 低 2)。」若本机缺字体发生回退,把字体实际映射合并进这句结论(见第 3 条要求)。若有 FLAG 待确认项,附一句:「另发现 N 处文风建议确认项,见文风报告,回复'全替换'即可批量处理。」
--seal-image 仅做图片嵌入。references/gb9704-2012.md。遇到与本单位现行发文格式规定冲突的,以用户单位规定为准并提示差异。references/faq.md。当运行环境无法生成 .docx(无 python-docx、无代码执行权限),按"交互铁律"第 2 条,用 Markdown 渲染一份红头预览,让用户肉眼核对层级、要素、字体映射是否合理。这不是成品,是给用户的"校对稿"——必须明确告诉用户:"以上是预览稿,不是 Word 成品,正式版请按模式 A 用脚本导出。"
预览写法对照:
| 公文要素 | Markdown 写法 | 模拟字体 |
|---|---|---|
| 发文机关标志(红头) | > 引用块 + 加粗,支持红色时标红 | 方正小标宋/宋体,红色 |
| 发文字号 | 居中一行,引用块内 | 仿宋,红色 |
| 公文标题 | ### **标题** | 2号小标宋 |
一级标题 一、 | ### **一、xxx** | 黑体 |
二级标题 (一) | **(一)xxx** | 楷体 |
三级标题 1. | 1. xxx | 仿宋 |
| 正文 | 普通段落 | 仿宋 3号 |
| 版记 | > 引用块模拟 | 4号宋体 |
红头预览示例:
> ### **××市人民政府文件**
> ×政发〔2026〕12号
### **××市人民政府关于进一步加强城市排水防涝工作的通知**
各区县人民政府,市政府各部门、各直属机构:
一、提高思想认识
(一)压实属地责任
1. 建立易涝点位台账
……
(此件公开发布)
> 抄送:市委办公室,市人大常委会办公室
预览仅用于要素与层级核对,正式版务必按第七、八节用脚本导出为标准 Word。
references/gb9704-2012.md — 国标参数速查表(页面、字体、要素位置)references/qc-checklist.md — 质检项清单与判定阈值references/style-guide.md — 文风词表与替换规则说明references/cli-reference.md — 三个脚本的完整参数手册references/faq.md — 常见问题(字体缺失、质检不通过、文件被占用、层级错乱等)