关于 un-editorial-check
UN editorial check 是一款 Node.js 命令行工具,用于检查文档和网页中的用户可见文案是否符合已记录的编辑规则。它区分确定性问题、编辑审阅与专项审计,并说明检查能力的边界。
主要功能
- 01检查文档和网页中的文案
- 02按编辑规则报告问题
- 03生成 PDF 或 HTML 审阅报告
- 04提供拼写、术语及语法规则
- 05支持发布、无障碍和安全审计
适用场景
- 01审阅发布前的网页或文档文案
- 02检查 PDF 或 DOCX 中可提取的文本
- 03为团队术语表扫描文案
- 04运行发布、无障碍或安全审计
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ahaomar/ un-editorial-check --skill un-editorial-check安装后在 Claude Code 中输入/un-editorial-check确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignoreCODE_OF_CONDUCT.mdCONTRIBUTING.mdCOMPATIBILITY.mdMAINTAINING.mdLICENSECHANGELOG.mdREADME.mdaction.ymlVERSIONSECURITY.mdUSER-GUIDE.md.github/workflows/ci.ymlaction/main.mjsagents/openai.yamlbin/check.mjscommands/un-diplomatic-agent.mdconfig/default.jsonexample.un-editorial.jsonconfig/profiles/security.jsonun-geneva-web.jsongeneric-british-english.jsonpublishing.jsonaccessibility.jsonun-v1.jsondocs/LAUNCH.mdCLAIM-EVIDENCE-AUDIT.mdGLOSSARY-AND-WATCH.mdLAUNCH-1.2.0.mdMIGRATION.md详细介绍
UN 编辑检查
在进行编辑判断前,先运行随附的 Node.js CLI。该 CLI 会检查提取文本是否符合已记录的规则;但它无法证明文案是否清晰、中立、准确或有充分来源支持。
从此 SKILL.md 所在的目录解析 <skill-base>。以下所有路径均相对于该目录。
工作流程
- 运行
node <skill-base>/bin/check.mjs <paths>。添加--report <path.pdf>,即可将相同检查结果的当前版本与应有版本对照 PDF 写入给用户。 - 处理错误级别的发现(退出代码为
1)。检查警告;不要仅为获得退出代码0而将其屏蔽。 - 阅读 rules/ 下适用的文件:拼写、术语、数字、语体、外交、仇恨言论和语法。不要凭记忆复述或重新诠释这些规则。
- 逐项处理
AGENT REVIEW REQUIRED发现:核实主张是否与证据相符、数据是否注明来源和日期、引文是否完整、比较所用年份是否一致,以及标签是否明确说明了统计内容。 - 按五个类别分别报告确定性发现与编辑判断:确定性违规、启发式编辑审查、有害或歧视性内容审查、外交敏感性、审计。每项发现均须保留规则来源、配置文件、置信度、局限性和建议的人工处理措施;无论以何种形式提交,都应保留这些字段。
--stdin 会将一份文档作为纯文本从标准输入读取,并使用合成名称 <stdin>.txt;该模式下不允许同时使用 --fix。--claims <file> 会核验已提交的主张登记表,--claims-out <file> 会写入登记表;登记表规则(UE-CL002、UE-CL003)只核验是否完成了记录工作,并不核验主张是否属实。--emit-corrected <file> 会输出从单个 PDF 恢复的文案,并应用确定性修正;输出开头会注明这只是恢复的工作文本——请从同一次运行的报告中获取该文本,并对照源文件阅读。
运行 node <skill-base>/bin/check.mjs --self-test,核验安装是否正常(使用随附语料库,并比对预期发现项)。--init 会写入一个起始版 .un-editorial.json,其中包含宿主和 CI 片段;--baseline <path> 会记录已建立的语料库,从而仅让新增发现导致失败。
会检查什么,不会检查什么
仅检查已分类的用户可见文案:HTML 文本节点和承载文案的属性中的文字、Markdown、纯文本、有渲染证据的 JavaScript 字符串字面量(赋值给渲染目标、用作文案的模板或拼接内容、类似句子的字面量),以及从 PDF 中提取的文本。在运行任何规则前,都会屏蔽注释、代码、标识符、URL 和引用标题。引用内容和块引用内容会结合上下文进行分类,而不会被悄然忽略:如果有害或歧视性内容的审查适用,这些内容会作为引用或转述内容单独报告。
支持读取 PDF(.pdf)、文档容器(.docx、.odt)以及通过 --url 指定的 http(s) 页面。抓取的页面以其 URL 作为名称进行检查;错误状态、非 HTML 或纯文本响应,以及超过 4 MiB 的正文均会导致拒绝处理并以状态码 2 退出;审查仅针对本地磁盘上的文件。页面是渲染后的内容,而非源文件:工具会提取其中的文本并报告发现项,但无法区分引文和段落,因此 PDF 中的每个文案单元都会被视为 authored,PDF 中的引用内容也会接受筛查,而不会被排除在外。line 指根据文本位置重建的视觉行,行号在整份文档中连续计数,并非源文件中的行号;JSON 和 SARIF 输出中的发现项会带有 pdfPage。扫描件或纯图片文档、加密文档,以及字体编码无法还原的文档,都会以状态码 2 拒绝处理并说明原因——绝不会报告为干净,也绝不会只读取部分内容。不得将遭拒的 PDF 描述为已检查,也不要提供 OCR 方案:该工具不执行 OCR。--fix 会拒绝处理 PDF 和所有文档容器,因此应依据报告而非已应用的改写来进行修正。.docx 或 .odt 正文会逐段提取:line 指按文档顺序提取的段落;文本框、页眉、页脚、脚注、尾注和批注均不会读取;跟踪删除的内容会被排除,因为带删除线的文案并非用户可见。加密文档、扩展名与内容不符的文件,以及无法提取正文文本的容器,都会被拒绝处理并以状态码 2 退出,同时说明原因——绝不会报告为干净。
代码质量、无障碍、安全性和 SEO 发现项属于审计,而非编辑规则。仅在使用 --profile publishing、--profile accessibility 或 --profile security 请求时才会运行;它们会在单独的部分中报告,且绝不会改变退出码。
--report <path.pdf> 会将审查结果写入 PDF,--report <path.html> 会将其写入单个自包含的 HTML 页面;两者都会记录修正前的状态,包含每个发现项的规则来源、配置文件、置信度、限制和建议措施,并声明这些内容不构成事实核验、法律意见或联合国背书。对于工具无法渲染的扩展名,会拒绝处理,而不会悄然回退。
--glossary <file> 会报告读者自己的术语:出现在文案中的 forbiddenTerms 列表术语,以及在已扫描文件中完全未出现的 requiredTerms 列表术语。这些发现项应作为读者的内部术语规范报告,绝不能称为联合国规则;不得将其记录在 rules/sources.json 中,并注明它们属于审计类别,绝不会改变退出码。--fix 绝不会改写术语表中的术语。
--watch 会在内容变更时重新扫描,供单人编辑使用;它不会解析退出码,并会在收到中断时以 130 退出。不要在持续集成中使用它。
边界
在向用户展示目标文件之前,切勿使用 --fix。--fix 会打印 (proposed) 差异,但不写入任何内容;--fix --apply 会写入更改,并将结果标记为 (applied)。它仅限于对 .md、.markdown 和 .txt 文件进行确定性替换(英式拼写、per cent、连接号范围、the United States、重复词、标点前的空格,以及句子之间缺失的空格),并会拒绝符号链接、硬链接文件、PDF 和任何非普通文件。请检查每一处生成的差异。它不会改写日期、术语、主张或感叹号。
退出代码:0 表示没有错误级别的编辑问题,1 表示有错误级别的编辑问题,2 表示用法、配置、扫描或写入失败。审计不会改变退出代码。运行结果没有问题时,会输出 No findings under the enabled, documented local rules.——这就是干净结果的全部含义,也是唯一可向用户报告的干净结果表述。
配置来自 config/default.json,以及可选的项目 .un-editorial.json,或 --config <file>。--profile 的值可以是内置审计名称(publishing、accessibility、security)、捆绑配置名称(un-secretariat-document、un-v1、un-geneva-web、generic-british-english),或组织配置 JSON 文件的路径;该文件会与 config/profiles/un-v1.json 中的捆绑基线合并。请勿杜撰未记录的配置键;维护中的规则 ID 索引位于 rules/catalogue.json。
请在所属的文案范围内,针对单个已知无误的情况添加抑制标记,并在版本控制中记录原因:, 或 ``。抑制仅适用于其所在的段落。
配置了 baseOrigin 时,会根据其协议、主机名和有效端口检查规范 URL。SRI 结果仅证明声明语法和必需属性符合要求,不证明摘要与下载内容匹配。