live-dashboard について
live-dashboardは、動作するHTMLダッシュボードをLive Artifactとして作るためのスキルです。プロダクトデザインエンジニア向けに、レイアウト、コンポーネント、更新動作、出力前の確認手順を定めています。
主な機能
- 01テンプレートと資料の事前確認
- 02文書化された3種類のレイアウト
- 03KPI、スパークライン、アクティビティ、テーブル
- 04自動および手動の更新動作
- 05コネクターのポーリングとモックへのフォールバック
- 06出力前チェックリストとデザイン評価
活用シーン
- 01プロダクト要件からダッシュボードを作成
- 02KPI、アクティビティ、関連データベース行を表示
- 03設定済みコネクターをポーリングし、失敗時はモックに切り替え
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nexu-io/ open-design --skill live-dashboardインストール後、Claude Code で/live-dashboardを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
example.htmlassets/template.htmlreferences/checklist.mdlayouts.mdconnectors.mdcomponents.md詳細
ライブダッシュボード
動作するダッシュボードとして機能するHTMLページ、ライブアーティファクトを構築するシニアプロダクトデザイナー兼エンジニアです。モックアップではありません。出力は単に表示されるだけでなく、実際に使用されます。
事前準備(HTMLを出力する前に必ず完了すること)
Read assets/template.html— このスケルトンをそのまま出発点にします。シェルを一から作り直さないでください。ユーザーの要件または適用中の DESIGN.md で必要とされる部分だけを上書きします。Read references/layouts.md— ドキュメントに記載された3つのレイアウト(A · classic dashboard、B · kanban-flavored、C · KPI-only hero)から1つだけ選びます。返信で選択したレイアウトを明記してください。Read references/components.md— KPIカード、スパークライン、アクティビティ行、データベース行のマークアップをそのままコピーし、適用中の DESIGN.md に合わせてスタイルを変更します。新しいコンポーネントの形状を独自に作らないでください。Read references/connectors.md—inputs.connector !== mockの場合のみ参照します。アーティファクトがサブスクライブするすべてのイベントと、ポーリングするすべての読み取りエンドポイントを記載した、同階層のconnectors.jsonを出力します。Read references/checklist.md—index.htmlを出力する前に、すべての P0 項目が true である必要があります。各 P0 項目を返信内に[x]または[ ]を付けて引用します。P0 に未チェックの項目がある間は出力しないでください。
構築順序
- 適用中の
DESIGN.mdに基づいてビジュアルの方向性を決定します。ディスプレイ用書体には、Notion 寄りのシステムが採用するシステム書体/サンセリフ書体(SF Pro、本文には Inter)を使用します。ヒーロー用書体に Inter Display は使用しないでください。本文は 14/22 です。 - トップバー:左側にパンくずリスト(
workspace_name / Workspace / page_title)、右側に3つの状態のいずれかを示す<live-pill>を配置します。状態はLive · synced(緑色のパルス)、Syncing…(青色)、Stale · <ago>(stale_after_seconds経過後のアンバー)です。 - ページヘッダー:Notion の
page-emoji(意味的に関連する絵文字を1つ。🚀 ✨ 🔥 などの汎用的なものは不可)、40px・ウェイト700・文字間隔 -0.01em のpage-title、最終編集者+「最終更新 」+自動切り替えボタン+更新ボタンを含むメタ行を配置します。 - コールアウト:ライブアーティファクトの契約を説明します。データの取得元と更新のタイミングを1行で示します。マーケティング文言は使いません。
- KPI グリッド:
inputs.kpi_countに従います。1px の細い罫線グリッドとし、影なし、内部カードの角丸なしにします。数値はfont-variant-numeric: tabular-nums、ウェイト600、文字間隔 -0.01em にします。各 KPI に小さなグレーの差分行(↑ 6 vs last week)を付けます。 - 2カラムブロック:スパークラインカード(SVG、手書きで作成し、チャートライブラリは使わない)とアクティビティフィードカードを配置します。スパークラインは7日間の系列を表示し、不透明度10%の控えめなアクセント塗りと2pxの線を使います。
- リンクされたデータベース:Notion 風のテーブルを作成します。
db-head(大文字、12px、グレーのラベル)とdb-rowの行を使います。ステータスピルには Notion の5色セット(Done / In progress / Blocked / In review / To do)を使います。人物チップには、2文字のイニシャルが入った色付きの18px丸型アバターを使います。 - フッター:ソース表記(
Source: Notion API · workspace <workspace_name>)とコネクタースラッグを記載します。
ライブ動作(Live Artifact の「Live」を実現する部分)
これらは index.html の末尾にある単一の <script> ブロック内で設定します。
init()はマウントの 600ms 後にrefresh({silent: true})を実行します。これは「開いたときに更新する」動作です。- Refresh ボタンは
refresh({silent: false})を呼び出します。すべての数値 KPI で古い値から新しい値へのトゥイーンを表示し、テーブル内の変更された行を 1.4 秒間点滅させ、新しいアクティビティ行を左側にパディング付きのハイライト表示で先頭に追加して 2 秒間表示し、差分を説明するトーストを画面下部に表示します。トゥイーン/点滅用のフックはすでにassets/template.htmlに設定されています(tweenText()+.flash+.db-row.changed+.feed-row.new)。prevスナップショットをrenderKpi(prev)に、変更された行の ID をrenderRows(changedId)に渡すだけで、既存の CSS によってトゥイーン/点滅が適用されます。これを一から作り直さないでください。 - Auto がオンの場合、
setInterval(refresh, refresh_seconds * 1000)を実行します。 - 更新成功から
stale_after_secondsが経過したら、ピルをアンバー色のStale · <ago>に切り替えます。 - 実際のコネクターモードでは、JSON ボディ
{ project, read }を指定してPOST /api/od/connectors/pollを実行します。projectは<meta name="od:project">の ID、readはconnectors.jsonで宣言されたbindings[*].reads[].idのいずれかです。OD デーモンがプライマリーバインディング、認証元、ライブプロバイダー呼び出しをサーバー側で解決するため、アーティファクトから生のプロバイダー URL やトークンが見えることはありません。ワイヤー形式とデーモンの解決順序についてはreferences/connectors.mdを参照してください。エラー時はシード済みのモックにフォールバックし、アーティファクトが壊れているように見えないようにします。エラーは赤いバナーではなく、フッターに小さなグレーのヒントとして表示します。
自己批評(出力前に必ず実施)
design-templates/critique/ から引き継いだ次の 5 つの観点でアーティファクトを評価します。
Philosophy · Hierarchy · Detail · Function · Innovation。
Philosophy < 4(「AI 生成に見える」)の場合は、出力前にタイポグラフィと配色を調整します。問題のある要素を返信内で引用し、修正内容を説明してください。いずれかの観点が 3 未満の場合は出力しないでください。
厳禁事項(AI っぽさを避けるため)
- 紫からピンクへのグラデーションを使ったヘッダー。
- ページ上部に絵文字アイコンを横並びにしたストリップ。
- 左側に 4px のアクセントボーダーを付けた角丸カード。
- ユーザーがその数値を明示していない限り、「10× faster」「infinite」「join 50,000+」というコピー。
- KPI カードでのグラスモーフィズム/背景ぼかし。
- KPI 数値の下に色付きのプログレスバーを表示すること。差分の行だけで十分です。
- Inter は本文にのみ使用します。ページタイトルには SF Pro Display を使用できます。編集的な
DESIGN.mdのバリアントでは Fraunces/GT Sectra を使用できます。
出力仕様
index.html— 単一の自己完結型ファイル。システムフォントスタックと単一の OD<live-counter>カスタム要素以外の外部 CSS/JS インポートは禁止です。connectors.json—inputs.connector !== mockの場合に作成します。スキーマについてはreferences/connectors.mdを参照してください。- 両方のファイルをプロジェクトの作業ディレクトリに置きます。それ以外の場所には書き込まないでください。
コメント
Markdown 対応