跳到正文
Hacker News· Dodaios·· 9 小时前AI 评分58

STE80 Humanizer:用两步法把 AI 文本改写到 ASD-STE100 的 80%

Show HN: STE80 Humanizer – de-AI text by writing 80% of the way to ASD-STE100

AI 导读

Dodaios 发布 STE80 Humanizer,一个可安装到 Claude Code、Codex、Cursor 等 Agent 的 Skill,通过两步改写让 AI 生成的文本读起来更像人写的。

正文 · AI 翻译

skills.sh installs validate License: MIT

STE80 Humanizer 让 AI 写出的文本读起来像是一个细心的人写的,同时不改变它表达的内容。它结合了两种方法:

  1. humanizer 方法。 从 Wikipedia 的 Signs of AI writing 中移除 26 个 AI 写作特征,依据 blader/humanizer 的目录。
  2. Karpathy 的 STE80 方法。 把句子重写为“80% 接近 ASD-STE100”的程度,即飞机维修手册所用的受控英语。

修改前:

好问题!Kubernetes 存活探针是一种强大的机制,使 kubelet 能够判断容器是否健康——而且它不只是一项健康检查,它是你的第一道防线。当探针失败时,容器会被 kubelet 自动重启,确保你的应用保持可用。然而,需要注意的是,配置错误的探针可能会导致级联重启,因此像 initialDelaySeconds 和 failureThreshold 这样的参数应仔细调整。

把这一点做对,你的集群就能自我修复。

修改后:

存活探针告诉 kubelet 容器是否健康。如果探针失败,kubelet 会重启容器。这使应用保持可用。

错误的探针也可能导致大量重启。例如,超时时间太短会让健康的容器无法通过探针。为防止这种情况,请将 initialDelaySeconds 和 failureThreshold 设置为适合你的应用的值。

目标是让人们容易阅读的文本。通过 AI 检测器不是目标。

为什么要两遍处理

大多数 humanizer 只删除短语。文本失去了“好问题!”和“无缝”,但它保留了承载三个想法的长句、隐藏了动作执行者,并堆叠了模糊措辞。它读起来仍然像 AI。你可以在 SKILL.md 的示例中看到这一点:

步骤 剩余内容
原文 聊天机器人开场白、破折号、“不只是 X”、“-ing”附加语、“然而”、“可能潜在地”、戏剧性结尾
第一遍处理后(特征) “……容器会被 kubelet 自动重启,这使你的应用保持可用。配置错误的探针可能导致级联重启,因此参数……应仔细调整。”词语干净,但句子沉重。
第二遍处理后(STE80) 短句,每句一个想法,主动语态,指令与描述分开。

方法:Karpathy 说了什么

2026 年 10 月 2 日,Andrej Karpathy 发帖,针对一个问题给出建议:随着 LLM 承担更多工作,人们花更多时间阅读和理解模型产出的内容。他的第一条建议是:

让你的 LLM 用 ASD-STE100 来解释某件事,这是一份最初为航空航天维修文档开发的受控语言规范。LLM 精通这种语言,它对简洁的写作风格有严格约束,我常常觉得它可读性高得多。有时我试着把它放宽一点,例如要求“80% 接近 ASD-STE100”,因为该规范相当严格。

帖子随后逐级上升:图表,然后是 HTML 页面,然后是讲解视频。他的结论是,我们的工作正“向上进入抽象层,走向监督与理解”。清晰的输出是瓶颈,而写作是第一步。

Simplified Technical English: overview. Document structure, anatomy of STE sentences, verb forms, dictionary entries, writing rule limits and history.

来自 Karpathy 帖子的 STE 概览图。点击放大。注:后来的一次事实核查发现词典面板(D)中有错误。在 ASD-STE100 第 9 版中,“approximately”是批准用词,“TEST”仅批准作名词(不作动词),并且没有“in order to”的词条。本技能遵循第 9 版。

ASD-STE100(简化技术英语)源自 1980 年代的航空航天业。它是为母语不是英语的机械师制定的,因为在飞机上误读一个步骤就可能致命。它的规则是:

  • 每条指令 20 个词,每段描述 25 个词
  • 每句只写一条指令
  • 使用主动语态和简单时态
  • 每个词只有一个含义,约 900 个获批词汇
  • 每段只讲一个主题,最多六句话

为什么是“80%”? 在 100% 模式下,“check”和“test”只能作名词,“may”和“should”被禁用,许多常用词也不允许使用。正常行文会显得生硬。在 80% 模式下,你保留完整结构,只保留听起来仍然自然的词汇量:

