BLOG

技术拆解 023|anatomy:5 天 6300 星的 agent 技能包,把「讲清楚」做成一台可交互的机器

Kael Zhang
技术拆解agent skillanatomy等距插画SVG
广告 · Advertisement

10 月 8 日建仓,五天攒下超过 6300 颗星、450 个 fork,这是 GitHub 上 wheresryan22/anatomy 的成绩。它不是应用,也不是库,而是一个 agent skill(技能包):一份 173 行的 SKILL.md 规范,加一套等距渲染工具箱,加八个完整范本,用 npx skills add 装进 Claude Code、Codex、OpenCode、Antigravity 任意一个 agent,agent 就能替你把「讲清楚一个概念」这件事做成可交互的等距机器插画,纯 SVG 打底,可选 WebGL 着色器和 3D 旋转。官方 description 的原话是「An agent skill for creating detailed, interactive isometric illustrations of real-world machines and complex systems」。昨天拆的 wordcraft 卖的是 agent 量产出来的产出,anatomy 卖的是产出的方法论,两天连着看正好凑齐 agent 生态的两层。本文按老规矩拆六段。

一、它是什么

anatomy 的完整形态是「规范 + 工具箱 + 范本」三件套。规范是 SKILL.md,写给 agent 看的工作流文档,从设计哲学到分层报价到验收清单全在里面;工具箱是 kit/ 目录,一万五千多行 JavaScript,等距投影、旋转体、管道线束、WebGL 着色器、3D 模式、几何审计各有专门模块;范本是 examples/ 下八个完整示例,从三百行的千分表到带 WebGL 尾焰的猛禽火箭发动机测试台,每个都能一条命令重新构建。整个仓库 147 个文件、29078 行(本地统计,含示例),MIT 许可,README badge 声明零依赖,构建只用 Node 内置模块,这个声明与包文件实况一致。

它画出来的东西有统一的样貌:等距视角下一台精致的机器,四色调 shading、画家算法排序、卡片式画框(编号、标题、交互提示、实时读数),运动是克制的缓动。八个范本覆盖了难度梯度:desk-computer 是一台能真打字的桌面电脑,键入的文字出现在机箱平面里的 CRT 上,约 85 个实体、850 条路径;arcade-cabinet 是拆了侧板的街机柜剖面,约 240 个实体加 15 根线缆,一枚硬币投进槽口,按 30 度斜面上滚动圆盘的真实速度滑下钱道,撞开微动开关,电脉冲沿线缆一段段跑到主板,CRT 预热、自检、进吸引模式,全程物理模拟;raptor-engine 是挂在试车台上的猛禽发动机,WebGL 渲染尾焰、激波、水花和蒸汽,夹在前后两层 SVG 之间。

它的热度路径和 wordcraft 完全不同:wordcraft 靠 HN 三百多星的讨论帖出圈,anatomy 在 HN 只有一次两个支持票的沉没提交,它的传播走的是 GitHub trending、X 和技能站(homepage 挂着带社区 gallery 的 skills.wheresryan.sh/anatomy)。同一个热度量级,两条完全不同的路。

二、仓库结构

灵魂在 SKILL.md,173 行,YAML frontmatter 声明兼容性(为 Claude Code 而写,也能跑在 Antigravity、OpenCode 和 Codex 里,需要 Node.js 20.10+ 和 Chrome/Chromium 做检查),正文是给 agent 的完整工作流:十步,从定规模、收集真实数字、发明物体、写零件清单,到建几何、排序绘制、装卡片画框、加动效、像批评家一样验收。

肌肉在 kit/,15870 行。iso-kit 是等距投影核心,lathe.mjs 生成任意轴向的旋转体(铃口、法兰、阀体),tube.mjs 把三维管道和线缆切成可深度排序的段,gl.mjs 是 WebGL 层,turn 系列三个文件管 3D 旋转模式,audit.mjs 做几何审计,react/ 下还有服务端安全的绘图组件和客户端动效 hooks。references/ 是九篇分层文档共 2247 行,craft、kit、webgl、3d、motion、react、verify、walkthrough、publish 各管一层,webgl.md 最长,473 行。

