kordoc公文写作审查:19条例式规则+12条文体规则,AI校对清单与误报调优
【免费下载链接】kordoc모두 파싱해버리겠다 — HWP·HWPX·PDF·Office 문서를 Markdown으로. 양식 자동 채우기와 신구대조를 갖춘 CLI·MCP 서버 | Convert Korean documents (HWP, HWPX, PDF, Office) to Markdown — CLI and MCP server with form filling and diff项目地址: https://gitcode.com/gh_mirrors/ko/kordoc
kordoc 是韩国 HWP·HWPX·PDF·Office 文档转 Markdown 的开源工具,内置的**公文写作审查(공문서 검수)**是它的隐藏王牌:kordoc lint一条命令即可按《行政业务运营规程》施行规则检查 19 条例式书写规则,--munche再叠加 12 条公文文体规则,相当于给你的公文原稿配了一位不知疲倦的 AI 校对员。📝
一套引擎,两把尺子:表记 vs 文体
kordoc 的公文审查由两个独立模块组成,各管一半问题:
| 模块 | 检查什么 | 类比 |
|---|---|---|
| src/hwpx/gongmun-lint.ts | 表记法——"怎么写":日期、时间、金额、标点 | 格式审校 |
| src/hwpx/munche-lint.ts | 文体——"以什么形式结尾":名词结句、修辞、行长 | 语感审校 |
关键设计哲学是只劝告、不拦截(조언용):所有规则只产出警告,不阻止文档生成;kordoc lint独立命令在存在 error 级违规时以退出码 1 结束,可直接接入 CI。
AI 校对清单:kordoc lint一步上手
三种常用姿势
npx kordoc lint 报告.md # 表记法 19 条例式规则检查 npx kordoc lint 报告.md --munche # 追加 12 条开条式(개조식)文体检查 npx kordoc lint 报告.md --munche --json # JSON 输出,供 AI/脚本二次处理命令实现见 src/cli/commands-generate.ts,完整用法收录于 docs/usage.md。
几个贴心细节:
- stdin 支持:
kordoc lint -可接收管道。已有 HWPX 成品?用kordoc 文档.hwpx | kordoc lint -先转成 Markdown 文本再检查,不用手工导出。 - 二进制守卫:直接把
.hwpx文件喂给 lint 会明确报错并提示正确的管道用法——源码注释里提到,误读压缩字节曾实测爆出 1,193 条"幽灵违规",被这个守卫彻底拦截。 - 机器可读:
--json只写 stdout、人类可读报告走 stderr,与validate命令的通道约定一致,方便写进自动化流水线。
生成时自动预警
用 Markdown 生成公文 HWPX 时(generate --preset 보고서等),kordoc 会自动对原稿跑一轮审查,最多输出 5 条预警到 stderr:表记法违规、开条式文体违规(仅限报告·计划书·개조식预设)。src/cli/commands-generate.ts 中可见这两个检查点;MCP 服务端的生成工具同样内置(src/mcp/tools-generate.ts),AI 代理写公文时也会即时收到校对意见。
19 条例式规则速查:日期·时间·金额·标点
规则依据行政안전부《行政业务运营编览》,共 13 条原版 + 6 条 v4.12.1 补强 = 19 条例式核心规则,另加 v4.13.0 的连字符日期规则与 v4.9.0 的 2 条 AI 文风规则(详见 docs/gongmunseo-engine-spec.md 表记法章节)。
📅 日期与时间(8 条)
| 规则码 | 级别 | 检查什么 | 修正示例 |
|---|---|---|---|
DATE_NO_SPACE | error | 日期点号后必须空一格 | 2025. 1. 6. |
DATE_ZERO_PAD | error | 月、日不补零 | 2025. 1. 6.(2025. 01. 06.✕) |
DATE_2DIGIT_YR | error | 年份必须四位 | 2025.('25✕) |
DATE_NO_END_DOT | warning | 日期末尾要有点号 | 2025. 1. 6. |
DATE_HYPHEN | warning | 连字符日期转点号(v4.13.0,直接给出转换值) | 2026-07-18→2026. 7. 18. |
TIME_AMPM | error | 24 小时制,禁用"오전/오후" | 09:00、15:30 |
TIME_24H | warning | 避免"24시"歧义 | 18:00까지 |
TIME_COLON_SP | error | 冒号两侧贴紧 | 13:20(13 : 20✕) |
💰 金额与结尾(3 条)
| 规则码 | 级别 | 检查什么 | 修正示例 |
|---|---|---|---|
MONEY_CHEONWON | error | 禁用"천원"缩写 | 345,000원 |
MONEY_GEUM_SP | warning | "금"与数字连写 | 금113,560원 |
MONEY_NO_HANGUL | warning | 数字后括号内须韩文大写(v4.13.0 直接给出大写值) | 금113,560원(금일십일만삼천오백육십원) |
✏️ 符号与用词(8 条)
| 规则码 | 级别 | 检查什么 | 修正示例 |
|---|---|---|---|
BUNIM_COLON | error | "붙임"后不加冒号 | 붙임 计划书 1份. |
END_MARK_MISSING | warning | 有"붙임"却没有"끝."结尾(文档级检查) | 文末补끝. |
KKAJI_DUP | error | 波浪号与"까지"不并用 | 2. 20.∼2. 24. |
TILDE_SPACE | warning | 波浪号前后贴紧 | 09:00∼18:00 |
FOREIGN_FIRST | warning | 韩文在前、外语入括号 | 업무 협약(MOU) |
COLON_SPACE | warning | 冒号贴前词、后空一格 | 원장: 김갑동 |
DUEUM_ERROR | warning | 词首"년도"依头音法则写"연도" | 연도、연간 |
LOANWORD_ERROR/DISCRIMINATORY_TERM | warning | 外来语误拼(36 词对照)、歧视性用语(25 词净化表),均直接给出标准写法 | 컨텐츠 → 콘텐츠、편부모 → 한부모 |
🤖 AI 文风规则(2 条,v4.9.0 新增)
针对生成式 AI 初稿混入公文留下的"机器味"(슬롭):
| 规则码 | 级别 | 检查什么 |
|---|---|---|
AI_EM_DASH | warning | 破折号— – ―不符合公文惯例,建议拆为逗号/括号 |
AI_BOLD_OVERUSE | warning | 一行 3 处以上**加粗**——AI 文体的典型特征 |
12 条文体规则:让报告"读起来像公文"
表记对、语气错,照样不像公文。文体检测器依据15 份地方政府实务部门真实报告(2,288 行)的实测统计制定阈值:开条式(개조식)是"以名词短语收尾的短句层层堆叠"的文体——实测中~다叙述型结尾为 0/264 条,正文中问号叹号 0 处,条目中位长度仅 31 字。完整依据见 docs/gaejosik-munche.md。
| 规则码 | 级别 | 抓什么 | 修正方向 |
|---|---|---|---|
DA_ENDING | error | ~다叙述型结尾 | 改名词短语或~함/있음 |
DEONTIC | error | ~해야 한다当为式结尾 | 改⇒ ○○ 必要 |
RHETORIC_CONTRAST | error | "A 而非 B"中 B 为抽象价值词(修辞腔) | 删除,或仅保留两个具体选项 |
QUESTION_EXCLAIM | error | 正文问号/叹号(实测 0 处) | 删除(引用内豁免) |
CONTRAST_CHECK | warning | "아니라"后接具体词,需人工确认 | 制度/场所/程序属正常 |
GEOSIDA | warning | ~것이다/것임(实测仅 1 例) | 名词收尾 |
COUPLET | warning | 对偶式标语句 | 改目标数值/名词 |
ITEM_LONG | warning | 条目超 70 字(实测中位 31 字) | 论据下沉到-细分层 |
CONCL_LONG | warning | 结论超 60 字(实测中位 30 字) | 只留一个判断 |
LEAD_ENDING | warning | 引言未以~하고자 함.收尾 | [手段]하고, [手段]하여 [目的]하고자 함. |
LEAD_LONG | warning | 引言超 140 字或超过 1 句 | 压缩为"两手段一目的" |
DATE_KOREAN | warning | "2026년 8월"文字式日期 | 2026. 8. 22. |
检测器会先给每一行分类(□ 小节 / ❍ 条目 / - 细分 / ⇒ 结论 / > 引言 / ※ 参考),同一句话在不同层级适用不同标准——这是它不误伤正文段落的关键。
误报调优:项目内置的 6 个"降噪"技巧
这套规则最值得学习的是它对误报(오탐)的系统性治理——每条规则的注释里都能找到真实语料中的翻车案例:
- 表格跳过(skipTable):法定表式里"성 명 :"这类标签单元格本就带空格冒号,
COLON_SPACE、DATE_HYPHEN、TILDE_SPACE遇到 GFM/HTML 表格行直接跳过。 - 法史记法排除:
<개정 2012.2.14>、[시행일:2017.9.8.]是法制处正本格式,用负向后顾从正则中排除——实测 595 份表式中 156 处 DATE 命中全是这种形式。 - 代码围栏跳过:
```围栏内的代码、URL 一律不检,且正确跟踪围栏标记类型(```与~~~互不干扰)。 - URL 与时钟豁免:
https://、13:20不算冒号违规;<、*、_等 Markdown/HTML 收尾字符也做了排除。 - 收窄适用范围:文体检测只在报告·计划书·개조식预设下运行——公文书(official)用敬语结尾,跑
~다规则必然误报。"收窄范围是防误报最确定的手段"是 src/hwpx/munche-lint.ts 的注释原话;引用文与括号内容也整体豁免。 - 真实语料回测:每次改规则都要回灌 206 份真实电子批准草案 + 595 份表式做误报实测(v4.12.2 的
TILDE_SPACE、DUEUM_ERROR收窄即源于此)。机制说明见 docs/architecture.md。
对你的启发:自建 AI 校对规则时,用真实语料统计定阈值(如"实测 0 件"才可判 error),并为每条规则记录排除例外,比堆砌正则更有效。
📋 公文校对自查清单(AI 辅助流程)
- 原稿以 Markdown 维护,层级用缩进列表表达(自动映射公文 8 级编号)。
npx kordoc lint 原稿.md --munche --json先跑全量检查,error 级必须清零。- 按警告的
suggest字段逐项修正——金额大写、日期转换已直接给出目标值。 - 表格标签、引用文等命中项优先人工复核,确认属误报即忽略。
- 修正后
npx kordoc generate 原稿.md -o 报告.hwpx --preset 보고서,生成时的自动预警应为 0。 - 流水线中用退出码把关:
kordoc lint有 error 则 exit 1,可直接卡 CI。
规则与源码索引:表记法 src/hwpx/gongmun-lint.ts|文体 src/hwpx/munche-lint.ts|文体细则 docs/gaejosik-munche.md|公文标准 docs/gongmunseo-reference.md|引擎规格 docs/gongmunseo-engine-spec.md。
【免费下载链接】kordoc모두 파싱해버리겠다 — HWP·HWPX·PDF·Office 문서를 Markdown으로. 양식 자동 채우기와 신구대조를 갖춘 CLI·MCP 서버 | Convert Korean documents (HWP, HWPX, PDF, Office) to Markdown — CLI and MCP server with form filling and diff项目地址: https://gitcode.com/gh_mirrors/ko/kordoc
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考