Agent Skills by ALSEL
Anthropic Claudeデータ・分析⭐ リポ 0品質スコア 50/100

answering-natural-language-questions-with-dbt

dbtのSemantic LayerまたはアドホックSQLを使用してデータウェアハウスにクエリを実行し、ビジネス上の質問に回答します。「先四半期の総売上は?」「売上上位の顧客を見せて」など、分析・指標・KPI・データに関する質問をユーザーが行う際に使用します。なお、開発中のdbtモデルの検証・テスト・構築には使用しません。

description の原文を見る

Writes and executes SQL queries against the data warehouse using dbt's Semantic Layer or ad-hoc SQL to answer business questions. Use when a user asks about analytics, metrics, KPIs, or data (e.g., "What were total sales last quarter?", "Show me top customers by revenue"). NOT for validating, testing, or building dbt models during development.

SKILL.md 本文

dbt を使った自然言語質問への回答

概要

データ質問に最適な方法で回答します:セマンティックレイヤー優先、次に SQL 修正、モデル発見、マニフェスト分析の順です。回答できないと言う前に、すべてのオプションを試し尽くしてください。

用途: ユーザーからのデータ回答が必要なビジネス質問

  • 「先月の総売上はいくら?」
  • 「アクティブな顧客数は?」
  • 「地域別の収益を表示してほしい」

用途外:

  • 開発中のモデルロジックの検証
  • dbt モデルまたはセマンティックレイヤー定義のテスト
  • dbt モデルの構築または修正
  • dbt rundbt testdbt build ワークフロー

意思決定フロー

flowchart TD
    start([Business question received])
    check_sl{Semantic layer tools available?}
    list_metrics[list_metrics]
    metric_exists{Relevant metric exists?}
    get_dims[get_dimensions]
    sl_sufficient{SL can answer directly?}
    query_metrics[query_metrics]
    answer([Return answer])
    try_compiled[get_metrics_compiled_sql<br/>Modify SQL, execute_sql]
    check_discovery{Model discovery tools available?}
    try_discovery[get_mart_models<br/>get_model_details<br/>Write SQL, execute]
    check_manifest{In dbt project?}
    try_manifest[Analyze manifest/catalog<br/>Write SQL]
    cannot([Cannot answer])
    suggest{In dbt project?}
    improvements[Suggest semantic layer changes]
    done([Done])

    start --> check_sl
    check_sl -->|yes| list_metrics
    check_sl -->|no| check_discovery
    list_metrics --> metric_exists
    metric_exists -->|yes| get_dims
    metric_exists -->|no| check_discovery
    get_dims --> sl_sufficient
    sl_sufficient -->|yes| query_metrics
    sl_sufficient -->|no| try_compiled
    query_metrics --> answer
    try_compiled -->|success| answer
    try_compiled -->|fail| check_discovery
    check_discovery -->|yes| try_discovery
    check_discovery -->|no| check_manifest
    try_discovery -->|success| answer
    try_discovery -->|fail| check_manifest
    check_manifest -->|yes| try_manifest
    check_manifest -->|no| cannot
    try_manifest -->|SQL ready| answer
    answer --> suggest
    cannot --> done
    suggest -->|yes| improvements
    suggest -->|no| done
    improvements --> done

クイックリファレンス

優先度条件アプローチツール
1セマンティックレイヤーが有効メトリクスを直接クエリlist_metricsget_dimensionsquery_metrics
2SL 有効だが軽微な修正が必要(ディメンション欠落、カスタムフィルター、CASE WHEN、異なる集計)コンパイル済み SQL を修正get_metrics_compiled_sql、その後 execute_sql
3SL なし、発見ツール有効モデルを探索、SQL を記述get_mart_modelsget_model_details、その後 show/execute_sql
4MCP なし、dbt プロジェクト内アーティファクト分析、SQL 記述target/manifest.jsontarget/catalog.json を読み込み

アプローチ 1:セマンティックレイヤークエリ

list_metricsquery_metrics が利用可能な場合:

  1. list_metrics - 関連メトリクスを検索
  2. get_dimensions - 必要なディメンションが存在することを確認
  3. query_metrics - 適切なフィルターを使用して実行

セマンティックレイヤーが直接回答できない場合(ディメンション欠落、カスタムロジックが必要)→ アプローチ 2 へ進みます。

アプローチ 2:修正されたコンパイル済み SQL

セマンティックレイヤーにメトリクスはあるが、軽微な修正が必要な場合:

  • ディメンション欠落(結合 + GROUP BY)
  • ディメンションとして利用できないカスタムフィルター
  • カスタム分類用の CASE WHEN ロジック
  • 定義されたものと異なる集計
  1. get_metrics_compiled_sql - 実行する SQL を取得(Jinja ではなく raw SQL を返す)
  2. SQL を修正して必要な内容を追加
  3. execute_sql で raw SQL を実行
  4. 常に提案する 修正内容が再利用可能な場合はセマンティックモデルを更新するように
