mcpField
S
static-web-artifacts-builder

static-web-artifacts-builder

github.com/mathews-tomデザイン・UI337116 回インストール2 日前に更新
リポジトリ

static-web-artifacts-builder について

static-web-artifacts-builder は、高密度で自己完結した静的 HTML のビジュアル成果物を作るスキルです。インフォグラフィックやダッシュボードの制作者向けに、初期化・検証スクリプトと、インライン SVG や依存関係のない出力の指針を提供します。

主な機能

  1. 01初期化スクリプトでプロジェクトを作成
  2. 02CSS Grid と Flexbox による HTML 制作
  3. 03インライン SVG アイコンの使用
  4. 04外部リソース参照のない出力を検証
  5. 05検証済みページを HTML にバンドル

活用シーン

  1. 01高密度なインフォグラフィックの制作
  2. 02タブやトグル付きダッシュボードの作成
  3. 03CSS Grid を使った単ページビジュアルの制作
  4. 04共有用の自己完結型 HTML の準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mathews-tom/armory --skill static-web-artifacts-builder

インストール後、Claude Code で/static-web-artifacts-builderを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

CHANGELOG.md
LICENSE.txt
evals/
cases.yaml
scripts/
bundle-artifact.sh
init-artifact.sh

詳細

静的 Web アーティファクトビルダー

高密度な静的インフォグラフィックアーティファクトを作成するには、次の手順に従います。

  1. scripts/init-artifact.sh を使用してプロジェクトのひな形を初期化します
  2. 生成された HTML ファイルを編集してアーティファクトを作成します
  3. scripts/bundle-artifact.sh を使用して検証し、仕上げます
  4. アーティファクトを表示します

技術スタック:Vanilla HTML5 + CSS3(Grid/Flexbox)+ インライン SVG — 実行時の依存関係はありません

デザインとスタイルのガイドライン

非常に重要:「AI slop」と呼ばれることの多いものを避けるため、過度に中央揃えされたレイアウト、紫のグラデーション、均一な角丸、Inter フォントは使用しないでください。

インフォグラフィック固有の制約
  • 密度:コンテンツと余白の比率を 70:30 以上にします。ピクセルあたりの情報量を最大化します。
  • 形状:レイヤー化/入れ子状のコンテナー、形状のある領域(clip-path、さまざまな border-radius)、グラデーション塗り、控えめな box-shadow を使います。平坦で均一なボックスは避けます。
  • アイコン:主要な概念ごとにインライン SVG アイコンを使用します。テキストラベルだけの表示は避けます。
  • 色:意味(カテゴリ、フローの方向、重大度)を表す、目的に沿ったパレット(3~4 色とニュートラルカラー)を使用します。CSS カスタムプロパティとして定義します。
  • フロー:SVG の矢印、曲線、ラベル付きのエッジを使って方向性のある接続線を示します。アーキテクチャ図は、平坦なノードグラフではなく、双方向のデータフローを持つ階層レイヤーにします。
  • レイアウト計算:列と行の比率を明示した grid-template-columns/grid-template-rows を CSS Grid で指定します。自動間隔設定のデフォルト値は使いません。すべての margin/padding を意図的に設定します。

クイックスタート

ステップ 1:プロジェクトを初期化する

初期化スクリプトを実行して、新しい静的プロジェクトを作成します。

bash scripts/init-artifact.sh <project-name>
cd <project-name>

これにより、次の内容を含む最小限のひな形が作成されます。

  • ✅ CSS カスタムプロパティ(テーマ設定)を含む HTML テンプレート
  • ✅ CSS Grid + Flexbox のレイアウトユーティリティ(インライン <style>)
  • ✅ 印刷に対応した viewport meta 設定
  • ✅ node_modules、package.json、ビルドツールチェーンなし
ステップ 2:アーティファクトを作成する

生成された index.html を直接編集します。各 HTML ファイルが 1 ページに対応し、明確なメッセージを 1 つ伝えます。

