使い方ガイドへスキップ
stitch::extract-static-html作者 Google Labs

Stitch Extract Static HTML スキル。

UI デザイン用の Claude Code と Codex スキル:CSS と画像をインライン化した自己完結型の静的 HTML スナップショットを抽出します。

  • Web & UI
  • HTML
google-labs-code/stitch-skills · plugins/stitch-design/skills/extract-static-html/SKILL.mdSKILL.md
--- name: stitch::extract-static-html description: - Extract self-contained static HTML from a built web application or React components by inlining CSS and images. Use this skill whenever you need to capture a specific UI state, share a static version of a page, or prepare assets for Stitch upload, even if the user just asks to 'save the HTML' or 'mock the view'. --- ## Which Strategy to Use ## Strategy A: Puppeteer Snapshot (Recommended) ## Strategy B: Browser Subagent Capture ## Appendix: Static Fallback (MockPage.jsx)
2026-09-14 にアップストリームファイルから読み込まれた前付けとセクション見出し · 完全版で 10,732 文字

01 できること

Claude Code と Codex における stitch::extract-static-html スキルの機能

概要、ワークフロー、出力。いずれもスキルの SKILL.md から読み取った内容です。

SKILL.md より2026年9月14日読取 · 実行記録ではありません

スキル自身の言葉で

Puppeteer を通じてヘッドレス Chrome を起動し、完全にレンダリングされた DOM をキャプチャして CSSOM ルールをインライン化し、画像を base64 データ URI に変換することで、実行中の Web アプリから単一の自己完結型 HTML ファイルを生成します。React/Vite、Next.js、Angular、Vue/Nuxt、Svelte、Storybook など、どのフレームワークでも動作し、MockPage.jsx は不要です。

このスキルは、処理を進める前に 2 つのキャプチャ戦略のどちらを使うかをエージェントに必ず確認させ、Puppeteer によるスナップショットを推奨し、ローカルサーバー起動後に確認のため一旦停止させます。フラグでは待機時間、ビューポート、ダークモード、固定要素の削除、canvas のインライン化、ログインが必要なページ向けの認証スクリプトを指定できます。アプリをローカルで実行できない場合は、付録の手順に従い React コンポーネントを手動の MockPage.jsx にフラット化します。

生成されるもの

  • キャプチャした各ルートごとの自己完結型 HTML ファイルで、スタイルはインライン化され、画像は base64 として埋め込まれます。
  • ホーム、価格、ダッシュボードなど複数のビューをキャプチャする場合は、ルートごとに 1 ファイルになります。
  • canvas フラグを使用した場合、canvas 要素からシリアライズされたチャートが base64 画像になります。
プロンプト例を見る ↗

仕組み

  1. 01
    ユーザーに戦略を選ばせる

    抽出を開始する前に、エージェントは A/B 比較を提示し、Puppeteer ルートを推奨した上で、明確な選択を待ちます。

  2. 02
    ルートごとにスナップショットスクリプトを実行する

    URL ごとに 1 つのコマンドを実行し、各キャプチャを .stitch 内の個別ファイルに書き出します。ネットワークがアイドルになった後、一定の待機時間が入ります。

  3. 03
    スクリプトにページをインライン化させる

    CSSOM ルール、リンクされたスタイルシート、画像、srcset のソース、同一オリジンのアイコンフォントがファイルに折り込まれるため、実行中のサーバーに依存する必要がありません。

  4. 04
    フレームワークに応じてフラグを調整する

    待機時間や URL はスタック毎に異なります。たとえば、フレームワークがサーバーレンダリングされたマークアップをハイドレートする場合は、より長い待機時間が必要です。

  5. 05
    ログインが必要なページを認証する

    認証モジュールが Puppeteer セッション内で実行され、その後スクリプトはセッションを維持したまま元の URL に戻ります。

  6. 06
    必要な場合のみモックにフォールバックする

    アプリが全く起動できない場合、付録のルートではライブレンダリングをキャプチャする代わりに、コンポーネントを 1 つの JSX ファイルにフラット化します。

02 適合性を確認

stitch::extract-static-html スキルを使用するタイミング

この種の UI デザイン作業には、Claude Code または Codex で stitch::extract-static-html スキルを使用してください。以下の適合性と制限はスキル自身のファイルから取得されています。

適している場合

  • 特定の UI 状態をキャプチャし、そのページの静的バージョンを誰かに渡す必要がある場合。
  • Stitch にアップロードするためのアセットを準備している場合。
  • アプリがどのフレームワークでもローカルで動作し、MockPage.jsx を書きたくない場合。
  • 目的の状態にページが到達するまで、クリック、入力、ナビゲーションが必要な場合。
  • アプリ全体のルートではなく、単一の Storybook ストーリーが欲しい場合。

