社区讨论V2EX 技术
战战兢兢,非程序员的第一个开源项目,以国标为基础的公文生成与机检工具
我不是程序员,但是从小就对计算机、信息技术、互联网十分感兴趣。初中时期,在只有 ADSL 网络的网吧熬几个通宵,用 Dreamweaver 和 FrontPage 做了人生第一个个人网站,那真是回忆满满。到现在四十多岁,还保持着对这些技术方面的兴趣和热爱。尤其最近几年 AI 大行其道,突然发现可玩儿的东西真的太多了,也就跟着折腾了很多玩意儿。 我在上市公司、国企干了 20 年。现在跟政府、央国企打交道多,天天要读写材料。然后从满足自己的实际需求出发,用 Claude 整了一些相关的工具。就把公文单独拿出来做成了一…
内容摘要
我不是程序员,但是从小就对计算机、信息技术、互联网十分感兴趣。初中时期,在只有 ADSL 网络的网吧熬几个通宵,用 Dreamweaver 和 FrontPage 做了人生第一个个人网站,那真是回忆满满。到现在四十多岁,还保持着对这些技术方面的兴趣和热爱。尤其最近几年 AI 大行其道,突然发现可玩儿的东西真的太多了,也就跟着折腾了很多玩意儿。
我在上市公司、国企干了 20 年。现在跟政府、央国企打交道多,天天要读写材料。然后从满足自己的实际需求出发,用 Claude 整了一些相关的工具。就把公文单独拿出来做成了一个小项目: 公文生成与机检工具 gongwen-kit 。代码主要是跟 Claude Opus 5.5 一起写的,测试和真实文件回放是我一遍遍盯着做的。第一次开源,心里没底,希望能帮到经常读写材料的朋友,也恳请各位大佬指点。
地址: https://github.com/imhuhe/gongwen-kit 主要功能:按国标出公文、查公文、修公文。
PS:上面的文字都是我手打的,我不喜欢大片大片的复制 AI 文本。但是下面的内容都是 Claude 写的,主要是内容太多,需要排版方便大家浏览,还请谅解!
能做什么
出稿 :通知、报告、请示、函、纪要、管理办法,红头和不带红头的政府、企业文书都能出
机检 :每份稿子出完自动查三道,哪一道不过不算出稿
体例:版心、层次序数、日期和发文字号写法、全半角
数字:表格合计与分项、跨表同一个指标、正文说「以下三点」后面是不是真列了三点
文风:异形词、中文里混进来的半角标点;套话和空词只提示
修稿 :手上已经写好的 .docx 交给它修
版式直接改:版心、字体字号、页码
体例写成 Word 修订痕迹,在「审阅」里逐条接受或拒绝
数字一个不改,只插批注,指出哪里对不上
相对突出的几点功能
数字前后对得上 :合计和分项、同一个指标在不同地方的取值、说了几点列了几点,这些人读稿时最容易漏
改了什么一目了然 :所有体例改动都留修订痕迹,全部拒绝就回到原文,一字不差
数字不替你改 :合计错还是分项错,工具判断不了,所以只标出来,由写稿人定
拿真稿子验过 :自己真实的两百六十八份文稿跑了一遍修复,全部正常
版式量过 :关键尺寸在 Word 里渲染后实测,比如版头标志上缘距版心 35.05 毫米,标准是 35
数据不出电脑 :工具全在本机运行,装好以后不联网
怎么用
装进 AI 用 :作为 skill 装进 Claude Code 或 OpenCode ,其他 AI 未实测。直接说「按公文格式起草一份关于××的通知」
命令行出稿 :照样张改一份稿源,一条命令出 Word ,机检自动跑
修现成稿 : node tools/fix-doc.js 稿子.docx ,输出 稿子-修订.docx ,原文件不动
先看样张 :七份样张的 PDF 在仓库 docs/样张/ ,网页上可以直接看
几点限制
标题默认用方正小标宋简体,这个字体要自己装
版式只在 Mac 版 Word 上测过,Windows 版 Word 和 WPS 没有逐项验;程序本身在 Windows 、Mac 、Linux 上都跑过测试,没有问题
不校对内容和政治表述,写什么、怎么表态,责任在写稿人
让 AI 起草正文时,内容去哪取决于你自己用的模型;涉密材料自己写,只交给它排版和检查
几个技术上的取舍
Node 写的,依赖只有 docx 、jszip 、sax ,全部本地运行
修复直接改 OOXML:体例改动写成 w:ins / w:del ,测试断言「拒绝全部修订后正文逐字等于原文」
改不了的元素不碰:超链接、域、已有修订、文本框、表格里的数字,碰到就跳过,留给批注
每条机检规则都配一份必错的标本,规则报不出来测试就失败;可能误报的规则只提示不拦稿
用 268 份真实 .docx 文件回放过修复:0 崩溃、0 不一致
想听的意见
WPS 经手的稿子、各单位自己的模板、带封面和目录的长文,修完之后哪里不对
代码结构和测试写法,哪些部分外行
回帖或者提 issue 都行
最后,感谢各位看帖、回帖,来 V2EX 也有六年了,真心希望能和大家交流、向大家学习!😄
资讯来源
V2EX