Databricks Apps(AppKit/React)のデータ画面のUX設計 — KPI・概要ページ、レポート、チャート、表、Genie/チャットデータアシスタントなどを、具体的なAppKitコンポーネントにマッピングして設計します。 **次のような場合に使用:** - データを表示したり、データに関する質問に答えるAppKit/ReactアプリケーションのUIを構築または見直している場合 - 表示方法の選択(ジャンル・レイアウト・チャート・KPI・セマンティックカラー)、必要な表示状態(読み込み中・データなし・エラー時)の検討 - IBCS記法(国際ビジネスコミュニケーション標準)の適用や、Genie/チャット機能で生成されたSQL・データソースを表示して、AI結果の信頼性を示したい場合 **使用対象外:** - 「ダッシュボードを作る」という単純なリクエストは、Lakeview(管理型AI/BI機能)の対象→ databricks-aibi-dashboards を使用してください - ログインフォーム・設定画面・認証・マーケティング関連など、データ以外のフロントエンド - アプリケーションの構造や構築・デプロイメント関連(→ databricks-apps を使用) databricks-apps スキルと連携して使用します。カスタムアプリにチャート、表、KPI、レポート、Genie/チャット、またはAI機能が含まれる場合は、常にこのスキルと組み合わせて活用してください。
Design the UX of custom-code Databricks Apps (AppKit/React) data screens — KPI/overview pages, reports, charts, tables, and Genie/chat data assistants — mapped to concrete AppKit components. Use when BUILDING or reviewing the UI of an AppKit/React app that displays data or answers data questions: choosing genre, layout, charts, KPIs, semantic color, required states (loading/empty/error), IBCS notation, and AI-result trust (showing generated SQL/sources for Genie/chat). A plain "create a dashboard" request means a managed AI/BI (Lakeview) dashboard → use databricks-aibi-dashboards, NOT this skill. Also NOT for non-data frontend (forms, settings, auth, marketing) or scaffolding/build/deploy (→ databricks-apps). Complements databricks-apps; use it alongside whenever a custom app has a chart, table, KPI, report, or Genie/chat/AI surface.
Databricks のデータ・AI アプリを、明確に伝わる形で設計し、実際の AppKit コードとしてコンパイルできるスキルです。 このスキルは 2 つの知識体系を統合し、実装へと橋渡しします。
references/dashboard-patterns.mdreferences/ibcs-notation.mdreferences/appkit-cheatsheet.md実際のコンポーネント名を示さない設計アドバイスは不完全です。必ずコンポーネント計画で締めくくってください。
databricks-aibi-dashboards)、汎用フロントエンド(フォーム・認証・設定・マーケティング)、スキャフォールディング/ビルド/デプロイ(→ databricks-apps)。「ダッシュボードを作成して」「ダッシュボードを構築して」のような、app / AppKit / React / カスタムコードを示すキーワードのないリクエストは、マネージド AI/BI(Lakeview)ダッシュボードを意味するため → databricks-aibi-dashboards を使用し、このスキルは使用しない。「フォームを追加して」「デプロイして」「Lakeview / AI-BI ダッシュボードを構築して」というリクエストにも、このスキルは起動しないこと。databricks-apps はアプリのビルド/実行を担当し、このスキルはデータ画面の見た目と使用するプリミティブを決定します。dashboard-patterns.md から最も近いものを選ぶ(static / analytic / magazine / infographic / repository / embedded mini)。明示すること。ibcs-notation.md の関連ルールを実行する: タイトルへのメッセージ埋め込み、シナリオマーク(実績/前年/計画/予測)、誠実なスケール、セマンティックカラー。チャートの語彙に競合がある場合は IBCS が優先される(同ファイルの競合注記を参照)。@databricks/appkit / @databricks/appkit-ui から実際にエクスポートされているプリミティブにマッピングする(appkit-cheatsheet.md を参照)。AppKit が提供していないコンポーネントは決して記載しないこと。KPI/トレンド/分布カードのプリビルドは存在しないため、表記規則に従ってプリミティブから組み合わせること。colorPalette とセマンティックトークンを使用し、ハードコードされた hex 値は使用しない。データは useAnalyticsQuery/queryKey + sql.* パラメータでバインドすること。Skeleton;Empty → Empty(有用な次のアクションを付与);Error → インラインメッセージ(空白パネルは不可);Partial/stale → 取得済みデータを表示 + 鮮度に関する注記を付与。適用条件: このセクションは、アプリに Genie / チャット / 自然言語 /「データに質問する」サーフェスが含まれる場合にのみ適用されます。
会話型入力のない純粋なダッシュボード / KPI / レポートアプリの場合は、このセクションと references/genie-ai-trust.md をすべてスキップしてください。
適用される場合は、以下 5 つすべてを実装してください(コードは references/genie-ai-trust.md を参照):
Genie/チャット/自然言語による回答は、生成プロセスと実行者がユーザーに見える場合にのみ信頼できます。「GenieChat + スピナーを使う」だけでは不十分です。Genie/チャットサーフェスがある場合は、以下 5 つすべてを実装してください(参照ファイルから正確なスニペットをコピーすること):
/api/whoami ルート(実際の x-forwarded-email/x-forwarded-user ヘッダー)+ サインイン済みユーザーを Badge で表示。OBO を主張できるのは user_api_scopes: [dashboards.genie] が設定されている場合のみ。そうでなければ、クエリがアプリのサービスプリンシパルとして実行されることを開示する。attachments[].query を検査可能な「Generated SQL」Card でレンダリングする。回答がどのように算出されたかを隠してはならない。useGenieChat().status(streaming/error)を反映する。固まったスピナーは不可。genie() スペース設定 + 実行 Identity に関する正直な注記(ユーザースコープの場合は OBO、そうでなければサービスプリンシパル)+ empty/error/ambiguous のハンドリング(Empty、Alert)。設計提案:
## 方向性
[ジャンル、対象ユーザー、主要タスク、設計意図]
## パターンと表記規則の選択
- コンポジション: [データ情報、メタ情報、レイアウト、インタラクション、カラー]
- 表記規則: [メッセージ、シナリオマーク、スケール、セマンティックカラー]
## コンポーネント計画 ← 実装可能にするための核心部分
- [要素] → [AppKit コンポーネント](queryKey/props)、[トークン/パレット]、処理する状態
## トレードオフとリスク
[要約/非表示/ページ分割/インタラクティブ化するもの、過負荷・スケール・アクセシビリティ・メンテナンスのリスク]
批評: 最も影響の大きい理解度/誠実性の問題から始め、該当するコンポーネント/ファイルを明示した上で、インパクト順に各指摘を列挙し、それぞれに具体的な修正方法(変更すべきコンポーネント/トークン/状態)を示す。
KpiCard)— 公開されているプリミティブを組み合わせてコンポジットを構成すること。Make Databricks data + AI apps that communicate clearly and compile to real AppKit code. This skill merges two bodies of knowledge and binds them to implementation:
references/dashboard-patterns.mdreferences/ibcs-notation.mdreferences/appkit-cheatsheet.mdDesign advice that doesn't name a real component is incomplete. Always end at a component plan.
databricks-aibi-dashboards), generic frontend (forms, auth, settings, marketing), or scaffolding/build/deploy (→ databricks-apps). A plain "create a dashboard" / "build a dashboard" request (no app / AppKit / React / custom-code signal) means a managed AI/BI (Lakeview) dashboard → use databricks-aibi-dashboards, not this skill. If a request is "add a form", "deploy this", or "build a Lakeview / AI-BI dashboard", this skill should not fire.databricks-apps builds/runs the app; this skill decides what the data screens should look like and which primitives realize them.dashboard-patterns.md (static / analytic / magazine / infographic / repository / embedded mini). State it.ibcs-notation.md rules: message-in-title, scenario marks (actual/PY/plan/forecast), honest scales, semantic color. On any chart-vocabulary conflict, IBCS wins (see the conflict note in that file).@databricks/appkit / @databricks/appkit-ui (see appkit-cheatsheet.md); never cite a component AppKit doesn't ship. There's no prebuilt KPI/trend/distribution card — compose those from primitives, following the notation rules. Use colorPalette + semantic tokens, never hardcoded hex. Bind data with useAnalyticsQuery/queryKey + sql.* params.Skeleton; Empty → Empty with a useful next action; Error → inline message, never a blank panel; Partial/stale → show what you have + a freshness note.Gate: this section applies only if the app has a Genie / chat / natural-language / "ask your data" surface. For a pure dashboard / KPI / report app with no conversational input, skip this section and references/genie-ai-trust.md entirely. When it does apply, implement ALL five (code in references/genie-ai-trust.md):
A Genie/chat/NL answer is only trustworthy if the user can see how it was produced and who it ran as. "Use GenieChat + a spinner" is NOT enough — for ANY Genie/chat surface, ship all five (copy the exact snippets from the reference):
/api/whoami route (real x-forwarded-email/x-forwarded-user headers) + the signed-in user in a Badge. Claim OBO only if user_api_scopes: [dashboards.genie] is wired; otherwise disclose the query runs as the app's service principal.attachments[].query in an inspectable "Generated SQL" Card; never hide how the answer was computed.useGenieChat().status (streaming/error), never a frozen spinner.genie() space config + a truthful execution-identity note (OBO when user-scoped, else service principal) + empty/error/ambiguous handling (Empty, Alert).Design proposal:
## Direction
[Genre, audience, primary task, design intent.]
## Pattern & notation choices
- Composition: [data info, meta info, layout, interaction, color]
- Notation: [message, scenario marks, scales, semantic color]
## Component plan ← the part that makes it buildable
- [element] → [AppKit component] (queryKey/props), [token/palette], states handled
## Tradeoffs & risks
[What's summarized/hidden/paginated/interactive; overload, scale, a11y, maintenance risks.]
Critique: lead with the top comprehension/integrity issue, cite the component/file, then list findings by impact, each with the concrete fix (which component/token/state to change).
KpiCard) — compose composites from published primitives instead.原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。