mcpField
P
preservation-verifier

preservation-verifier

github.com/conorbronsdon测试与质量5.3k46 次安装1 天前更新
代码仓库

关于 preservation-verifier

preservation-verifier 用于检查改写或经授权的文件编辑是否保留了原始 avoid-ai-writing 规则要求保护的内容。它可运行附带的验证器,并单独审查语义,且将修复流程限制在规定范围内。

主要功能

  1. 01比较原文与当前版本
  2. 02运行附带的内容保留验证器
  3. 03单独审查含义与归属
  4. 04报告 PASS、REVIEW 或 FAIL
  5. 05路由一次有界修复流程

适用场景

  1. 01将改写段落与来源文本核对
  2. 02检查编辑文件是否遗漏细节
  3. 03检查数字或残余内容警告
  4. 04将失败结果交回编辑负责人

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/conorbronsdon/avoid-ai-writing --skill preservation-verifier

安装后在 Claude Code 中输入/preservation-verifier确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
scripts/
patterns.js
validate.js

详细介绍

保留性验证器

验证改写或文件编辑是否保留了原始 ../avoid-ai-writing/SKILL.md 指定需要保护的内容。

跨 Skill 工作时,遵循 ../avoid-ai-writing-router/references/handoff-contract.md 和 ../avoid-ai-writing-router/references/skill-graph.json。

连接契约

输入

接受以下来源的前后版本验证请求:

  • 用户直接提供前后材料时,由 avoid-ai-writing-router 通过 ROUTE 传入。
  • 返回文本改写完成后,由 voice-preserving-rewriter 通过 VERIFY 传入。
  • 经授权的指定文件修改完成后,由 file-edit-in-place 通过 VERIFY 传入。

必须同时提供原始版本和当前版本。若任一版本不可用,则将控制权交还路由器,而不是凭空编造对比结果。

产出

更新交接信封,其中包含:

  • execution_evidence.verifier:仅当运行了捆绑的验证器时设为 executed,否则设为 model_only。
  • verification_summary.status:PASS、REVIEW 或 FAIL。
  • 阻断性错误和警告。
  • 可修复时,注明确切的修复目标。

FAIL 是阻断性工作流结果。不能仅因已生成文本或成功写入文件,就认为改写/编辑阶段已完成。

后续去向
  • 当返回文本未通过保留性验证且共享编辑预算允许时,向 voice-preserving-rewriter 发送 REPAIR。
  • 当指定文件未通过保留性验证且共享编辑预算允许时,向 file-edit-in-place 发送 REPAIR。
  • 仅当用户要求收敛或残留内容审计时,才向 ai-writing-detector 发送 RECHECK。
  • 验证通过后停止,除非还需执行用户要求的其他阶段。
  • 第二次验证仍失败时停止并报告。不得开始新一轮修复。

架构与实现视角

应用 ../avoid-ai-writing-router/references/agency-role-lenses.md 中的两个视角:

  • agency-software-architect:验证是设有明确责任归属和有限修复周期的边界关卡。
  • agency-senior-developer:执行声明必须有实际命令证据;错误必须向上传递;前后状态必须能归因于正确目标。

验证器本身不改写内容。

首选确定性路径

捆绑的 scripts/validate.js 是对源代码仓库保留性验证器的精确副本。在可运行 Node 时,执行:

node scripts/validate.js --residual-policy warn before.md after.md

编程调用方式:

const { validate } = require("./scripts/validate.js");
const result = validate(original, rewritten, { residualPolicy: "warn" });

编辑审查时,显式使用 warn 残留策略。验证器会分别提供机械性 preservation 结果和 quality 诊断,同时保留顶层错误、警告和统计数据。残留内容增加会作为警告显示;这并非内容受损的证明,也不能单独作为修复依据。跳过、不可用或未评分的质量检查,不算通过了残留审计。验证器不会判断语义更改是否基于明确的用户更正,也不会判断用户是否特别授权编辑通常受保护的片段。除非当前主机实际运行了验证器,否则绝不能声称运行过。

如果无法执行,则根据相同的保留契约手动比较原文和改写文本,并将结果标注为 model_only。

其他受保护的约束

除规范验证器的结构检查外,还要在单独的语义审查中应用规范编辑契约。检查含义、归属、数量和单位、否定、条件、因果关系、不确定性以及说话者经历是否保留。将用户明确提出的更正视为预期修改,而非凭空添加。如果用户明确要求修改通常受保护的内容,应核实所请求的更改,并继续保护其中的数据和归属;不得根据一般性的清理、风格或语气要求推断用户已授权修改。应将此审查报告为仅由模型完成,不得声称由确定性验证器执行。

当 human_representation_sensitive: true 时,应依据 agency-inclusive-visuals-specialist 视角审查受保护的身份与呈现细节。结构上有效的改写仍可能需要 REVIEW 或 FAIL,如果它抹去了或泛化了重要的文化、地理、残障、着装、肤色/光照、现实身体状况或反刻板印象约束。

不得声称确定性验证器检查了其未实现的语义呈现细节。应将这部分作为仅由模型完成的语义审查单独报告。

结果处理

PASS

未发现阻断性的机械保留错误,且没有未解决的警告或语义问题。如果用户要求残留内容审计,PASS 还要求 quality.status: checked;即使数字拼写警告已解决,skipped、unavailable 或 unscored 仍要求判定为 REVIEW。这并不能证明语义忠实。只有在仍有其他待执行阶段时才继续。

REVIEW

警告或语义变更需要人工判断,但不会自动构成阻断问题。结合源文本和上下文审查 number-added、number-missing 和 residual-grew;数字拼写变更可能是合理的。如果要求进行残留内容分析,但分析结果不可用或未评分,应报告审计未完成。对于与明确要求修改通常受保护内容相对应的验证器字面差异,也适用此规则:应根据该修改范围及其余数据和归属约束进行审查,而不是自动改回原文。应说明具体的不确定之处。

FAIL

受保护的内容已被更改或删除。根据源内容类型,确定正确的修复方:

  • 返回文本 → voice-preserving-rewriter
  • 指定文件 → file-edit-in-place

仅传递阻断性修复范围和现有封装,不要要求修复方重做已通过的部分。如果 pass.index 已达到 pass.max,应报告尚未解决的失败,不再要求进行其他修改。

修复循环限制

最多允许重新进入修复流程一次,且仅当请求的编辑预算尚有余量时才可进行。修复会占用下一次编辑轮次。验证本身不占用轮次。修复后再验证一次。如果仍未通过,则停止并报告尚未解决的错误。不得无限循环。

输出

返回 PASS、FAIL 或 REVIEW、验证器执行状态、阻断性保留错误、警告、任何单独的语义守护审查、建议的修复方,以及有限修复机会是否已使用。

评论

支持 Markdown