-- 例:sales_rep ディメンション追加
WITH base AS (
    -- ... コンパイル済みメトリクスロジック(既にテーブル名に解決済み) ...
)
SELECT base.*, reps.sales_rep_name
FROM base
JOIN analytics.dim_sales_reps reps ON base.rep_id = reps.id
GROUP BY ...

-- 例:カスタムフィルター
SELECT * FROM (compiled_metric_sql) WHERE region = 'EMEA'

-- 例:CASE WHEN 分類
SELECT
    CASE WHEN amount > 1000 THEN 'large' ELSE 'small' END as deal_size,
    SUM(amount)
FROM (compiled_metric_sql)
GROUP BY 1

注意: コンパイル済み SQL には {{ ref() }} ではなく解決済みテーブル名が含まれます。返された raw SQL のまま作業してください。

アプローチ 3:モデル発見

セマンティックレイヤーはないが get_all_models/get_model_details が利用可能な場合:

  1. get_mart_models - ステージング モデルではなく mart から開始
  2. 関連モデルの get_model_details - スキーマを理解
  3. {{ ref('model_name') }} を使用して SQL を記述
  4. show --inline "..." または execute_sql

mart をステージング より優先 - mart にはビジネスロジックが適用されています。

マニフェスト/カタログ分析

dbt プロジェクト内にいるが MCP サーバーがない場合:

  1. target/manifest.jsontarget/catalog.json の存在を確認
  2. 読み込み前にフィルタリング - これらのファイルは大きくなる場合があります
# マニフェスト内の mart モデルを検索
jq '.nodes | to_entries | map(select(.key | startswith("model.") and contains("mart"))) | .[].value | {name: .name, schema: .schema, columns: .columns}' target/manifest.json

# カタログから列情報を取得
jq '.nodes["model.project_name.model_name"].columns' target/catalog.json
  1. 発見されたスキーマに基づいて SQL を記述
  2. 説明:「この SQL はあなたのウェアハウスで実行すべきです。データベースへのアクセスがないため、私は実行することができません。」

改善の提案

dbt プロジェクト内にいる場合、回答後(または回答できない場合)にセマンティックレイヤーの変更を提案します:

ギャップ提案
メトリクスが存在しない「セマンティックモデルにメトリクス定義を追加してください」
ディメンション欠落「セマンティックモデルのディメンションリストに dimension_name を追加してください」
セマンティックレイヤーなし「このデータにセマンティックレイヤーの追加を検討してください」

セマンティックレイヤーレベルにとどまる。 以下は提案しないでください:

  • データベーススキーマ変更
  • ETL パイプライン修正
  • 「データエンジニアリングチームに聞いてください...」

抵抗すべき正当化

あなたの考え...現実
「セマンティックレイヤーはこの正確なクエリをサポートしていない」コンパイル済み SQL を取得して修正してください(アプローチ 2)
「MCP ツールがない、助けられない」マニフェスト/カタログをローカルで確認してください
「ユーザーはこれを急いでいるので、体系的なチェックをスキップしよう」体系的なアプローチが最速の道です
「SQL を書く方が速い」セマンティックレイヤーは理由があって存在します - 最初に使用してください
「ディメンションがデータに存在しない」もしかしたらセマンティックレイヤー設定には存在しないが、データには存在するかもしれません

赤旗 - 停止

  • セマンティックレイヤーが回答できるかチェックしないで SQL を記述
  • 4 つのアプローチをすべて試さないで「回答できません」と言う
  • セマンティックレイヤーギャップに対してデータベースレベルの修正を提案
  • フィルタリングなしで全体の manifest.json を読み込み
  • mart モデルが存在するときにステージング モデルを使用
  • ビジネス質問に回答するのではなくモデルの正確性を検証するために使用

よくある間違い

間違い修正
SL が直接回答できないときに諦めるコンパイル済み SQL を取得して修正する
ステージング モデルをクエリ最初に get_mart_models を使用
全体の manifest.json を読み込みjq でフィルタリングして使用
ETL 変更を提案セマンティックレイヤーレベルの提案に留める
ツール利用可能性をチェックしないアプローチを選択する前に利用可能なツールをリストアップ

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
dbt-labs
リポジトリ
dbt-labs/dbt-agent-skills
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/dbt-labs/dbt-agent-skills / ライセンス: Apache-2.0

関連スキル

OpenAIデータ・分析⭐ リポ 1,451

hugging-face-trackio

Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。

by gradio-app
汎用データ・分析⭐ リポ 855

btc-bottom-model

ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。

by star23
Anthropic Claudeデータ・分析⭐ リポ 380

protein_solubility_optimization

タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。

by SpectrAI-Initiative
Anthropic Claudeデータ・分析⭐ リポ 1,743

research-lookup

Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。

by K-Dense-AI
Anthropic Claudeデータ・分析⭐ リポ 299

tree-formatting

ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。

by majiayu000
汎用データ・分析⭐ リポ 145

querying-indonesian-gov-data

インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。

by suryast
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: dbt-labs · dbt-labs/dbt-agent-skills · ライセンス: Apache-2.0