STE 规则 100%(严格模式) 80%(默认)
句子长度 20 / 25 硬性限制 超出几个词没关系
每句一个想法 始终 始终
主动语态、简单时态 始终 始终
仅限获批词典 是 否,使用普通的常用词
“check”、“test”作动词 否 是
“may”、“should” 否 是,用于真正的不确定性
缩略形式 否 是,在随意文本中
分号 否 否

Karpathy 谈的是可读性,而不是听起来像人写的。这个技能补上了那一部分,因为两种方法互相弥补了对方的缺口。

如何阅读这个技能

SKILL.md 有两个编号列表:

  • §1 到 §26:AI 痕迹(第 1 遍)。
  • S1 到 S15:STE80 结构规则(第 2 遍)。

每个条目都有相同的字段:注意、问题、之前和之后。第 2 遍的条目还会说明80%和严格之间有什么变化。单独较弱的意思是:只有在其他痕迹接近时才采取行动。该技能按编号报告其修改,例如“§1, §8, S2”,这样你可以逐一查阅。

安装

安装后,该技能响应 /ste80-humanizer。当你要求将文本人性化、简化或去 AI 化,或要求 STE 时,它也会自行启动。

任意 agent(skills.sh)

npx skills add Dodaios/ste80-humanizer

为单个 agent 或所有 agent 全局安装:

npx skills add Dodaios/ste80-humanizer --global --agent claude-code
npx skills add Dodaios/ste80-humanizer --global --agent codex
npx skills add Dodaios/ste80-humanizer --global --agent cursor
npx skills add Dodaios/ste80-humanizer --global --agent '*'

没有 --global 时,该技能只会进入当前项目。来自 Vercel 的 skills CLI 可与 Claude Code、Codex、Cursor、OpenCode 以及许多其他 agent 配合使用。

Claude Code 插件

/plugin marketplace add Dodaios/ste80-humanizer
/plugin install ste80-humanizer@ste80-humanizer

Claude.ai 和 Claude Desktop

将此仓库下载为 ZIP(Code → Download ZIP)。在 Settings → Capabilities → Skills 中上传。

用法

/ste80-humanizer
<paste text>

或者直接问:

This sounds like ChatGPT wrote it. Make it sound like a person.
Rewrite this README 80% of the way to ASD-STE100.
Explain how TLS handshakes work in STE.
Light touch: just remove the AI stuff from docs/intro.md.
Convert docs/runbook.md to strict STE.
Does this email sound like AI? Just tell me, don't rewrite it.
模式 何时使用 作用
人性化(默认) 普通请求 完整执行第 1 遍,第 2 遍按 80% 执行。保留你的语气。
轻度 “轻触”、“只去掉 AI 的东西” 执行第 1 遍,外加第 2 遍中仅最糟糕的句子。
严格 STE “严格”、“完整 STE”、流程、安全说明 执行第 1 遍,并按 100% 执行第 2 遍的全部内容。

匹配你的语气。 添加一段你自己的写作样本。该技能随后会匹配你的句子长度、用词和标点。

忠实优先。 该技能保留每一个事实,将“may”保留为“may”,将“40+”保留为“40+”,不添加任何内容,并标记源文中的矛盾。在我们的测试中,这是与普通提示词最明显的区别(见测试)。

第 1 遍:26 个 AI 痕迹

# 痕迹 之前 之后
A. 铺垫而非陈述
1 不是 X 而是 Y 它不只是一个更快的构建工具,它是一种新的思考方式。 该构建工具会缓存每个步骤。
2 单行收尾 ……没有冷启动。没有借口。这就是边缘计算的力量。 延迟降至 40 毫秒。
3 听起来深刻的格言 从本质上讲,可观测性是信任的语言。 共享仪表板向两个团队显示相同的数据。
4 铺垫式引入 让我们开始吧。以下是你需要了解的内容。 该 API 允许每分钟 100 次请求。
5 无人可争 需要说明的是,我并不是说微服务不好…… 我们首先拆分出了计费服务。
B. 按规则控制节奏
6 强行三段式 快速、直观且强大 加载时间不到一秒
7 重复的开头(单独看较弱) 它读取……它检查……它启动…… 它读取配置并检查 schema。
8 到处都是破折号 这次迁移——耗时六周——已经完成。 这次迁移耗时六周,已经完成。
9 堆叠的限定词(单独看较弱) 可能会潜在地或许导致 可能导致故障
10 带连字符的成对词(单独看较弱) 该 API 有完善的文档。 该 API 文档完善。
11 被动语态、缺少主语(单独看较弱) 无需账户。 你不需要账户。
C. 夸大与借用权威
12 被滥用的 AI 词汇 利用强大的缓存层,展现出…… 在设备上缓存 API 响应
13 夸大的重要性 标志着项目历程中的关键时刻 新增 CLI 并放弃 Node 16
14 模糊的关联 这次故障与 DNS 变更有关。 DNS 变更导致了这次故障。
15 浅薄的 -ing 附加语 ……,彰显了其对无障碍的承诺 (删除)
16 推销式语言 我们开创性的、世界级的编辑器 该编辑器在 VS Code 中运行。
17 借用权威 专家一致认为……曾被 TechCrunch、Wired 报道…… 它曾在五月登上 Hacker News 首页。
18 回避 is / has 作为中心枢纽,并拥有 40 个选项 保存设置。它有 40 个选项。
D. 按规则格式化
19 把加粗当装饰 性能:性能已得到改进。 该版本让页面加载更快。
20 装饰性标题 ## 🚀 CLI 入门指南 → ## 安装 CLI
21 弯引号(单独看较弱) “true” "true"
E. 聊天和草稿的残留
22 聊天机器人残留 好问题!……希望这有帮助! (删除包装语)
23 知识截止的模糊措辞 虽然细节有限,但它很可能创建于 2015 年前后。 来源没有说明。
24 标题重复 ## 安全 / 安全很重要。 (删除该行)
25 写文档本身而非内容 添加这个函数是为了替代旧方法…… 这个函数在哈希表中查找用户。
F. 写给错误的读者
26 重新解释读者已知的内容 先完整走一遍诊断过程的回复 同意。我会把任务切换到 UTC。

