资讯中心

AI改写为什么必须验证?avoid-ai-writing保留性校验器validate.js与编辑契约设计详解

📅 2026/9/25 19:43:39
AI改写为什么必须验证?avoid-ai-writing保留性校验器validate.js与编辑契约设计详解
AI改写为什么必须验证avoid-ai-writing保留性校验器validate.js与编辑契约设计详解【免费下载链接】avoid-ai-writingSkill that audits and rewrites content to remove AI writing patterns. Use it with your favorite agents including Claude Code, OpenClaw, Codex, and Hermes.项目地址: https://gitcode.com/gh_mirrors/avo/avoid-ai-writing当让 AI 帮你做AI 改写去除 AI 写作腔时最大的风险不是没改干净而是改坏了——引用被改写、代码被碰乱、链接被删掉。avoid-ai-writing是一个开源的 AI 写作审计与改写技能它不仅带有一个检测引擎还内置了保留性校验器 detector/validate.js每次改写后把原文和改后文喂给它机器化地检查承诺不动的内容是否真的没动。为什么 AI 改写必须验证模型是个好编辑但也是个手快的编辑。它可能顺手优化了你不希望动的引用块那是别人的话改了就是篡改重排了表格或代码块结构化内容被改写等于损坏丢掉了某个数字、路径或 URL技术文档里的细节是事实不是装饰。更关键的是 detector/README.md 里那句话Edit mode writes to files, so a violation there is silent and destructive. 编辑模式直接写文件违规是静默且破坏性的。在 edit 模式下AI 直接修改文件一旦碰坏了受保护内容你往往要到 review 时才会发现。所以 SKILL.md 里写下的承诺——不要编辑引用、代码块、表格或归属他人的文字、保留原文结构、意图和所有具体技术细节——必须有人强制执行。这个人就是validate.js。编辑契约SKILL.md 里的三道闸门项目的核心规则写在 skills/avoid-ai-writing/SKILL.md 的 Editing contract 一节可以理解为三层闸门用户授权范围User-authorized scopedetect模式只报告不改动普通清理请求只授权最小、定向的文字修改重建结构必须用户明确要求。源文忠实Source fidelity所有事实性补充必须来自源文或用户的明确更正保留数量、单位、否定、因果和确定性程度不编造。受保护内容Protected content引用、归属段落、代码、表格、URL、路径、标识符、frontmatter 在普通清理中保持原样通用的改文风请求不构成修改这些内容的授权。技能提供三种模式rewrite默认返回改写文本、detect只检测不改动、edit原地编辑文件且拒绝处理源码、配置和生成数据文件。校验器正是为这套契约兜底的。validate.js 校验项全览Errors 与 Warningsvalidate.js的设计哲学写得很直白错误error阻断意味着改写动了不该动的内容警告warning提示意味着改动通常合理但偶尔是失误。级别错误/警告码检查内容 errorcode-block-count/code-block-modified围栏代码块数量变化或内容被修改 errorfrontmatter-modifiedYAML frontmatter 被改动、新增或删除 errorblockquote-modified引用块内容被修改或删除他人的话 errortable-modified表格内容被修改或删除对齐重排除外 errorinline-code-missing行内代码被移除 errorurl-missing/path-missingURL 或文件路径丢失或被改 errorheading-count/heading-level标题数量或层级结构变化重构超纲 errorresidual-grew改写新增了 AI 模式清 10 个留 3 个可以添 2 个不行 warningheading-text标题措辞变化修复 Title Case、去 emoji 属正常 warningnumber-missing原文数字消失数字改写成文字时合理 warninglarge-shrink字数缩减超过 40%提示可能丢内容实现上有几个巧思见 detector/validate.js围栏扫描器而非正则fenceSpans() 按 CommonMark 规则处理围栏的开闭与长度匹配避免一行npm test 意外打开永不闭合的围栏这类误报。代码遮罩扫描正文构造前先maskCode()屏蔽代码区域否则代码里的 URL 会被计两次、代码块里的|会被误认为表格行。CRLF 归一化Windows 文档换行统一成\n后再比对防止frontmatter 被改写但校验却通过。两个豁免carve-outs校验器不能对自己的技能文档开火——SKILL.md 本身就要求剥掉 URL 上的 AI 跟踪参数如utm_sourcechatgpt.com和把 Title Case 标题改成句子式并去掉 emoji所以这两类改动被从比对中扣除详见 detector/README.md。实际怎么用命令行CI 友好node detector/validate.js before.md after.md退出码语义明确0表示保留性检查通过1表示存在阻断性错误可直接用作流水线门禁detector/validate.js#L489-L502。编程调用const { validate, formatResult } require(./detector/validate.js); const result validate(originalText, rewrittenText); if (!result.ok) console.error(formatResult(result));在技能工作流中SKILL.md 建议 edit 模式结束后运行该校验SKILL.md 机械检查一节。而独立的 skills/preservation-verifier/SKILL.md 技能则把它组织成一个完整的验证环节返回PASS / REVIEW / FAIL三种结果——FAIL时指认修复责任方改写器或文件编辑器且修复循环最多一次重入修复后仍需复验二次失败即停止上报绝不无限循环。注意CI 里常用的avoid-ai-writing-gate检测门禁只检查单个快照不会运行validate.js它需要原文和改后文两个版本——自动化改写流程中请单独运行保留性校验。设计亮点小结 承诺 → 代码把文档里的自然语言承诺变成确定性、可测试的机器检查回归测试见 detector/validate.test.js。宁软勿堵会阻断合法改写的校验器比只报软信号的校验器更糟——所以缩进代码块、标题措辞、数字丢失都是 warning 而非 error。零依赖Node ≥ 18 与浏览器 IIFE 双端可运行与patterns.js同款结构无构建步骤。单向约束改写可以留下未清除的模式但绝不能新增模式residual-grew。参考路径 保留性校验器源码detector/validate.js检测引擎detector/patterns.js引擎文档含validateAPI 说明detector/README.md技能主文件与编辑契约skills/avoid-ai-writing/SKILL.md独立验证技能skills/preservation-verifier/SKILL.md模式参考references/patterns.md【免费下载链接】avoid-ai-writingSkill that audits and rewrites content to remove AI writing patterns. Use it with your favorite agents including Claude Code, OpenClaw, Codex, and Hermes.项目地址: https://gitcode.com/gh_mirrors/avo/avoid-ai-writing创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

看完文章,想为自己的企业也做一次专业网站诊断?

尧图顾问免费为您评估现有网站,并给出建站/改版建议与报价方案。

免费获取方案