BuilderIO/skills は、Builder.io が公開しているAIコーディングエージェント向けの Agent Skill 集だ。READMEの1行目は「Small, composable skills for your favorite agent.(お気に入りのエージェントのための、小さく組み合わせられるスキル)」。⭐4,479・MIT。この「小さく」がどこまで本当なのかを、24本を1本ずつ測り、/visual-edit を実際に手元へ入れて確かめた。

BuilderIO/skillsは24本のSKILL.mdで合計205584バイト、うち47パーセントがvisual系3本。npx @agent-native/core@latest skills add visual-edit の1行で入るが、書かれるのはホーム配下のチルダ.claude/skillsとチルダ.claude.jsonでプロジェクトではない。インストールは1分21秒、入った本体は30990バイト、MCPサーバはdesign.agent-native.comに登録された。READMEはsmall composable skillsと書くが、実際に入るのはagent-native/skills 0.3.18と依存のagent-native/core 0.198.6で展開30008779バイト3976ファイル、ホスト型MCPの登録と未完了の認証タスク
main(最終コミット eb07be6・2026-09-30)を clone し、当記事で実際に npx を実行して計測
30秒でわかるBuilderIO/skills(2026-10-01時点)
  • ・`skills/` 配下に **SKILL.md 24本・合計205,584バイト**(ほかに `.agents/` に1本)
  • ・**上位3本はすべてvisual系**(visual-recap / visual-plan / visual-edit)で、**全体の47.4%**を占める
  • ・常駐するfrontmatterは24本合計 **7,076バイト=約1,769トークン**。本文まで読むと約51,396トークン
  • ・**`disable-model-invocation` を持つ本は0本**。24本すべてが自動起動の候補になる
  • ・`/visual-edit` を実際に導入:**1分21秒**、書かれたのは **`~/.claude/` 配下だけ**でプロジェクトは無変更
  • ・**公開リポジトリのSKILL.mdと配布版は完全一致ではない**(3ハンク・21行の差)

エージェント側の全体像やフレームワークの選び方はAIエージェントフレームワーク比較2026|LangGraph・CrewAI・Dify等9種をStar数・実コードで検証にまとめてある。本記事はその枝として、「スキル集を1つ入れる」という行為の中身を測る。

BuilderIO/skillsとは:24本の内訳を数える

リポジトリは 2026-06-10 作成、最終コミットは 2026-09-30 の eb07be6。コミットメッセージが chore: update Agent Native exported skills で、この時点で「ここは手で書く場所ではなく、別のどこかから書き出されている」と分かる。ライセンスは MIT、.claude-plugin/plugin.json の名前は builder-skills で、mcpServers として ./.mcp.json を指している。

24本の内訳はこうなっている。

系統 本数 中身
visual系 3 visual-recap(差分を対話的な振り返りに)・visual-plan(文字の計画を図に)・visual-edit(動いているアプリをキャンバスで編集)
/factory 系(実験扱い) 9 設定の factory と、collect / babysit-pr / review-prs / ship / lookback / human-digest / watchdog / recover
アプリ連携 3 an(Agent-Nativeアプリを会話の横で操作)・webmcp(ページのMCPツールを先に使う)・turn-into-app(スレッドやスキルを動くアプリに)
作業の作法 9 agent-watchdog・plan-arbiter・plow-ahead・efficient-fable・efficient-frontier・stay-within-limits・quick-recap・read-the-damn-docs・rewind

バイト数で見ると、重心がはっきりする。

BuilderIO/skillsのSKILL.mdをバイト数で比べた図。visual-recapが33616バイト、visual-planが32771バイト、visual-editが30992バイト、turn-into-appが24456バイト、webmcpが12966バイト、残り19本の合計が70783バイト
skills/ 配下の SKILL.md 24本を1本ずつ計測(2026-10-01・eb07be6)

上位3本がすべて visual系で、合計97,379バイト。24本の総計205,584バイトの 47.4% を1/8の本数が占めている。残り19本を合わせても70,783バイトで、visual系3本のほうが大きい。「小さく組み合わせられるスキル」という説明は、作法系の小さいスキル群には当てはまるが、看板商品には当てはまらない。

