学習し、自分なりに噛み砕いて、書き出すブログ。

Claude CodeのSkillsでWeb機能のBaseline対応状況を確認できるようにした

Claude Codeで使えるSkillsの仕組みを使って、Web Platform BaselineをClaude Codeから参照できるようにしました。

「XX機能の対応状況はどんな感じ?」と聞くだけで、Baselineの状態やサポートブラウザーのバージョンが出ます。

スキルは以下のリポジトリで公開しています。

https://github.com/kubosho/my-skills

導入方法はClaude Code上で完結するものとスタンドアロンの2種類あります。

Claude Code上で完結する方法では、以下のコマンドを実行します。

/plugin marketplace add kubosho/my-skills
/plugin install kubosho-skills@my-skills

スタンドアロンの方法では、リポジトリをcloneして ~/.claude/skills/ へシンボリックリンクを張ります。

git clone https://github.com/kubosho/my-skills.git
ln -s /path/to/my-skills/skills/baseline ~/.claude/skills/baseline

なぜ作ったのか

開発する中で「この機能のブラウザー対応状況はどんな感じだっけ」と気になった場合、今までは以下の手段で確認していました。

  • Can I useを開いて検索する
  • MDNの互換性テーブルを確認する

しかし、どちらもブラウザーに切り替えて検索する必要があって、コーディング中の流れが途切れるので嫌でした。

技術的な話

Baselineの情報を取得するためにWeb Platform Status APIへリクエストしています。このAPIは GET https://api.webstatus.dev/v1/features?q={query} というエンドポイントで、ある機能のBaseline状態やブラウザーのサポート情報を返します。

リクエスト時に使えるクエリを一部紹介すると、以下のような演算子が使えます。

  • name:grid のようにキーワードで機能名を検索
  • baseline_status:widely で広くサポートされている機能を絞り込み
  • available_on:chrome-available_on:firefox でブラウザーごとのサポート有無でフィルタ

AND条件はスペース区切り、OR条件は +OR+ という記法を使うことで指定できます。例えば name:grid baseline_status:widely で「Widely availableになっているgrid関連の機能」を探せます。

Skillの構造

今回作成したSkillでは、APIのエンドポイント・演算子の一覧・入出力・制約だけを定義しています。ツールの使用や、機能の詳細情報をどこまで表示するかはAIエージェントに任せています。

出力フォーマットは情報量に応じて変更しています。結果が少なければBaselineの状態・サポート日時・ブラウザーバージョンなどを詳細に表示し、結果が多ければサマリーテーブルに切り替えています。

また、10秒経過後にタイムアウトさせるのと、同時リクエスト数の上限を最大3リクエストにするといった制約も設けています。

使ってみて

新しめの機能を使いたいときに「これ大丈夫だっけ」とすぐ聞けて良いです。

特に「主要ブラウザーでまだ使えない機能は?」と自然言語で質問した場合に、AIエージェント側でよしなにクエリを構築して検索できるのが良いです。

あとは最新の状況を知る目的でも使えます。Claude Code上で「2026年にwidelyまたはnewlyへ達した、CSSやJSの機能はある?」という質問した時の応答は以下の通りです。情報は2026年2月26日時点の情報です。

⏺ Skill(baseline)
  ⎿  Successfully loaded skill

⏺ 2026年のbaseline到達状況を調べるね。CSSとJavaScriptそれぞれ、widelyとnewlyで検索する。

⏺ Fetch(https://api.webstatus.dev/v1/features?q=baseline_date:2026-01-01..2026-12-31%20baseline_status:widely%20group:css)
  ⎿  Received 35 bytes (200 OK)

⏺ Fetch(https://api.webstatus.dev/v1/features?q=baseline_date:2026-01-01..2026-12-31%20baseline_status:newly%20group:css)
  ⎿  Received 5.8KB (200 OK)

⏺ Fetch(https://api.webstatus.dev/v1/features?q=baseline_date:2026-01-01..2026-12-31%20baseline_status:widely%20group:javascript)
  ⎿  Received 35 bytes (200 OK)

⏺ Fetch(https://api.webstatus.dev/v1/features?q=baseline_date:2026-01-01..2026-12-31%20baseline_status:newly%20group:javascript)
  ⎿  Received 2KB (200 OK)

⏺ 2026年(現時点まで)にBaseline到達した機能をまとめたよ。

使ったクエリ:
- baseline_date:2026-01-01..2026-12-31 baseline_status:newly group:css
- baseline_date:2026-01-01..2026-12-31 baseline_status:newly group:javascript
- widely は CSS・JS ともに 0件だった

---
CSS — Newly available (5件)

すべて 2026-01-13 に newly 到達。最後のブラウザが Firefox 147。

┌────────────────────────┬───────────────┬────────────────┬──────────────────┐
│        Feature         │    Chrome     │     Safari     │  Firefox (最後)  │
├────────────────────────┼───────────────┼────────────────┼──────────────────┤
│ Active view transition │ 125 (2024-05) │ 18.2 (2024-12) │ 147 (2026-01-13) │
├────────────────────────┼───────────────┼────────────────┼──────────────────┤
│ rcap unit              │ 118 (2023-10) │ 17.2 (2023-12) │ 147 (2026-01-13) │
├────────────────────────┼───────────────┼────────────────┼──────────────────┤
│ rch unit               │ 111 (2023-03) │ 17.2 (2023-12) │ 147 (2026-01-13) │
├────────────────────────┼───────────────┼────────────────┼──────────────────┤
│ rex unit               │ 111 (2023-03) │ 17.2 (2023-12) │ 147 (2026-01-13) │
├────────────────────────┼───────────────┼────────────────┼──────────────────┤
│ ric unit               │ 111 (2023-03) │ 17.2 (2023-12) │ 147 (2026-01-13) │
└────────────────────────┴───────────────┴────────────────┴──────────────────┘

rcap/rch/rex/ric はルートフォントに基づく相対単位。Firefox 147 での実装で全ブラウザ対応になった。

---
JavaScript — Newly available (2件)

┌───────────────────────────────┬────────────┬───────────────┬────────────────┬──────────────────┐
│            Feature            │ Baseline日 │    Chrome     │     Safari     │  Firefox (最後)  │
├───────────────────────────────┼────────────┼───────────────┼────────────────┼──────────────────┤
│ Map.prototype.getOrInsert()   │ 2026-02-14 │ 145 (2026-02) │ 26.2 (2025-12) │ 144 (2025-10)    │
├───────────────────────────────┼────────────┼───────────────┼────────────────┼──────────────────┤
│ JS modules in service workers │ 2026-01-13 │ 91 (2021-05)  │ 15 (2021-09)   │ 147 (2026-01-13) │
└───────────────────────────────┴────────────┴───────────────┴────────────────┴──────────────────┘

Map.prototype.getOrInsert() は TC39 提案の機能で、キーが存在しなければ値を挿入して返す。Chrome 145 が最後の実装で newly に到達。

---
まとめ

- Widely 到達: CSS・JS ともに 0件(2026年はまだ2ヶ月しか経っていないので、これから増える可能性がある)
- Newly 到達: CSS 5件 + JS 2件 = 計7件
- Firefox 147 のリリース(2026-01-13)が多くの機能の baseline 到達トリガーになっている