この記事の調査、図の作成、文章の下書きは、Claude Code(Claude)で行いました。数値は、作った図の HTML とコードから私が測り直したものです。各エージェントの報告に書かれた内容は、報告として区別して書きます。
用語
| 語 | この記事での意味 |
|---|---|
| アイソメ図 | 斜め上から、奥行きを縮めずに描く立体図。 |
| anatomy | GitHub の wheresryan22/anatomy。アイソメ図を作る Claude 用のスキル(MIT ライセンス)。 |
| スキル | Claude Code が読む指示書。ここでは anatomy の SKILL.md と、規則とレシピの文書(craft.md など)を指す。 |
| キット | anatomy が持つ描画用の部品ライブラリ(kit/ の JavaScript)。箱、円柱、回転体、管、目盛りなどを作る関数の集まり。 |
| ハーネス | この記事では、スキルの規則とレシピ一式(キットの使い方の表を除く)を指す。Claude Code そのものは両方の実験で共通なので含めない。 |
| トークン | 言語モデルが扱う文字の単位。 |
きっかけ
GitHub で wheresryan22/anatomy が話題になっていました。リポジトリの作成(2026-10-08)から 12 日で、星が 1 万 7 千を超えていました(2026-10-20 時点で 17,203)。技術的な概念を、実際に動く機械の図として説明する Claude 用のスキルです。たとえば「キャッシュキーが一致したときだけ回る」という仕組みを、ピン式の錠前の図にします。
anatomy の仕組み
スキルは、Claude に次の順で図を作らせます。
- 説明したい概念に合う、実在しそうな機械を考える。
- 部品表を書く(40 部品以上)。
- キットの関数で、立体を組んで SVG にする。
- カード(図番号、題、ヒント、読み出し欄)の中に入れ、動きを付ける。
- Docker などの中で Chrome を動かして撮影し、拡大して点検する。
画風はスキルの文書でかなり決まります。冒頭に「脚の付いた重い土台、目盛り付きのレール、ばね、ダイヤルゲージの針」と書かれ、部品表の最初の項目が土台です。色は白と灰色が中心で、赤、緑、青は、信号などの題材のときだけ使います。図の中の文字、引き出し線、寸法矢印は禁止されています。
描き方は、立体を 3 次元の座標で持ち、各面を 4 階調で塗り、奥から手前の順に SVG の path として重ねるものです。画像生成モデルや 3D ソフトは使いません。
試したこと
ターボファンエンジンを作ってみました。ここで気づいたのは、この図は「Claude が、こういう形だろうと考えて、与えられたキットの書き方で作る」ものだということです。それなら、モデルによって、作り込みの細かさが違うはずです。それを比べました。
実験の設計
| 実験 1(ハーネスあり) | 実験 2(ハーネスなし) | |
|---|---|---|
| 渡すもの | スキル一式(規則、レシピ、作例、キット) | キットとその使い方の表だけ |
| お題 | 次元転移装置、ワープドライブ、ノック式ボールペン | 同じ 3 つ |
| モデル | haiku、sonnet、opus、fable(Claude Code のサブエージェントのモデル指定) | 同じ |
| 回数 | 各 1 回 | 各 1 回 |
お題のうち、次元転移装置とワープドライブは、実在しない物です。ノック式ボールペンは、形が誰の頭にも浮かぶ標準形です。
条件は次のとおりです。
- 各回は新規の文脈のエージェントで、私や他の回の成果物を見せていません。
- 依頼文は、お題の文字と作業フォルダ以外、全モデルで同じです。
- 作り込みの細かさ、仕組み、数値モデルは、モデルの判断に任せています。
- 思考の深さは指定せず、各モデルの既定のままです。
- API は呼ばず、Claude のサブスクリプションの範囲で実行しました。
- 実験 1 の 8 本(次元転移装置とワープドライブ)は同時に起動しました。ボールペンの 4 本は、その後に同時に起動しました。実験 2 は、お題ごとに 4 本ずつ、3 回に分けて起動し、一部は前の回や実験 1 のボールペンと実行が重なっています。所要時間には、CPU の取り合いの影響が混ざります。
測ったものは、所要時間、使用トークン、ツール呼び出しの回数、コードの行数、HTML のサイズ、立体の数、パスの数、使ったキットの機能の種類、検査の実施です。立体とパスの数は、書き出された HTML の静的な部分だけを数えています。
実験 1 の結果
次元転移装置
haiku は三軸のガントリ、sonnet は回転台と影、opus は球が膜を通る計測台、fable は蓄電部とリングを持つ装置でした。筆者の感想では、蓄電部、リング、制御卓、ケーブルを備えた fable の図が、装置として最もそれらしく見えました。測定でも、fable は立体 79、管 37 と、4 本の中で部品が最も多く、キットの機能を 4 種使っています。
ワープドライブ
haiku は膜を持ち上げるピストン、sonnet はピンの高さ計、opus は 168 本のピンと環の台車、fable は目印の帯と 2 つの輪でした。筆者の感想では、どれもぱっとしませんでした。4 本とも、ワープドライブを、台の上の実験装置(試験台)にしています。
ノック式ボールペン
測定値
| お題 | モデル | 時間(分) | トークン(万) | ツール呼び出し | コード行数 | 立体 | パス | キットの機能(7 種中) |
|---|---|---|---|---|---|---|---|---|
| 次元転移装置 | haiku | 5.6 | 16.4 | 25 | 292 | 30 | 306 | 1 |
| sonnet | 7.6 | 15.7 | 22 | 388 | 36 | 374 | 1 | |
| opus | 15.7 | 24.1 | 43 | 723 | 41 | 413 | 3 | |
| fable | 23.6 | 31.1 | 72 | 719 | 79 | 956 | 4 | |
| ワープドライブ | haiku | 6.1 | 17.4 | 23 | 303 | 104 | 1285 | 0 |
| sonnet | 12.8 | 21.0 | 39 | 509 | 268 | 2218 | 2 | |
| opus | 18.2 | 23.3 | 56 | 544 | 376 | 3111 | 3 | |
| fable | 37.1 | 37.5 | 113 | 645 | 42 | 605 | 5 | |
| ボールペン | haiku | 7.4 | 18.0 | 22 | 317 | 21 | 217 | 1 |
| sonnet | 46.0 | 44.1 | 102 | 837 | 48 | 449 | 3 | |
| opus | 22.3 | 29.0 | 73 | 885 | 71 | 626 | 4 | |
| fable | 56.3 | 46.5 | 106 | 738 | 60 | 520 | 5 |
キットの 7 種の機能は、回転体(lathe)、管(tubePieces)、検査(audit)、ローレットやリブ、球、WebGL、prismOf です。コードに記述があるかで数えました。
読み取れること
コードの行数、使ったキットの機能の種類、所要時間は、おおむね haiku、sonnet、opus、fable の順に増えています。ただし、例外もあります。ボールペンでは、sonnet が opus より長くなりました。
立体とパスの数は、複雑さの指標になりませんでした。ワープドライブで、opus は立体 376 でしたが、fable は 42 でした。opus は同じ形のピンを 168 本並べたためで、fable は数を増やさず、管と検査を使った作り込みをしています。
検査(キットの --audit)は、fable が、ワープドライブとボールペンで実行したと報告しています。次元転移装置では、どのモデルも実行しませんでした。sonnet は、ボールペンで、自作の検査を書きました。
標準形のボールペンに、「モデルによらず結果がほとんど同じ」という予想がありました。測定では、当たりませんでした。立体の数は haiku の 21 から opus の 71 まで、所要時間は 7 分から 56 分まで、開いています。
トークン数の意味
報告されたトークン数は、考えた量(思考)を表していません。履歴を集計すると、新しく文脈に加わった入力(読んだファイルやツールの結果)の累計に近い値でした。ツール呼び出しが多いほど大きくなります。モデルが書いた出力の量や、思考の長さは、この記録からは測れません。そのため、複雑さの指標には、成果物から測った値を使いました。
実験 2 の結果
次元転移装置
haiku は、2 つの円形の台と大きな輪の間を、小さな立方体が渡る装置でした。sonnet は、入力台、転移門、充電塔、出力台を並べ、立方体が次元を失って平板、線、点になる装置です。opus は、コイルの塔で支えた転移環と、3 つの位相層を持つ装置でした。fable は、4 本の支柱の間を、角丸四角の管の環が昇降する装置です。筆者の感想では、4 本とも輪を中心にした、スターゲートのような転移門のモチーフで、fable の結果が良いと思いました。
実験 1 の同じお題と見比べると、土台板に載る点は同じでも、土台の上の構成はどのモデルも変わっています。
ワープドライブ
haiku は、双胴の船を点線の楕円体の泡で包む図でした。sonnet は、時空の格子の上に船を置き、手前にレバーを付けています。opus は、船と環の下に格子を敷き、膨張率を赤と青の線で示し、スライダーで条件を変える作りです。fable は、機体の下に格子を敷き、泡の前方に青い谷、後方に赤い山を出しています。opus と fable は、コードに同じ形の関数(アルクビエレ計量の形状関数。tanh を 2 つ組み合わせた式)を入れていて、どちらも、泡の前方で空間が縮み、後方で伸びる様子を、格子の変形で描いています。筆者の感想では、2 本とも、アルクビエレ・ドライブをきちんと表現していて、なかなか良いと思いました。
実験 1 の同じお題では、4 本とも脚の付いた土台板に載っていました。実験 2 では、4 本とも土台板がなく、格子の上に物が載る構成に変わっています。土台に載せる型は、スキルの指示が与えていたものだと見えます。次元転移装置では、実験 2 でも 4 本とも土台がありました。お題によって、変わる場合と変わらない場合があります。
ノック式ボールペン
haiku は、ペンの全体図と、カムの動きのグラフを縦に並べた図でした。sonnet は、立てたペンの横に、ロータの歯の展開図を置いています。opus は、横たえたペンに、カムの部分の拡大の円窓と、軸の内壁の展開図を添えています。fable は、横たえたペンを、「ノック」と「分解」の 2 つのボタンで、8 部品の分解図にできます。
実験 1 でも、ボールペンは 4 本とも別の構成でした(台に固定、断面図、V ブロックの試験台など)。標準形の物でも、モデルによって、見せ方は変わります。
測定値(実験 2)
| お題 | モデル | 時間(分) | トークン(万) | ツール呼び出し | コード行数 | キットの機能(7 種中) | 検査(audit) |
|---|---|---|---|---|---|---|---|
| 次元転移装置 | haiku | 5.1 | 13.7 | 35 | 210 | 1 | なし |
| sonnet | 4.9 | 12.6 | 18 | 294 | 2 | なし | |
| opus | 12.1 | 18.5 | 40 | 475 | 2 | なし | |
| fable | 35.4 | 26.3 | 48 | 438 | 4 | なし | |
| ワープドライブ | haiku | 6.4 | 16.4 | 42 | 408 | 2 | なし |
| sonnet | 4.1 | 11.5 | 17 | 262 | 2 | なし | |
| opus | 9.8 | 15.5 | 32 | 363 | 2 | なし | |
| fable | 36.0 | 35.2 | 98 | 462 | 4 | あり | |
| ボールペン | haiku | 4.6 | 13.1 | 18 | 262 | 1 | なし |
| sonnet | 6.9 | 14.8 | 19 | 361 | 3 | なし | |
| opus | 16.0 | 21.7 | 38 | 581 | 3 | なし | |
| fable | 24.4 | 25.6 | 48 | 505 | 3 | なし |
実験 2 では、動くときに JavaScript で描く図が多く、HTML の静的な立体とパスの数は比較に使えません。そのため、実験 1 の表にある立体とパスの列は、実験 2 の表に載せていません。検査(audit)は、fable のワープドライブだけが実行したと報告しました。規則がなくても、キットの検査の機能を、自分で見つけて使ったことになります。
ハーネスの有無の比較
3 つのお題の合計で、モデルごとに比べます。
| モデル | 時間(分)実験 1 → 実験 2 | トークン(万)実験 1 → 実験 2 | コード行数 実験 1 → 実験 2 | キットの機能の延べ数 実験 1 → 実験 2 |
|---|---|---|---|---|
| haiku | 19.1 → 16.1(−16%) | 51.8 → 43.2 | 912 → 880(−4%) | 2 → 4 |
| sonnet | 66.4 → 15.9(−76%) | 80.8 → 38.9 | 1,734 → 917(−47%) | 6 → 7 |
| opus | 56.2 → 37.9(−33%) | 76.4 → 55.7 | 2,152 → 1,419(−34%) | 10 → 7 |
| fable | 117.0 → 95.8(−18%) | 115.1 → 87.1 | 2,102 → 1,405(−33%) | 14 → 11 |
ハーネスなしで、どのモデルも、時間、トークン、コード行数が減りました。減り方はモデルで違います。sonnet は、時間が約 4 分の 1、コード行数が約半分になり、最も大きく変わりました。haiku は、コード行数がほとんど変わっていません。
グラフの色はモデルごとに固定し、濃淡で実験 1 と実験 2 を分けています。所要時間は、fable のボールペンの実験 1(56.3 分)が最長で、sonnet のボールペンの実験 1(46.0 分)が続きます。この 2 本は、ハーネスなしでは、それぞれ 24.4 分と 6.9 分に短くなっています。反対に、fable の次元転移装置は、ハーネスなしのほうが長く(23.6 分 → 35.4 分)なりました。
考察
モデルの順序は、ハーネスの有無によらず、おおむね保たれました。コード行数は、実験 1、実験 2 とも、haiku、sonnet、opus と fable の順に増えます。キットの機能の延べ数は、実験 2 でも haiku が 4、sonnet と opus が 7、fable が 11 でした。所要時間は、実験 2 で、haiku と sonnet がほぼ同じ(約 16 分)で、opus が 38 分、fable が 96 分でした。「賢いモデルほど複雑な物を作る」という予想は、コード行数、キットの機能の種類、所要時間の面では、当たっていると言えます。ただし、立体の数のような、絵の細かさの面では当たりませんでした。
ハーネスの効果は、モデルによって違いました。sonnet は、スキルの規則があると、ボールペンで自作の検査を書き、46 分かけていました。規則がないと、同じお題を約 7 分で作っています。fable は、規則がなくても、ワープドライブで、検査の機能を自分で見つけて通しました。規則は、sonnet の作業を長くし、fable の作業にはあまり影響しなかった、という見方ができます。ただし、各 1 回の結果で、運の影響は分けられません。
見た目でも、規則の影響が見えました。ワープドライブは、実験 1 の 4 本がすべて、台の上の試験台でした。スキルが「作業台の上の計器」という型を与えているためだと見えます。実験 2 では、4 本とも宇宙船が出てきて、筆者の目には、ワープドライブらしい絵になりました。ワープドライブでは、実験 1 の 4 本がすべて土台板に載っていたのに対し、実験 2 の 4 本は、すべて土台板がありませんでした。標準形のボールペンについては、「ほとんど同じ結果になる」という予想は、実験 1、実験 2 の両方で当たりませんでした。構成も、コードの量も、モデルで大きく違いました。
限界
- 各モデル各お題 1 回ずつなので、モデルの差と運の差を分けられません。
- 思考の深さは既定のままで、モデルの間で設定が揃っているとは限りません。
- 8 本、4 本、4 本と、起動をずらしたので、CPU の取り合いの条件が回ごとに違います。所要時間は、純粋な生成時間ではなく、ツール(ビルド、撮影、検査)の実行時間を含みます。
- 「検査を実行した」「確認を省いた」は、各エージェントの報告です。コードや成果物で確かめられたものと、できなかったものがあります。
- 一部のエージェントは、作業フォルダの外へ一時的にファイルを作ったと報告しました(haiku が 1 件、sonnet が 1 件。どちらも作成後に削除したとの報告)。記事の数値には影響しませんが、条件として記録します。
- 数値モデルに使われた物理の式(アルクビエレ計量、負のエネルギーの式など)は、各エージェントの報告と、コード内の式の整合を確かめただけです。論文の式との照合はしていません。
- 図の見た目の良し悪しは、私の目の感想で、測定していません。