小さい側を見ると、確かに小さい。最小の quick-recap は1,420バイトで、中身は「作業が終わる応答は必ず 🟢 🟡 🔴 のいずれかで始まる100字未満のステータス行で終える」という規約ひとつだけ。efficient-frontier(3,422バイト)は、高価なモデルには設計・優先順位付け・曖昧さの解消・最終レビューだけを残し、調査・リポジトリの棚卸し・ログの圧縮・テスト失敗のクラスタリングといった作業を安いサブエージェントに投げる、という分担の手順書だ。判断と実行を分けるという考え方自体は、pstackの検証スキルとは|エージェントに自分の作業を証明させる2本をソースで読むで見たものと同じ系統にある。

24本すべてが自動起動する、という設計判断

読んでいて一番目を引いたのは、サイズでも本数でもなかった。disable-model-invocation: true を持つSKILL.mdが1本も無いことだ。

自動起動を止めているのはBuilderIO/skillsが24本中0本でdisable-model-invocationを持つSKILL.mdは1本も無い、emilkowalski/skillsが13本中3本でreview-animationsとprototypeとpick-ui-libraryだけ明示呼び出し、pstackは47本中46本で例外はsetup-pstackの1本のみ。常駐する説明文1769トークンぶんが毎ターン発火候補になる
3リポジトリとも当サイトで clone して frontmatter を数えた実測値

比較のために、当サイトが同じ方法で測った他の2つを並べた。emilkowalski/skills は13本中3本(review-animations・prototype・pick-ui-library)、pstack(cursor/plugins)は 47本中46本が自動起動を切っている。BuilderIO/skills は逆側の端にいる。

これは優劣の話ではなく、設計思想の違いだ。pstack のスキルは「証明しろ」「原則に従え」といった重い作法なので、呼ばれたときだけ効けばいい。同じく作法を注入するSuperpowers完全ガイド:AIエージェントに“プロの開発作法”を注入する最強OSSも、呼び出し側が意図して使う設計だった。対して BuilderIO/skills の read-the-damn-docs(外部APIを触る前に公式ドキュメントを読ませる)や stay-within-limits(長時間作業の前に利用上限を確認させる)は、エージェントが自分で気づいて発火しないと意味がない種類のものだ。

ただしコストは意識しておく必要がある。24本のfrontmatterを合計すると 7,076バイト=約1,769トークン(当サイトの tools/token_audit.py が使う heuristic 近似・CJK 1字=1 / ASCII 4字=1。tiktoken の cl100k_base はBPE辞書の取得がこの環境の外向き通信で遮断され使えなかった)。この1,769トークンは常駐するだけでなく、毎ターン「いま発火すべきか」の判定対象になる。本文まで読み込んだ場合の合計は約51,396トークンで、visual系3本だけで約24,345トークンを占める。

skills配下のSKILL.mdは24本でほかに.agentsに1本、常駐するfrontmatterの合計は7076バイトで約1769トークン、本文を全部読んだ場合は約51396トークン、実験扱いのfactory系は9本
frontmatterと本文を分けて計測(2026-10-01)。トークン数は tools/token_audit.py の heuristic 近似

ベンダーが自社のハーネスをスキル群として配る形はMantisとは|Googleの脆弱性探索19スキルを入れて動かす境界まで実測したでも見たが、あちらが19本すべてを1つの目的(脆弱性探索)に向けていたのに対し、こちらは目的がばらけている。なお /factory 系9本は README で明示的に experimental(実験扱い) とされている。フィードバック・テレメトリ・エラーを集めて、ポリシーで縛った上で修正・レビュー・マージ・デプロイまで自動で回すという構想で、PRの見張りや停滞タスクの検知まで含む。24本のうち3分の1以上が実験的なワークフローだという前提は、入れる前に知っておいたほうがいい。

/visual-edit を実際に入れてみる

ここからは手を動かす。ユーザーから指定された skills/visual-edit/README.md に書かれたコマンドを、そのまま空のリポジトリで実行した。

mkdir an-test && cd an-test && git init -q
npx @agent-native/core@latest skills add visual-edit

1分21秒(real 1m20.812s)で完了した。表示された要約はこうだ。

•  Registered "agent-native-design" for claude-code, cursor, opencode, github-copilot
   at https://design.agent-native.com/mcp
•  Skipped URL-only hosted MCP config for codex, cowork; run agent-native connect ...
•  Authentication skipped (non-interactive). To finish auth, run:
   npx @agent-native/core@latest connect https://design.agent-native.com --client ... --scope user
—  ✅ All set! Start using /visual-edit in your agent client.

そして実行したディレクトリには、1バイトも書かれていなかった。

