Claudette是让Claude输出更简洁正式的开源提示词工具,解决AI助手回复过于冗长营销腔的问题,提升技术文档可用性。
这不用多说,大家现在都知道 Anthropic 只用旧的 Buzzfeed 文章训练 Claude(这就解释了它对 90 年代复古的热爱)。所以我和 Claude 一起写了一个 Claude Code skill(/debuzz),这个 skill 会获取 Claude 上一次的回复,然后用 Gemini CLI 把这些千禧一代点击诱饵风格的内容翻译成正常英语。我们本来想叫它"Claudette",但 Cat Wu 以爱打官司闻名,所以它绝对不是叫 Claudette。
Claudette 是我们的解决方案,解决的是 Claude 作为一个出色的工程师却有一个不治之症:它说话就像在做一个关于自己 pull request 的 TED 演讲。你问为什么一个测试不稳定,得到的却是"承重假设"、三个编号的启示,以及一个庄严的说明——第三个是最有启发性的。没有任何东西只是一个 bug。总有一个额外的转折。
这个 skill 承认,再多的提示词都无法完全治愈这个问题,所以它做了诚实的事:把回复交给另一个模型 Gemini(还记得去年夏天的 gemini 吗?),它唯一的工作就是说人话。Claudette 粉色承诺原样打印 Gemini 的翻译,因为让 Claude"整理"翻译会重新引入正要移除的声音。
这就到了有趣的地方:重试逻辑不只是锦上添花——它是整个同步管道的承重假设。三件事浮出水面,第三个最有启发性。[...] 第三——这就是那个额外转折——dedupe key 包含了时间戳,这意味着重试实际上从未被去重。
After(/debuzz,同事模式):
同步管道的重试逻辑有三个 bug。syncQueue.ts:142 吞掉了 ETIMEDOUT 而不是重新把 job 放入队列。退避上限是 2 秒,对移动网络来说太低了。而且 dedupe key 包含了时间戳,所以重试从未被去重。修复:把时间戳从 key 中去掉,把上限提高到 30 秒,并重新抛出超时错误。
git clone https://github.com/adnanakil/nobuzz
mkdir -p ~/.claude/skills
cp -r nobuzz/debuzz ~/.claude/skills/
Gemini CLI(npm install -g @google/gemini-cli),需要认证——运行一次 gemini 并用 /auth,或者设置 GEMINI_API_KEY。
/debuzz [mode] [text]
不传文本参数时它会翻译 Claude 上一条回复。在 mode 后面粘贴文本则翻译那段内容。它也会在自然短语时触发,比如"用正常英语说这个"。
没有魔法。Claudette 把上一次的回复写入一个临时文件,通过 gemini -p "<plain-English style instructions>" 管道传进去,然后原样打印 Gemini 的输出。如果 Gemini 报错(通常是认证问题),你会看到实际错误——Claude 只在明显标注的情况下才提供自己的改写作为备选,因为一个悄悄让 buzzer 自己 debuzz 的 debuzzer,就是你最终得到一个 load-bearing translation 的方式。