ne-slop-text 是做什么的?
平庸(Slop)就是平均:模型在填补空白时选择最可能的动作,或者被要求“改得更好”时所写出的东西。它存在于决策中(什么被直截了当地说出、谁推动事件、如何结尾、列出了什么、命名了什么),而非词汇中。交换词汇无法修复它:StoryScope(Russell 等人,COLM 2026)仅凭话语特征就能以 93% 的 F1 分数区分 AI 故事与人类故事,而专业的表面改写仅将检测率从 95.5% 移动至 93.9%。模型聚集在一个区域,而人类分散在各地。因此,本技能不应用固定配方。它针对每个任务,找到默认模型落在何处,并利用此人的素材将草稿从那里移开。
管线的发现和测试方法:docs/evidence.md。以下路径均相对于本技能目录。
输入
- 一个任务(写什么、写给谁、为什么)或一个源文本(待修改的文本)。
- 可选的上下文:文档、事实、此人自己的话(语音记录、聊天记录、内部笔记)。
选择模式
- 短文本(约 120 词以内:聊天回复、短消息、标题):执行步骤 1,然后步骤 3。此长度下循环没有信号;在盲测中,100 词摘要的五种不同写法无法区分。
- 完整文本(任何更长的、将发给他人阅读的内容):执行步骤 1、2、3、4。当文本很重要或用户要求时,执行步骤 5。
步骤 1. 写作前的哲学
- 素材优先。 找到只有此人拥有的东西:一个具体片段;他们持有的一个观点;推动事件、而非他们自己的力量(某人推动、某物被继承、某物失败);一个保留或限制;他们自己的措辞。同一体裁的旧文本(以往的简历和信件)提供事实,而非语气。
- 缺失的素材。 如果文本很重要,问 1 到 3 个简短问题;语音回答最佳,保留转录作为素材。提出不暗示答案的开放问题:“实际是怎么发生的”、“有没有一个案例”、“你对 X 有什么看法”、“你还不能做什么”。如果你无法提问,则使用可验证的具体细节(姓名、数字、来源)并让空白可见。永远不要用平均值填补空白。
- 读者及其编码。 他们实际上要求了什么?他们使用什么词汇和玩笑?用他们自己的话来回答是鲜活的,当它指向一个点时(“您的招聘启事要求公正,所以我不会声称自己是最好:我还没见过其他候选人”)。将他们的词用作标签或标题则是平庸。
- 贴近素材呈现。 此人的思考顺序、他们的保留(“可能”、“总的来说”)、字面而非习语的翻译、第一人称加简短动词:“我领导 3 名 QA 工程师并签署发布”被评为鲜活;“领导一个 3 人 QA 工程师团队并拥有发布签署权”被评为平庸。
- 体裁存在于容器中(格式、长度、问候语、必填字段),而非每个句子中。列表放在该放的地方(技能部分、表格、附带的简历);一个句子承载一个片段或一个机制。
- 怀疑轻易出现的想法。 如果一个句子未经决策就出现,它很可能是平均值。
步骤 2. 循环:偏离默认(完整模式)
- 默认值。 生成 3 个全新的智能体,分别使用不同模型(例如 opus、sonnet、haiku)。为每个智能体提供相同的任务和上下文,使用
loop/default_prompt.md。它们不得看到本技能、草稿或彼此。 - 注释。 再生成一个全新的智能体,使用与写作者不同的模型,用
loop/questionnaire.json注释草稿和默认输出,遵循loop/annotator.md。输出:features.json。 - 报告。
python3 loop/consensus.py loop/questionnaire.json features.json D1,D2,D3 DRAFT TEXTS_DIR > report.txt给出 P1(草稿做了每个默认都做的事,并且偏向机器化)、P2(按权重偏向机器化)、保留(偏向人类,不要丢失)、与默认共享的 4-gram 以及开头句子与默认的接近程度。 - 修订。 一个全新的智能体应用
loop/reviser.md对草稿、报告和上下文进行处理。素材胜过权重:渲染了此人自己话的句子即使被特征标记也保留。 - 停止,最多 2 轮,或当 P1 为空时停止。文本不得变长。
成本:大约 6 到 8 次智能体调用,3 到 5 分钟。共识本身不是平庸:当上下文丰富时,每个默认也有具体片段。一个标记需要两者:默认一致,且特征偏向机器化。某些一致性只是体裁使然(README 会说明如何安装);告诉修订者容器是什么。
步骤 3. 最后,润色
python3 lint/lint.py FILE --lang en(或 ru),然后阅读 lint/en.md 或 lint/ru.md。只修复它标记的内容;在此阶段不要重构。词汇列表是最弱的信号,也最先过时。
步骤 4. 输出
向用户提供:文本;改了什么及原因(几行说明);开放性问题以及仍可见的空白。当使用了上下文时,提供“行 ← 来源”的映射。永远不要编辑用户的原始文件;在它们旁边写草稿。
步骤 5. 学习
- 盲测,用于重要文本:
python3 tools/blind.py out.html key.json "标题" "副标题" name=path=label ...同一素材的多个处理版本,无并列排名,句子标记(平庸/鲜活)。至少比较两段;短片段无法区分。 - 标记变成权重。 将用户的标记追加到
learn/marks.jsonl,并带上来自learn/patterns.md的模式标签,然后运行python3 learn/update_weights.py。它会显示哪些模式已稳定,哪些问卷权重与其不一致;编辑loop/questionnaire.json以匹配。一个新模式被标记为平庸两次且从未标记为鲜活,则成为新特征。 - 拒绝比表扬教得更多。 当用户编辑你的文本时,对比差异:他们删除的内容也是标记。
不该做什么(每项都经过测试)
- 向体裁抛光(“让它更专业”):简历用语和独行英雄会回来,片段会被破坏。
- 从好素材一次生成:模型会将声音溶解为平均值并丢弃观点。
- 假装随意:以结构形式写的玩笑(“玩笑答案是……;真正的答案是……”),“添加个性”的重写。这是人们能识别的拟人化标记。
- 从旧便签而非本人那里获取观点。便签说一件事;本人说另一件事。
- 追求罕见词汇。鲜活的文本在词汇上很普通;其罕见之处在于决策。
- 聪明的转折,即使是本人自己的(“像工程师一样对工程师说话”、“……团队把票子传给一个人”)。
- 关于文本本身的文本(“X 优先,既然你明确要求了”)。
其他方法的适用处
ne-slop(父级技能,适用于任何创造性工作):步骤 1 是其针对文本的部分。真实的素材、许多小且明确的决策、几个不同的变体、由人选择、拒绝被记住、审视结果。- StoryScope:步骤 2 的理论和问卷权重的种子。
- unslop:可移植性测试(这个句子是否适合另一个人或公司?)及其防止编造事实的护栏适用于步骤 1 和 3;其词汇列表服务于润色。
- humanizer:其模式列表服务于润色。其带有“个性和灵魂”的重写被故意排除在外。