1行のnpxが手元に書いたものは、チルダ.claude/skills/visual-edit/にSKILL.md 30990バイトとagent-native-skill.json 423バイト、チルダ.claude.jsonにagent-native-designというMCPサーバをdesign.agent-native.com/mcpとして登録、認証は非対話のためスキップされconnectを別途実行せよと表示。既定スコープはscope userでプロジェクト直下には1バイトも書かれなかった
既定スコープは --scope user。プロジェクト直下には1バイトも書かれなかった(実測)

書かれた先は2箇所だ。

・~/.claude/skills/visual-edit/SKILL.md(30,990バイト)と agent-native-skill.json(423バイト)
・~/.claude.json の mcpServers に agent-native-design → https://design.agent-native.com/mcp

--help を見ると --scope <user|project> の既定が user で、-g がそのエイリアスになっている。「このリポジトリで試す」つもりで叩くと、全プロジェクトに効く場所へ入る。プロジェクトに閉じたいなら --project を明示する必要がある。あわせて --no-mcp(スキルのファイルだけ入れてMCP登録を飛ばす)、--dry-run(書き込まずに予定を表示)、--json も用意されていたので、まず --dry-run --json で確かめてから入れるのが素直だ。実際に --dry-run を通すと、内部で組み立てられるコマンドがそのまま出てくる。

# 何が起きるかだけを見る(書き込みなし・当記事で実行)
npx @agent-native/skills@latest add --dry-run --json -y
# => "commands": ["npx @agent-native/core@latest skills add assets --client claude-code,codex,cowork,cursor,opencode,github-copilot --scope user --yes"]

置かれた agent-native-skill.json には contentHash・installedAt・installCommand・updateCommand が入っていて、更新も npx @agent-native/core@latest skills update visual-edit で行う形になっていた。スキルが「ファイルを置いて終わり」ではなく、配信元と紐づいた管理対象として扱われている。

なお認証は非対話実行のためスキップされ、connect を別途実行するよう促された。認証していないので open-visual-edit などのMCPツールは一度も呼べておらず、キャンバス上の編集とソースへの書き戻しは未検証だ。この検証環境からは dispatch.agent-native.com も design.agent-native.com も外向き通信が許可されておらず、そもそも到達できない。

検証後、当記事では ~/.claude/skills/visual-edit/ と ~/.claude.json のMCP登録を削除して元の状態に戻した。ユーザースコープに入る道具を試すときは、戻し方まで含めて手順にしておきたい。

実行して分かった経路を図にすると、こうなる。