外围件一样不缺:evals/evals.json 是技能评测集,tests/fixtures/ 放四张 PNG 视觉回归基线,.github/ 里有 CI 和 PR 模板,agents/openai.yaml 是 Codex 配置。评测集值得多看一眼:五组「prompt 到期望输出」的题,从令牌桶限流器、数据库连接池到 CDN 边缘缓存、本生灯火焰、意式咖啡机剖面,期望输出里写满了验收标准,比如「所有弯曲部件平滑着色无阶梯色块」「node build.mjs —audit 必须以 audit passed 结束、每项失败计数为零」。给 agent 技能配评测集,这个动作本身在技能包里还不多见。

三、核心机制

三件东西值得搬走。

第一件,「物体即解释」的设计哲学。SKILL.md 里加粗写着 the one idea that matters: The object is the explanation。不许画框图、箭头和标注,要发明一台真实存在的机器,它的运转方式就是概念本身。文档里给了一张概念到机器的映射表:一个 GPU 共享上下文服务多个画布,画成一台龙门绘图机,一个打印头轮流拜访 16 个孔位;缓存键命中就跳过重绘,画成一把弹子锁,每根销子对上,锁芯才转;49×49 的可分离模糊省成 49+49,画成一块钉床印章配两把梳子轨道。连失败模式都写好了:太抽象(堆叠的板子、悬浮的方块读不出任何东西)和太平淡(一块大板画几条线,没有体积没有零件),解法相同,造一台由许多小而精确的零件组成的、认得出的机器。

第二件,—audit 逐帧几何证明。这是全仓最硬的工程亮点。kit/audit.mjs 要求构建时记录每个零件的真实形状,然后对静止态、爆炸分解态和动画回放的每一帧做机器证明:没有任何部件穿过任何部件,每个端点都落在真实安装座上,没有折弯夹扁,所有重叠按真实深度顺序绘制,有问题直接非零退出。猛禽发动机的爆炸分解动画拆成 11 个装配体、逐帧深度重排序,全部可审计。SKILL.md 还专门堵了作弊路径:用一个冒名形状糊弄审计本身就是 bug,审计会判它失败。配套一条同源的诚实条款:图上显示的每个数字来自驱动零件运动的同一个模型,读数不是画死的,是物理模型实时算的。街机柜里硬币下滑的速度、水波槽里频率变化的传播,背后都是真模型。