境界を知る

  • ブラウザサブエージェントを通じてキャプチャした大きなページは、エージェントのコンテキストウィンドウによって途中で切り取られることがあります。
  • アプリを実際に起動できる場合は、手動でのフラット化ルートは推奨されません。
  • 外部フォントはデータURIに変換されません。同一オリジンおよび相対アセットのみが変換されます。
  • エラー画面や空の状態など、ナビゲーションで到達できないUI状態には、代わりにモックルートが必要です。

提供すべきもの

  • 戦略の選択Puppeteerスナップショットとブラウザサブエージェントのどちらを使うかを明示的に決定しない限り、エージェントは開始しません。
  • localhostで実行中のアプリプロジェクトのdevスクリプトなどで起動した、到達可能なサーバーです。スクリプトはライブページから取得するためです。
  • 出力ファイルのパス--outputは必須です。キャプチャした各ルートをどこに配置するかを決めてください。通常は.stitch以下です。
  • ゲート付きページ用の認証モジュールデフォルトエクスポートがPuppeteerのpageを受け取る非同期関数であるJS/TSファイルで、ログインフォーム、トークン、モジュールの注入に使用します。
  • puppeteerを備えたNode環境スナップショットスクリプトはnpx tsxで実行され、その環境でpuppeteerを解決できる必要があります。

03 スキルの内部

stitch::extract-static-htmlスキルがClaude CodeとCodexに与えるルール

SKILL.md がエージェントに設定する 8 つの具体的な指示・既定値・制限 — 結果を変える部分です。

  1. 戦略を自分で選ばない

    エージェントは、ユーザーに代わってPuppeteerとブラウザサブエージェントのどちらかを選んではならず、ユーザーが確認するまで続行してはなりません。

  2. 戦略Aが既定として明示される

    選択肢は明確に提示され、戦略Aが推奨として示され、それぞれの長所・短所の要約が簡潔に添えられる必要があります。

  3. スナップショット取得前のチェックポイント

    ローカルサーバーを起動した後、エージェントは一旦停止し、スナップショットスクリプトの実行やブラウザサブエージェントの起動前にユーザーの確認を得る必要があります。

  4. 作業後にdevサーバーを停止する

    抽出のためだけに起動したdevサーバーは、キャプチャ完了後に停止するか、バックグラウンドタスクを終了させる必要があります。

  5. デフォルトで1000ミリ秒待機する

    --waitはネットワークアイドル後、デフォルトで1000msですが、遅延読み込みのアプリでは値を上げる必要があります。--viewportのデフォルトは1280x800です。

  6. スクリプトを含めない

    出力にはscriptタグが含まれません。Vite HMRのdevスタイルブロック(createHotContext、import.meta.hot)やdevオーバーレイも取り除かれます。

  7. 固定要素はオプトインです

    --remove-fixedはデフォルトでfalseであり、クッキーバナーやチャットウィジェットをキャプチャから除去するためのフラグです。

  8. モックパスではすべてをフラット化する

    付録のフォールバックはライブキャプチャではなく、React コンポーネントを単一の JSX ファイルに手動でフラット化する必要があります。

04 実際に使う

Claude Code または Codex に stitch::extract-static-html をインストール

npx skills add コマンドを実行し、エージェントで最初のタスクを実行して、結果をチェックリストで確認します。

Claude Code、Codex またはお使いのエージェントに stitch::extract-static-html を追加

プロジェクトで実行してください。インストーラーが、どのエージェントに追加するかを尋ねます。

Terminal
npx skills add https://github.com/google-labs-code/stitch-skills --skill stitch::extract-static-html

plugins/stitch-design/skills/extract-static-html/SKILL.md 用の汎用 skills CLI 形式です。リポジトリ側で独自のパスが定義されている場合があります。

スキルに最初の UI デザインタスクを与える

スキル自身の用語で記述されています。角括弧の部分はご自身の内容に置き換えてください。

Starter prompt
The app is running at http://localhost:5173. Snapshot the [dashboard] route to .stitch/dashboard.html with --html-class dark and --inline-canvas, and pass --wait 5000 because the ECharts graphs load late. That page sits behind a login guard, so run it with my [auth-myapp.ts] script first.

出典:SKILL.md をスキル自身の用語に沿って記述。

最初の結果を確認

SKILL.md 自体が正しい結果として示しているもの:

  • 開発サーバーを停止し、保存したファイルを開いてください。画像が崩れる場合、srcset のインライン化が保持されておらず、インライン化された src へのフォールバックが重要になります。
  • 出力を信頼する前に、インライン化された画像数を示すスクリプトログを確認してください。
  • アイコンがテキストやセリフのフォールバックフォントとして表示される場合、CSSOM キャプチャまたは @font-face のインライン化が行われていません。
  • ダークモードを指定したにもかかわらずライトページになる場合、実行時に html-class フラグが指定されていなかったことを意味します。
  • グラフが空のボックスとして表示される場合、canvas フラグが渡されていません。
  • Next.js では、最適化された画像はキャプチャ中に開発サーバーが起動している間のみインライン化されます。