flowchart TD A["npx @agent-native/core skills add visual-edit"] --> B["@agent-native/core 0.198.6 を取得
展開30MB・3,976ファイル"] B --> C{"--scope の既定"} C -->|"user(既定)"| D["~/.claude/skills/visual-edit/
SKILL.md 30,990B + メタ 423B"] C -->|"--project を明示"| E["プロジェクト配下に配置"] D --> F["~/.claude.json に MCP を登録
agent-native-design"] F --> G{"認証"} G -->|"対話あり"| H["connect でブラウザ認証
open-visual-edit が使える"] G -->|"非対話(当記事)"| I["スキップ。ツールは呼べない=未検証"]

「小さいスキル」の裏にある30MB

もう1つ測っておきたかったのが、npm側の実体だ。READMEが勧める一括導入は npx @agent-native/skills@latest add、visual-edit の README が指すのは npx @agent-native/core@latest skills add visual-edit。別のパッケージが2つある。

パッケージ 最新 公開日 展開サイズ ファイル数 公開バージョン数
@agent-native/skills 0.3.18 2026-09-30 400,439バイト 30 1,390
@agent-native/core 0.198.6 2026-09-30 30,008,779バイト 3,976 1,733

@agent-native/skills の説明は「Install BuilderIO skills for coding agents.」で、依存はわずか2つ。ただしその片方が @agent-native/core 0.198.6 で、こちらは自称「エージェント型アプリケーションのフレームワーク」、展開して 30MB・3,976ファイルだ。依存には nitro・h3・yjs・postgres・better-auth・esbuild・ink・i18next などが並ぶ。Markdownを1枚置くために、Webフレームワーク一式が npx のキャッシュに落ちてくる。

半年で1,733バージョンという公開ペースも目を引く(2026-03-12 作成なので、単純平均で1日あたり8回以上)。@latest を毎回叩く運用だと、同じコマンドが日によって違うものを入れる可能性は高い。

npx @agent-native/skills@latest list を叩くと、CLIが配れるスキルの一覧が出る。ここでリポジトリの24本とは粒度が違うことに気づいた。visual-plan・visual-recap・visualize-repo は visual-plans という1つの導入単位にまとめられており、逆に assets のようにリポジトリに無いものが出てくる。/visual-edit に至っては、この list には現れない(@agent-native/core 側から入れる)。GitHubで見える構成と、CLIが実際に配る構成は同じではない。

公開リポジトリのSKILL.mdは、配られる版と少し違う

最後に、いちばん気になっていたことを確かめた。GitHubに置かれている skills/visual-edit/SKILL.md と、いま手元に入った SKILL.md は同じものか。

GitHubのskills/visual-edit/SKILL.mdは30992バイトでキャンバスにApplyボタンは無いと書き最終コミットはchore update Agent Native exported skills、npxで実際に入ったSKILL.mdは30990バイトで差は2バイト、Apply design updatesを通す経路を説明し、差分は3ハンク21行で言及するMCPツール名は同じ5つ
diff の結果。差は小さいが、記述内容としては意味が変わる箇所が含まれる

答えは「ほぼ同じだが、一致はしない」。30,992バイト対30,990バイト、差分は3ハンク・21行。言及されるMCPツール名(open-visual-edit・get-visual-edit-pending・get-visual-edit-prompt・apply-visual-edit・acknowledge-visual-edit-pending)は両方とも同じ5つで、機能の骨格は変わらない。違うのは操作の説明だ。

・公開リポジトリ版:「キャンバスに別の Apply ボタンは無い」「Copy prompt で視覚編集をコーディングエージェントに渡す」
・配布版:「Apply design updates をホストの MCP Apps ブリッジ経由で通す」「キャンバスが Apply design updates(ローカル)または Apply edits を出すまで保留される」

つまり配布版のほうが新しい操作系を説明している。最終コミットが chore: update Agent Native exported skills である以上これは想定内の挙動で、リポジトリは配布物の書き出し(export)であって正典ではない。GitHubのSKILL.mdを読んで挙動を判断すると、わずかにずれるということは覚えておきたい。

/visual-edit の README 自体も、機能の説明としてはよくできている。ローカルで動かしているアプリの実ルートを iframe の画面としてキャンバスに並べ、paths で複数ページ、routes で多段フロー、viewports でレスポンシブ幅を指定する。注意書きも率直で、「Design はそれらの変更を自動でコードに書き込まない」「公開・読み取り専用のデザインはサインイン無しで見られるが、作成・保存・共有にはアカウントが要る」と明記されている。動かせていない以上これらは未検証だが、アカウント必須のホスト型サービスに依存するスキルだという前提は、READMEの時点で隠されていない。

最後に、当記事で確かめた範囲を整理しておく。

項目 確認方法 状態
SKILL.md 24本・205,584バイト clone して1本ずつ計測 実測
visual系3本が47.4% 同上 実測
disable-model-invocation が0本 24本のfrontmatterを走査 実測
常駐1,769トークン/本文51,396トークン frontmatterと本文を分けて計測 実測
インストール1分21秒と書き込み先 空リポジトリで実行し、書かれたファイルを列挙 実測
--dry-run --json の出力 実行 実測
npmパッケージのサイズとバージョン数 registry.npmjs.org のメタデータ 実測
公開版と配布版の差分(3ハンク・21行) diff 実測
キャンバスでの編集とソース書き戻し 認証未実施・ドメインに到達不可 未検証
/factory 系9本の実動作 実行していない 未検証
他クライアント(Cursor・Codex等)での挙動 Claude Code 向けの書き込みのみ確認 未検証

「スキルを1本入れる」と言うとMarkdownを1枚置くだけに聞こえるが、実際にはどのスコープに、どのサーバとの接続ごと書き込まれるかが付いてくる。--dry-run が用意されているのは良い設計なので、まずそれを通してから決めたい。

参照ソース

・BuilderIO/skills — GitHubリポジトリ(main・最終コミット eb07be6・2026-09-30 を clone して計測): https://github.com/BuilderIO/skills
・skills/visual-edit/README.md — 導入コマンドと使い方: https://github.com/BuilderIO/skills/blob/main/skills/visual-edit/README.md
・@agent-native/core — npm レジストリのメタデータ(0.198.6・展開30,008,779バイト): https://registry.npmjs.org/@agent-native/core
・@agent-native/skills — npm レジストリのメタデータ(0.3.18): https://registry.npmjs.org/@agent-native/skills