用途
该技能用于对用户拥有或获授权处理的、面向读者的自然语言文本做最终文本卫生处理。它把 Unicode 清理视为确定性操作,把统计型水印削减视为尽力而为,并明确不声称改写能证明人类作者身份或不可被检测。学术、法律、平台与监管要求的披露必须保留。
主要能力
- 识别读者会看到的散文部分,并保护非散文片段:围栏与行内代码、命令、路径、URL、标识符、API 名称与精确值、公式、引用,以及用户要求逐字引用的文本。
- 保留每一项主张、事实、数字、名称、引用与要求;缺失事实只标记缺口,不编造。
- 使用内置的零 LLM 文体计量估算器在改写前后打分,报告密度层级(low / medium / high,或未校准时为 uncalibrated)。
- 提供仅检测的审计模式(--audit),列出被标记的片段但不改写。
- 确定性 Unicode 清理:移除不可见字符与同形异义字符等机械标记。
- 在密度层级为高时对散文做一次改写,应用检测器杠杆:清除 AI 套话词汇、注入句长变化、打破公式化结构、匹配真实声音并保留具体细节、规范标点与 RLHF 语气。
- 提供声音与领域预设:通用散文(默认)、随笔/博客、技术/文档、学术/专业、商业/产品文案、虚构;另有面向工程师文本的简明语言子模式。
- 代码边界:散文与代码混合时只改写散文,不重命名变量、不改字符串字面量、不重排代码、不改变可执行输出。
使用方式
脚本自包含,直接运行内置脚本,无服务或网络依赖。将 SCRIPTS 解析为该技能的 scripts/ 目录,PYTHON 替换为平台可用的 Python 3 启动器(macOS/Linux 多为 python3,Windows 为 py)。
编辑现有文件时先检查并记录改写前分数:
PYTHON "$SCRIPTS/inspect_text.py" --stylometry --json INPUT PYTHON "$SCRIPTS/clean_text.py" INPUT -o OUTPUT --stats --no-normalize-spaces PYTHON "$SCRIPTS/inspect_text.py" --stylometry --json OUTPUT
仅检测审计:
PYTHON "$SCRIPTS/inspect_text.py" --audit INPUT
用 - 表示标准输入。除非用户明确要求原地编辑,优先输出新的 .cleaned. 文件。默认使用 --no-normalize-spaces,以保留 NBSP、窄不换行空格、数字空格与 CJK 表意空格的排版语义;仅在用户要求时规范化空格。除非用户要求激进规范化并接受多语言文本、emoji、方向性或排版可能变化,否则不要使用 --aggressive-homoglyphs、--nfkc 或 --strip-emoji-glue。
脚本支持纯文本、源代码文本、Markdown 与 HTML 源码作为文本。对混合 Markdown 或 HTML,先检查命中位置;若命中落在受保护的代码、属性或其他非散文片段内,不要做整文件清理,只清理散文片段或保留该命中不变。不要传入 PDF、DOCX、图像或压缩包等二进制容器。
对于不写入文件的纯聊天回复,直接执行改写工作流;不要声称聊天回复经过了发送后的确定性 Unicode 过滤。
评分
scripts/inspect_text.py --stylometry(或独立的 scripts/score_stylometry.py,后者也接受 --explain)运行从服务流水线内置的零 LLM 估算器:句长突发性(变异系数)、每 100 词的加权 AI 节奏短语密度、词汇多样性(MATTR),以及 0 到 1 的阻尼复合分数。退出码 1 表示分数达到或超过阈值(默认 0.65)。报告还带有 density_tier(low / medium / high,或未评分时 uncalibrated),用于重新标注分数所处位置,使改写仅在 high 时触发。inspect_text.py --audit 产生相同评分加上仅检测的被标记片段列表,但从不改写。少于 30 词时估算器报告 status: insufficient_length 而非分数。整个过程不调用网络,技能保持自包含。
适用场景
- 对用户拥有或获授权处理的、面向读者的散文做最终文本卫生处理。
- 在改写前先做确定性 Unicode 清理,使改写作用于干净、无标记的文本。
- 需要仅检测审计、列出可疑不可见 Unicode 片段而不改写时。
- 需要按领域预设调整改写力度与个性程度时。
- 需要保留代码、命令、路径、URL、公式、引用等非散文片段时。
限制
估算器针对统计型检测器家族(困惑度与突发性风格信号)校准。它不是 GPTZero、Turnitin、Originality 或 Pangram 等训练过的神经分类器的输出,不检测密钥水印,也不说明真实性。改写后分数降低只意味着可测量信号移动了,不证明文本读起来像人类,也不证明任何特定检测器会接受它。用户要求审计时,应把数字作为量规而非裁决报告。
检测器杠杆针对统计型检测器;训练过的神经分类器会针对改写式编辑做对抗训练,面对它们唯一稳健的杠杆是匹配真实人类分布,而这也无法保证。
可选递归改写仅用于用户要求削减水印时:每次额外改写都有意义漂移风险,且无法在本地验证任何厂商密钥。
预设不会覆盖事实规则(虚构除外),也不保证任何检测器结果。
简明语言子模式是清晰度下限而非新个性:它刻意剥离声音,保留每项主张与要求,不是检测器规避工具。
报告
用户要求审计时区分:可验证项(移除或替换的 Unicode 字符及脚本计数;改写前后文体计量分数及置信水平,作为量规而非裁决);尽力而为项(为改变词元与句法模式而改写的散文);未确立项(官方检测器规避、人类作者身份,或移除厂商密钥水印)。
参考文件
- references/writing-in-your-voice.md:用户要求保留或调整声音时阅读。
- references/detectors.md:了解检测器真正测量什么以及哪些主张合法。
- references/watermark-notes.md:技术背景。
- references/responsible-use.md:误用或披露问题。