OpenDesign では、SKILL.md のリンクから stitch::extract-static-html をインポートします:Plugins → Add → Skill → Import from link、その後トップバーで選択してください。

05 オープンソースで追跡可能

ソース、ライセンス、検証

このページの情報の出所と、最終確認日時です。

スキルファイル
plugins/stitch-design/skills/extract-static-html/SKILL.md 検証時にコンテンツチェックサムを記録、コミット 0337446
License
Apache-2.0 LICENSE より。
リポジトリスター数
8,304 google-labs-code/stitch-skills リポジトリ全体の GitHub スナップショット(2026-09-14 取得)。このカタログには 12 のスキルが含まれています。stitch::extract-static-html の評価や使用数ではありません。
OpenDesign により検証済み
2026-09-14 ソースファイル、パス、ライセンステキスト、スター数を確認済み。OpenDesign 本体にはバンドルされていません(2026-08-28 確認)。このページには実行記録がありません。

SKILL.md の中身

  1. どの戦略を使うかPuppeteer とブラウザサブエージェントの比較表です。エージェントは進める前にユーザーの承認を得る必要があります。
  2. 戦略 A:Puppeteer スナップショット(推奨)ヘッドレス Chrome によるスナップショットで、自己完結型の HTML となり、どのフレームワークでも動作し、MockPage.jsx は不要です。
  3. スクリプトフラグurl、output、wait、viewport、html-class、remove-fixed、full-height、title、auth-script、inline-canvas フラグの既定値です。
  4. 自動的に行われる処理CSSOM キャプチャ、スタイルシートおよび画像のインライン化、srcset のクリーンアップ、スクリプトおよび HMR の除去、url() の解決です。
  5. フレームワークに関する注意事項React/Vite、Next.js、Angular、Vue/Nuxt、Svelte、Storybook、SSR ごとの待機時間とデフォルト URL です。
  6. トラブルシューティング画像欠落、アイコンフォント、ダークモード、クッキーバナー、認証、キャンバスに関する症状とフラグの対応表です。
  7. 認証が必要なページPuppeteer の認証モジュールを記述します。ログイン後、スクリプトは元の url へ再度ナビゲートします。
  8. 戦略 B:ブラウザサブエージェントによるキャプチャサブエージェントがナビゲートおよび操作を行った後、outerHTML を抽出します。大きなページはエージェントのコンテキストで切り詰められる場合があります。
  9. 付録:静的フォールバック(MockPage.jsx)アプリを実行できない場合の最終手段として、手動でフラット化した MockPage.jsx に対して extract_inline_html.ts を実行します。
  10. MockPage.jsx のルール完全なレイアウトを含め、条件分岐をフラット化し、データをハードコードし、ロゴを保持し、フロー外の浮動要素は削除します。
  11. 後処理post_process.ts は、アプリのディレクトリを base-dir として使用し、ローカル画像をインライン化します。
スキル自身による説明
ビルドされたウェブアプリケーションや React コンポーネントから、CSS と画像をインライン化して自己完結型の静的 HTML を抽出します。特定の UI 状態をキャプチャしたり、ページの静的バージョンを共有したり、Stitch アップロード用のアセットを準備する際に使用してください。ユーザーが単に「HTML を保存して」や「ビューをモックして」と依頼した場合でも、このスキルを活用します。

SKILL.md のフロントマター説明。ファイル全体は約 10,732 文字です。GitHub で全文を読む。

Stitch 静的HTMLを抽出

実際の UI デザインタスクで stitch::extract-static-html を実行します。

OpenDesign をダウンロードし、SKILL.md リンクから stitch::extract-static-html をインポートし、上記のプロンプトを貼り付けて、結果の前にプランを読んでください。

ターミナル
npx skills add https://github.com/google-labs-code/stitch-skills --skill stitch::extract-static-html

OpenDesign デスクトップ版

ひとつのデザインシステムで、すべての制作物をブランドらしく

完全な Vibe Design Workspace で、同じブランドルールを Web サイト、スライド、操作できるプロトタイプ、ダッシュボード、画像、HTML 動画に展開できます。ローカルの Codex、Claude Code、Cursor などを接続して無料で制作しましょう。

  • Web、スライド、プロトタイプ、ダッシュボード、画像、動画
  • 140+ のデザインシステムと完全なテンプレート/スキルライブラリ
  • ローカル Codex と 21+ のコーディングエージェントを接続 · 無料
無料ダウンロード

macOS と Windows に対応