我们不认识写这些代码的人。Anthropic 没有公开过 Claude Code 的工程师名单, 媒体报道里只偶尔出现负责人 Boris Cherney 的名字。
当你探索 512,000 行代码,会在某些角落碰到一些带给你惊喜的东西——一个多余的单词、一段没必要写的注释、一只被16进制保护的水豚。通过这些没有功能性的代码,或许我们得以离这群 Builder 更近一些。
正因为它们不必要,它们才有意思。 因为一个人在功能之外选择留下什么,最能说明这个人是谁。
见字如面,代码也是一本书,它们让我觉得离这群人很近。
一只被16进制保护的水豚
虚拟宠物系统里有 18 种物种。每一种的名字在源码里都不是直接写的, 而是用16进制字符编码拼出来的:
export const duck = c(0x64,0x75,0x63,0x6b) as 'duck'
export const cat = c(0x63,0x61,0x74) as 'cat'
export const capybara = c(
0x63, 0x61, 0x70, 0x79,
0x62, 0x61, 0x72, 0x61,
) as 'capybara'
代码顶部的注释解释了原因:其中一种物种的名字,跟 Anthropic 某款内部模型的代号撞了。 发布流程里有一个自动扫描工具,会在打包文件里搜索被禁止的字符串。 如果直接写明文,构建会被拦截。
但让我觉得可爱的是接下来这句:"All species encoded uniformly"—— 所有物种统一编码。只有 capybara 需要被隐藏,但工程师把全部 18 种都做了同样处理, 让水豚不至于在代码里看起来"特殊"。
这件事的本质是:一个工程师想在宠物系统里加一只水豚, 但公司安全系统不允许这个词以明文出现。 于是他把整个物种列表都改成了密文格式, 就为了让那只水豚能安静地待在名单里,不被任何人另眼相看。
"用来挑鸭子够了"
宠物系统的生成算法用了一个叫 Mulberry32 的伪随机数生成器。 这是一个很普通的技术选型,通常在注释里你会看到类似 "Mulberry32 — seeded PRNG for deterministic generation" 这样的标准说明。
但这里的注释是这么写的:
// Mulberry32 — tiny seeded PRNG, good enough for picking ducks
"用来挑鸭子够了。"
这八个英文单词让我在屏幕前笑了一下。 它完全可以不这么写。"Good enough for picking ducks" 没有传递任何技术信息, 但它告诉我写这行代码的人在那一刻是轻松的、是笑着写的。
同样的气质出现在宠物系统的数据结构命名里。
每只宠物由两层数据构成:算法确定的那层叫 CompanionBones(躯骨),
AI 生成的那层叫 CompanionSoul(灵魂)。
生成密钥的常量不叫 salt-v1,叫 'friend-2026-401'——
朋友,2026年4月1日。
他们完全可以用标准的技术命名。但他们选了躯骨、灵魂和朋友。
170 个没有必要的词
Claude Code 在处理请求时会显示一个等待动画,上面有一个不断变换的动词。 大多数软件会写 "Processing…" 或 "Loading…"。 Claude Code 的工程师写了 170 个:
来自 constants/spinnerVerbs.ts,节选
Beboppin' · Boondoggling · Clauding · Combobulating · Dilly-dallying · Flibbertigibbeting · Gallivanting · Hullaballooing · Lollygagging · Moonwalking · Razzmatazzing · Shenaniganing · Tomfoolering · Whatchamacalliting · Wibbling
Flibbertigibbeting——叽叽喳喳中。19个字母, 可能是整个代码库里最长的字符串常量之一。 Boondoggling——做无意义的工作。 Lollygagging——磨洋工。 还有 Clauding——用自己产品的名字造了个动词。
一个等待动画需要的词是 1 个。他们写了 170 个。 这 169 个多余的词没有任何产品价值, 但有人认真地把 Flibbertigibbeting 打进了代码—— 这个词长到你在拼写的时候可能会出错至少一次。 没有用户会注意到它在等待动画里一闪而过。 但写它的人觉得,万一有人注意到了,他们会笑。
给宠物戴上一只更小的鸭子
宠物系统里,非普通级别的宠物会随机获得一顶帽子。
帽子列表里有:王冠、礼帽、光环、巫师帽、针织帽、螺旋桨帽——
还有一个叫 tinyduck。
Tinyduck 的帽子渲染代码长这样:
const HAT_LINES = {
crown: ' \\^^^/ ',
tophat: ' [___] ',
halo: ' ( ) ',
wizard: ' /^\\ ',
beanie: ' (___) ',
tinyduck: ' ,> ',
}
,> 是一只极其简约的鸭子侧脸。两个字符。
它被放在另一只宠物的头上。
想象一下这个设计会议——如果它曾经发生过的话: "帽子列表里应该有什么?" "王冠,礼帽,巫师帽……" "还有呢?" "在宠物头上放一只更小的鸭子。"
而且 tinyduck 不是后来才加进去的。它和王冠、礼帽一起, 从一开始就在帽子数组里。这群人从一开始就觉得, 一个严肃的帽子系统里必须有一只不严肃的鸭子。
摸宠物时会飘爱心
代码里有一个叫 /buddy pet 的命令。当你"摸"你的宠物时,
会触发一段持续 2.5 秒的爱心动画:
const PET_BURST_MS = 2500
// Hearts float up-and-out over 5 ticks (~2.5s)
const PET_HEARTS = [
' ♥ ♥ ',
' ♥ ♥ ♥ ',
' ♥ ♥ ♥ ',
'♥ ♥ ♥ ',
'· · · ',
]
五帧动画,爱心从宠物头上飘起来,越飘越散,最后变成小点消失。
最后一帧用 · 代替 ♥,模拟爱心升到高处后变小、变淡。
同时,宠物的 idle 动画会切换到兴奋模式——
代码注释写的是 "Excited: cycle all fidget frames fast"。
宠物在被摸的时候会加速摆动。
这是一个命令行工具。黑底白字的终端界面。 用它的人是程序员,用它做的事是写代码、调 bug、提交 commit。 但有人在这个工具里做了一个功能:摸宠物,飘爱心,宠物会开心。
在代码审查里,这个功能完全有可能被毙掉—— "这不在产品路线图里"、"它不影响核心体验"、"我们有更重要的事要做"。 但它活到了今天,写完了,测好了,就在代码里等着被打开。
他们理想中的同事长什么样
我在源码的系统提示文件里读到一组给 AI 的行为规则。 表面上是在约束 AI,但读进去你会发现, 这些规则精确地描绘了"写规则的人最欣赏什么样的同事"。
关于独立思考—— "If you notice the user's request is based on a misconception, say so. You're a collaborator, not just an executor." "如果你发现用户的请求基于误解,说出来。你是协作者,不只是执行者。"
关于面对不确定—— "A good colleague faced with ambiguity doesn't just stop — they investigate, reduce risk, and build understanding." "一个好同事面对模糊情况时不会停下来——他们会调查、降低风险、建立理解。"
关于写注释—— "Default to writing no comments. Only add one when the WHY is non-obvious." "默认不写注释。只在'为什么'不明显的时候才加。"
关于汇报—— "Never claim 'all tests pass' when output shows failures. Equally, do not hedge confirmed results with unnecessary disclaimers." "不要在失败时说通过,也不要在成功时加不必要的免责声明。"
敢说话,不停手,不废话,不撒谎也不自谦。 他们把这些标准写给了 AI,但这组规则加在一起, 也等于不小心画了一张自画像—— 这就是他们自己想成为、也希望身边人成为的样子。
代码中的六个角落,六处不应该存在但被留下来的东西。
他们把所有物种都编码了,就为了让一只水豚不显得特殊。 他们给算法注释写"用来挑鸭子够了",给数据结构取名叫灵魂。 他们在等待动画里塞了 170 个没人会看到的玩笑。 他们在帽子系统里放了一只两个字符的鸭子。 他们给终端工具写了"摸宠物飘爱心"的功能。 他们把自己最欣赏的同事模样,一条一条写进了 AI 的行为准则。
我们不认识他们,但读完这些代码之后, 我觉得如果有一天在某个地方遇到他们,我可能会认出来—— 就是那群会在技术文档里开玩笑、 会给变量取名叫"朋友"的人。
写在最后
写完这篇的时候我想了很久,我上一次在自己的工作里留下一个"不影响功能但让它更有人味"的细节,是什么时候。