第 2 遍:15 条 STE80 规则

# 规则 80% 与严格模式
S1 每句一个意思 80% 允许用 "and" 或 "because" 连接两个相关事实
S2 短句:20 词(指令),25 词(描述) 80% 允许小幅超限
S3 条件在前:"如果 X,就做 Y。" 相同
S4 不要省略词("the"、"a"、"that") 80% 允许表格和标题中出现片段
S5 步骤和复杂内容用列表 相同
S6 主动语态 相同
S7 只用简单时态 相同
S8 用动词而非名词,不用 "-ing" 链 严格:"check" 和 "test" 是名词
S9 诚实的情态动词:can、must、will 80% 保留 "may" 和 "should" 表示真实的不确定
S10 用词平实,一词一义,不用短语动词 80% 保留自然用词
S11 一物一词 相同
S12 名词堆叠不超过三个词 相同
S13 每段一个主题,最多六句 相同
S14 除说明外,流程为先警告 同上
S15 简单标点,不用分号 严格:也不使用缩略形式

更多示例:references/ste80-rules.md。完整的严格规则和检查清单:references/strict-mode.md。超过 100 个普通词替换:references/word-swaps.md。

检查器

scripts/ste_check.py 是一个无依赖的小型 Python linter。它会标记许多 Pass 1 特征,例如 not-X-but-Y、聊天机器人短语、铺垫、虚假深度、堆叠模糊限定、模糊权威与关联、“-ing”附加语、夸大表述、AI 词汇、连字符对和弯引号。它还会标记可量化的 Pass 2 规则:句子和段落长度、分号、破折号、被动语态、完成时和进行时、“-ing”形式和短语动词。

python scripts/ste_check.py README.md
python scripts/ste_check.py --strict docs/runbook.md
cat draft.txt | python scripts/ste_check.py -

它是启发式工具,不是 AI 检测器,也不是合规检查器。

测试

evals/ 在 claude plugin eval 格式中有四个用例:重写 README、从零开始解释、严格 runbook,以及一篇不提及 STE 的随意 LinkedIn 帖子。用 claude plugin eval . --allow-tools Write,Edit,Bash 运行它们。

我们观察到:当提示词点名 ASD-STE100 时,基础模型已经基本能把握风格。该 skill 带来的差异在于保真度。在 LinkedIn 重写中,未使用 skill 的运行编造了一句引语,并把“40+ customers”改成“40-odd”。使用 skill 的运行保留了每个事实。在 README 重写中,它保留了“you may need to”,并标记了源文中的一处矛盾。这些是小测试,因此请将其视为提示,而非证明。

限制

  • STE 适用于清晰的说明性文本。对于小说、演讲和品牌文案,该 skill 只执行 Pass 1。
  • STE 是英语标准。对于其他语言,该 skill 应用特征和结构规则,但不应用英语词表。
  • “STE 风格”不是“STE 合规”。合规需要官方词典、受过训练的写作者和审校。

来源与致谢

免责声明

本 skill 不包含 ASD-STE100 规范或其词典。STE 规则经过改写和简化。ASD-STE100 和 Simplified Technical English 是 ASD(AeroSpace, Security and Defence Industries Association of Europe)的商标。本项目与 ASD 无关联,也未获其认可。

许可证

MIT

来源:Hacker News · github.com