主なパターン:

  • 名前付き領域のレイアウトには CSS Grid の grid-template-areas を使用します
  • 空間を比例配分するには fr 単位を使用します
  • SVG アイコンをインラインで埋め込みます(外部参照としてではなく)
  • パレットの統一感を保つために、CSS カスタムプロパティ(--color-primary、--color-accent など)を使用します
  • 視覚的な奥行きには clip-path、border-radius、グラデーション、box-shadow を使用します
ステップ 3:検証して仕上げる
bash scripts/bundle-artifact.sh

これにより、アーティファクトが完全に自己完結していることを検証します。

  • 外部リソースへの参照がないことを確認します(CDN リンク、外部スタイルシート/スクリプトがないこと)
  • インライン SVG が含まれていることを確認します
  • ファイルサイズを報告します
  • 検証済みの出力を bundle.html にコピーします
ステップ 4:アーティファクトをユーザーと共有する

ユーザーがアーティファクトとして表示できるよう、検証済みの HTML ファイルを会話内で共有します。


このスキルとほかのビジュアルスキルの使い分け

タスクこのスキルを使用代わりに使用
複数のセクションと高いデータ密度を備えたリッチなインフォグラフィックはい—
インタラクティブなタブやトグルを備えた自己完結型ダッシュボードはい—
Figma/Illustratorで後から編集する静的なアーキテクチャ/トポロジー図いいえarchitecture-diagram — このスキルのインタラクティブなHTMLではなく、本物のベクターSVGを生成します
シンプルなコンセプトイラストやアイコン風の画像いいえconcept-to-image
スライドデッキや複数ページのプレゼンテーションいいえhtml-presentation
CSS Gridによるレイアウト制御が重要な単一ページのビジュアルはい—
Playwrightでスクリーンショットを撮れる状態にする必要があるアーティファクトはい(ただし制限事項を参照)—

エラー処理

エラー原因解決方法
bundle-artifact.shがCDNリンクを検出するHTML内に外部スタイルシートまたはスクリプトへの参照があるすべてのCSSとJSをインライン化します。出力に外部URLは使用できません
ブラウザーでコンテンツがはみ出す/切り取られるビューポートが小さすぎる、またはoverflow:hiddenを指定した固定高さheightの代わりにmin-heightを使用し、幅1440pxでテストします。スクロール領域ではoverflow: autoを使用します
Playwrightのスクリーンショットでコンテンツが切れるページの高さがスクリーンショットのビューポートを超えているpage.setViewportSizeをコンテンツの寸法に合わせて設定し、fullPage: trueを使用します
bundle-artifact.shがインラインSVGの欠落を報告するSVGが<img src>または外部参照を介して読み込まれているHTML内に直接インラインの<svg>ブロックを配置します
アーティファクトとして共有するにはファイルサイズが大きすぎるbase64画像の埋め込み、または冗長なSVGSVGパスを最適化し、ラスター画像の埋め込みを避けます

制限事項

  • スクリーンショットにはブラウザーが必要です:レンダリングとPlaywrightを使ったスクリーンショットの取得には、ブラウザーの実行環境が必要です。HTMLファイル自体はサーバー側の依存関係を持ちませんが、視覚的な検証にはブラウザーが必要です。
  • サーバー側のレンダリングには対応していません:出力は純粋なクライアント側のものです。動的なデータ、API呼び出し、サーバー側で計算されるコンテンツには対応していません。
  • 状態は保持されません:アーティファクトにバックエンドはありません。ユーザー操作(フォーム入力、トグル)はページの再読み込み時にリセットされ、保存できません。
  • ファイルサイズの目安:500KB未満を目指してください。1MBを超えるアーティファクトは、一部のClaudeインターフェースでインラインの会話アーティファクトとしてレンダリングされない場合があります。
  • フォントの利用可否:システムフォントのみ(またはbase64エンコードしたウェブフォントをインラインで使用)とします。Google Fontsやその他の外部フォントCDNを参照しないでください。
  • 印刷時の再現性:CSSの印刷メディアクエリには対応していますが、ブラウザーによって印刷時のレンダリングは異なります。印刷出力が必要な場合は、@media printを明示的にテストしてください。

コメント