STE80 Humanizer:用两步法把 AI 文本改写到 ASD-STE100 的 80%
Show HN: STE80 Humanizer – de-AI text by writing 80% of the way to ASD-STE100
Dodaios 发布 STE80 Humanizer,一个可安装到 Claude Code、Codex、Cursor 等 Agent 的 Skill,通过两步改写让 AI 生成的文本读起来更像人写的。
STE80 Humanizer 让 AI 写出的文本读起来像是一个细心的人写的,同时不改变它表达的内容。它结合了两种方法:
- humanizer 方法。 从 Wikipedia 的 Signs of AI writing 中移除 26 个 AI 写作特征,依据 blader/humanizer 的目录。
- 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 页面,然后是讲解视频。他的结论是,我们的工作正“向上进入抽象层,走向监督与理解”。清晰的输出是瓶颈,而写作是第一步。
来自 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 合规”。合规需要官方词典、受过训练的写作者和审校。
来源与致谢
- Andrej Karpathy 在 X,2026 年 10 月 2 日:https://x.com/karpathy/status/2105819303471976479
- ASD-STE100 Issue 9(2025):https://www.asd-ste100.org
- Wikipedia,Signs of AI writing(WikiProject AI Cleanup)
- Siqi Chen 的 blader/humanizer(MIT)。Pass 1 遵循其 26 种模式目录和顺序,并加入新示例。其许可声明见 LICENSE。
- Hacker News 关于 STE skills 的讨论(2026 年 7 月):https://news.ycombinator.com/item?id=49114639
免责声明
本 skill 不包含 ASD-STE100 规范或其词典。STE 规则经过改写和简化。ASD-STE100 和 Simplified Technical English 是 ASD(AeroSpace, Security and Defence Industries Association of Europe)的商标。本项目与 ASD 无关联,也未获其认可。
许可证
来源:Hacker News · github.com