第三件,把工时写进技能文档。工作流第一步是定规模:Figure 档一个机制、40 到 80 个零件,通常一小时内完成,当前规则是干脆不给用户报价(10 月 13 日刚合并的 PR #43 改的就是这条);Hero 档 80 到 150 个零件,约 2 到 4 小时,要先告知再动工;Epic 档 6 小时起步,规则是不许直接开工,先给估价、提一个保留核心创意的 Hero 缩减版,用户选定才做完整版。无论哪档,第一个小时内必须有一个能在浏览器打开的页面,然后逐步加深。让 agent 在动手前先向用户报工期,这是把项目管理纪律写进技能规范的少见样本。

四、工程质量

几条房规写在 CONTRIBUTING 里,条条带牙齿。代码里不写注释:不许文件头注释,不许难懂行旁边的说明,不许 JSDoc,解释放进命名和结构里,只有 “use client” 这类工具指令例外。kit 改动必须 opt-in:新增选项或函数的默认行为必须等于旧行为,所有既有示例重新构建后必须字节级不变(byte-identical),CI 检查这一条;想改图就在 PR 里说明,并把重建后的页面一起提交。字节级不变是一条硬回归线,它把「工具箱改动」和「作品变化」彻底解耦,agent 大批量改 kit 时不会悄悄毁掉任何一张已发布的图。

其余基建同样齐整:四张 PNG 视觉回归基线锁住明暗两主题下的实体与点阵渲染,CI workflow 挂在 .github 下,评测集给出五组带验收标准的题。贡献结构(10-13 快照):8 个贡献者共 119 个 commits,主作者 wheresryan22 占 72 个约 61%,第二贡献者 rudycelekli 33 个占 28%,五天里 PR 编号已开到 #43。个人主导成立,但社区已经进场,这和 wordcraft 那种「主力一人三天五万行」的成品仓形态是两种结构。仓库还把社区投稿做成了完整回路:配套的 anatomy-community 仓做作品 gallery,用户说一句「publish this figure to the Anatomy community gallery」,agent 会问标题和 GitHub 名,确认后自动开 PR,全程不用碰 git。技能包连分发和社区投稿都替用户包办了。

五、边界与代价

README 的 Limits 一节自认得很清楚。它不是图表库:没有坐标轴、没有序列、没有数据绘图,数字只以模型驱动的实时读数和零件的真实尺寸出现。它只画机器、仪器、工具和家具,不画人,不画精确地图,一个没有机制可造的想法做出来就会偏弱。「慢是故意的」(It is slow on purpose 是 README 原文):一张图要走完零件清单、几何、审计、两主题下每个接头的特写,是一个长会话;猛禽发动机构建要几分钟,30 个部件的完整 3D 环绕审计要 15 到 20 分钟。

3D 模式自己标着 beta:引擎只在自带示例和一个测试图上验证过,还没上过生产图;380 个部件的压力测试模型(一只杂乱工作台上的机械手)在 1440px 下约 20fps,手机限流档(390px、4 倍 CPU 节流)只有 13 到 15fps,均为官方自报压测口径。WebGL 效果依赖浏览器支持,好在无 WebGL 时 SVG 仍然完整可读,reduced motion 下所有图自动静止,可访问性有兜底。对使用者还有一条隐性成本:这套技能的上手对象是 agent 而不是人,你自己读完 173 行规范加九篇 references 再手写几何,不是它设计的用法。

六、判断

anatomy 最值得盯的不是插画本身,而是它作为分发单元的形态。一个技能包五天冲进 GitHub trending 头部,说明 agent 生态的基础设施层开始长出自己的明星项目:以前开源冲榜的是应用和库,用户是人;现在冲榜的可以是「教 agent 干活的方法论」,用户是 agent,人只负责验收。它和 wordcraft 正好是这一波的两面,wordcraft 证明 agent 能大批量产出合规的应用代码,anatomy 证明产出质量的方法论本身可以打包、分发、评测、迭代。旁证也在场:Anthropic 把 Agent Skills 做成了开放格式,Codex、OpenCode、Antigravity 都已支持加载,一个技能包一次编写四处可跑,和当年 npm 包的处境越来越像。

适合三类人。写 agent 技能的:SKILL.md 的结构可以直接抄,设计哲学、失败模式、分层报价、工作流步骤、验收清单,一样不缺,evals.json 更是给「技能怎么测」打了样。做技术传播的:「物体即解释」是一套完整的内容方法论,把抽象概念映射成可辨认的机器,这个思路不依赖它的代码也成立。用 Claude Code 或 Codex 的:装上就能让 agent 给博客、文档、落地页产出 Linear 风格的交互插画,代价是等一个长会话。

风险面收尾:单人主导加刚起步的社区,kit 一万五千行的维护压力会持续变大;3D 模式帧率不过关,beta 标签短期摘不掉;技能效果高度依赖宿主 agent 的执行力,换一个弱模型结果可能大幅退化,评测集有了,公开跑分还没有。但即便明天仓库停更,它已经回答了一个问题:agent 时代的开源明星项目,可以只是一份写得极好的规范。173 行 SKILL.md 加上「每个数字来自同一个模型」的诚实条款,比很多完整应用的文档更像工程作品。


信息来源

  • 仓库与文档:github.com/wheresryan22/anatomy 的 README、SKILL.md、CONTRIBUTING.md、evals/evals.json、kit/audit.mjs(本地浅 clone 检视,文件数与行数为 find+wc 统计)
  • 星数、fork、贡献者与 commits:GitHub repos/contributors/commits API,2026-10-13 快照
  • HN 传播情况:Algolia 检索,仅一次 2▲ 提交,热度路径以 GitHub trending 与技能站为准
  • 分层报价、帧率、构建耗时:SKILL.md 与 README 自报口径,正文已逐处标注
广告 · Advertisement

常见问题

anatomy 到底是什么形态的东西?

它不是应用也不是库,而是一个 agent skill(技能包):核心是一份 173 行的 SKILL.md 规范,配一套约 15870 行的等距渲染 kit、8 个完整 examples 和 evals 评测集,通过 npx skills add 安装进 Claude Code、Codex、OpenCode、Antigravity 等任意 agent。

为什么 5 天能冲 6300 星?

三个原因:agent skill 是新分发单元,装了就能用,门槛极低;「把概念做成可交互等距机器插画」的产出效果直观、易传播;仓库工程质量高,带 evals 评测与审计脚本,不是玩具 demo。注意其热度路径是 GitHub trending 而非 HN(HN 提交仅 2 票沉没)。

它和 wordcraft 这类项目的区别是什么?

wordcraft 卖的是 agent 量产出来的产出(成品应用),anatomy 卖的是产出的方法论(教 agent 怎么做产出)。前者是 agent 生态的产品层,后者是能力层,连着看正好是 agent 生态的两层。