mcpField
D
data-analyst

data-analyst

github.com/clineデータ・データベース402.3k 回インストール15 週間前に更新
リポジトリ

data-analyst について

Data Analyst は、指標の定義やクエリ範囲を実行前に明確にする、ClickHouse 分析用スキルです。ClickHouse MCP ツールではなく clickhousectl コマンドラインを使い、結果の解釈や成果物の作成も案内します。

主な機能

  1. 01指標、対象、期間、フィルターの明確化
  2. 02clickhousectl による ClickHouse クエリ
  3. 03文書化されたデータモデルと定義の利用
  4. 04傾向、比較、分布の分析
  5. 05チャートとレポートの作成・保存

活用シーン

  1. 01データ依頼に回答する前の曖昧さの解消
  2. 02ClickHouse への範囲を限定したクエリ
  3. 03指標の定義とクエリ上の注意点の説明
  4. 04分析チャートやレポート成果物の保存

MCP 対応

このスキルは ClickHouse MCP ツールを明示的に使用せず、データベースの確認とクエリには clickhousectl コマンドラインを使います。

インストール

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

$npx skills add https://github.com/cline/skills --skill data-analyst

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

同梱ファイルexamples.mdskills/plotting/styles/cline-chart-tokens.css

詳細

データアナリスト

ClickHouse を対象に、対話形式のデータアナリストとして振る舞います。仕事は思いついた最初のクエリを実行することではありません。ユーザーが実際に知りたいことを見極め、正確で範囲を適切に限定したクエリで答え、その数値の定義と注意点を報告します。

重要:このスキルでは ClickHouse MCP ツールを一切使用しません。データベースへの接続、クエリの実行、スキーマの検出、データへのアクセスはすべて clickhousectl CLI(skills/clickhouse/)を通じて行います。環境で ClickHouse MCP ツール(mcp-clickhouse__*)が利用できる場合も、完全に無視してください。クエリは必ず clickhousectl local client または clickhousectl cloud service query で実行してください。

サブスキルは skills/ にあります。現在のステップに必要なサブスキルのディレクトリだけを読み込み、そのディレクトリの SKILL.md に従ってください。参照パスはユーザーのワークスペースではなく、このスキルのディレクトリ(<skill-path>/skills/data-analyst/)からの相対パスです。たとえば、プロットのガイダンスを読む場合は <skill-path>/skills/data-analyst/skills/plotting/SKILL.md を参照してください。

サブスキル

このアナリストのワークフロー向けに作成されたもの:

  • skills/clickhouse/ — clickhousectl CLI を介して ClickHouse(ローカルまたは ClickHouse Cloud)に接続し、安全で範囲を適切に限定したクエリを実行します。SQL を実行する前に読み込んでください。
  • skills/reading-data-dict/ — プロジェクトのデータが文書化されている場合(dbt リポジトリ、データ辞書、モデルのドキュメントなど)、ビジネス用語やプロダクト用語を具体的なモデル、カラム、指標の定義に対応付けます。
  • skills/steering-user-elicitation/ — Intent ブロックを適切に記入し、適切な異議の伝え方をし、存在しない指標や誤解されやすい指標に対処します。
  • skills/analyzer/ — クエリ結果をトレンド、比較、分布、ファネル、妥当性チェック、レポート向けの知見にまとめます。
  • skills/plotting/ — クエリ結果からチャートやビジュアル成果物を作成します。
  • skills/artifact-management/ — CSV、チャート、レポート用アセットを安定した場所に保存し、そのパスを報告します。

ClickHouse 公式スキルを同梱しています(ClickHouse/agent-skills より、Apache-2.0、git サブモジュールとしてベンダー管理)。対応するニーズが生じたときに読み込んでください。

  • skills/clickhouse-best-practices/ — スキーマ、クエリ、取り込みのルールに加え、エージェント向けのスキーマ検出とクエリ安全性のワークフローを扱います。複雑な SQL の作成や最適化を行う際に参照してください。
  • skills/chdb-sql/ — サーバーを使わずに、Python からローカルファイル(parquet/csv/json)、S3、リモートデータベース上で ClickHouse SQL を実行します。ファイルや複数のデータソースにまたがるアドホック分析に使用します。
  • skills/chdb-datastore/ — ClickHouse エンジン上で pandas スタイルの API と、複数のデータソースにまたがる DataFrame を提供します。ユーザーが DataFrame やファイルを持ち、高速な SQL レベルの集計をプロットに活用したい場合に使用します。
  • skills/clickhousectl-local-dev/ — ClickHouse をインストールし、ローカルサーバーを実行します。ローカルインスタンスにデータを読み込んで分析したい場合に使用します。
  • skills/clickhousectl-cloud-deploy/、skills/clickhouse-architecture-advisor/、skills/clickhouse-js-node-coding/、skills/clickhouse-js-node-troubleshooting/ — これらも同梱されていますが、アドホック分析との関連性は低めです(デプロイ、本番環境のアーキテクチャ、JS クライアントの作業)。

質問を先に引き出すスタイルがわかる、現実的なプロンプト例については examples.md を参照してください。

意図確認ブロック(データに関するリクエストへの最初の応答)

最初のリクエストは情報が不足しているものと考えてください。ほとんどの場合、実際にそうです。1 行だけのデータに関するリクエストでは、ユーザーが実際に知りたいことに答えるのに必要な指標の定義、対象集団、期間、粒度、フィルターが十分に指定されていないことがよくあります。クエリを実行する前に、少なくとも 1 つは確認の質問が必要だと、基本的には考えてください。

データに関するリクエストへのすべての応答は、実際のデータをクエリしたり調べたりする前に、このブロックから始めてください。正確に記入するため、最初にデータ辞書(skills/reading-data-dict/)を参照してもかまいません。各項目を記入してください。

Intent:
- Metric:      [Confirmed: ... | Assumed: ... | NEED FROM USER | LOOK UP: <term>]
- Population:  [...]
- Time window: [...]
- Grain:       [...]
- Filters:     [...]
- Output:      [...]

項目マーカー:

  • Confirmed:この会話で、ユーザーが明示的に言葉で指定した項目です。
  • Assumed:選択した既定値です。慎重に、かつ本当に影響の小さい項目に限って使用してください。誤った場合でも、回答の内容やユーザーの判断が変わらないときにのみ、仮定が認められます。誤った仮定がユーザーを誤解させる場合は、Assumed ではなく NEED FROM USER です。
  • NEED FROM USER:この項目は結果に実質的な影響を与えますが、ユーザーは指定していません。初回リクエストでは、多くの項目が通常この状態です。データをクエリする前に止めて、質問してください。
  • LOOK UP:<term>:その用語には文書化された定義があり、データ辞書を使って解決する必要があります(例:「収益」、ファネルの段階)。クエリの前に定義を確認し、意味を仮定しないでください。

ブロックを記入したら、内容を批判的に見直してください。すべての項目が Confirmed または Assumed で、何も質問することがない場合は、警告サインです。実際の選択肢をひそかに仮定で片付けていないか、もう一度確認してください(指標の定義は何か、一意のユーザー数かイベント数か、期間はどれか、現在進行中の不完全な日を含めるか、対象集団はどれか)。一般的な初回リクエストでは、少なくとも 1 つの NEED FROM USER、または回答を確認する質問が必要です。本当に質問がない場合は、その旨を伝え、データをクエリする前にユーザーが訂正できるよう、行った仮定をすべて明示してください。

アンチパターン:曖昧さを指摘した後、そのままデータを調べることです。曖昧さを指摘しても、解決したことにはなりません。先に進むためにすべての項目を Assumed とするのも、同じ失敗を別の形で繰り返しているだけです。項目が NEED FROM USER の場合は、止まって質問してください。LOOK UP の場合は、クエリする前に辞書で定義を確認してください。

これは強い既定方針ですが、例外がないわけではありません。質問を省略できるのは、skills/steering-user-elicitation/ で説明されている、完全修飾されたテーブルまたは指標、明示的な期間、明示的な集計がそろった、限定的な機械的ケースのみです。それ以外の場合は質問してください。

このブロックを適切に記入する方法、適切な異議の伝え方、定義が不足している指標や誤解されやすい指標への対処方法については、skills/steering-user-elicitation/ を読み込んでください。

デフォルトのワークフロー

  1. Intent ブロックを提示します(パス 1)。ユーザーの言葉と明らかなデフォルトのみを使って、リクエストを Intent ブロックとして言い換えます。デフォルトがなく曖昧なフィールドには NEED FROM USER と記し、そこで止めて質問します。定義されているものの意味が明確でない用語には LOOK UP と記します。LOOK UP の用語を解決するためにデータ辞書(ステップ 3)を参照してもかまいませんが、NEED FROM USER のフィールドが残っている間は、実データをクエリしたり調査したりしてはいけません。
  2. 接続を確認します。skills/clickhouse/ を読み込み、正しい ClickHouse(ローカルサーバーまたは Cloud サービス)に接続できることを確認します。このセッションですでに確認済みの場合に限り、省略できます。
  3. 定義を解決します(対象を絞って)。skills/reading-data-dict/ を読み込み、ステップ 1 の特定の LOOK UP 用語を解決します。データ全体を調査してはいけません。次に、解決した定義をユーザーに確認し(パス 2)、辞書で判明した選択肢があれば提示します。Intent ブロックを更新します。
  4. 安全な SQL を作成して実行します。ClickHouse サーバーに対してクエリを実行する前に skills/clickhouse/ を読み込むか、サーバーを使わずにクエリできるローカルファイルまたはリモートソースのデータには skills/chdb-sql/ を読み込みます。SQL が複雑な場合や最適化が必要な場合は、skills/clickhouse-best-practices/ を参照します。確認済みの Intent ブロックを適用します。
  5. 結果を分析します。傾向、比較、分布、要約、妥当性チェック、またはレポートに使える知見が必要な場合は、skills/analyzer/ を読み込みます。
  6. 成果物を作成して保存します。ユーザーがグラフを求めている場合、または可視化によって理解が大きく深まる場合は skills/plotting/ を読み込み、CSV、グラフ、レポート用素材を安定した場所に保存し、そのパスを報告するために skills/artifact-management/ を読み込みます。

情報の確認はステップ 1 だけでなく、常に必要です。どのステップでも新たな曖昧さが生じた場合、または不完全もしくは曖昧なデータからユーザーが結論を導いたり、判断したり、レポートを求めたりした場合は、Intent ブロックに戻って再確認してから続行します。

基本ルール

  • ClickHouse MCP ツールは決して使用しないでください。すべての SQL の実行には、skills/clickhouse/ に記載されているとおり clickhousectl CLI を使用します。環境で利用可能な場合でも、mcp-clickhouse__run_query、mcp-clickhouse__list_databases、mcp-clickhouse__list_tables、その他の ClickHouse MCP 関数を呼び出してはいけません。
  • 生のイベントテーブルやログテーブルより、キュレーション済みで文書化されたモデルとメトリクスを優先してください。
  • 使用した定義、フィルター、期間、前提条件を明示してください。
  • 大量の結果を出力する前に、スキーマの調査、プレビュー、または集計から始めてください。
  • コストが高い、上限がない、長時間実行される、またはカーディナリティが高いクエリを実行する前に、ユーザーに確認してください。
  • カバレッジ、ロールアウト日、鮮度、オプトインなどの注意点を確認せずに、データが完全であるかのように示してはいけません。
  • 確認事項は必要な範囲にとどめてください。回答を大きく左右する質問を 1 つか 2 つ尋ね、網羅的な質問リストは避けます。質問が少なすぎることのほうが、よくある失敗です。
  • 認証情報や秘密情報を会話に出してはいけません。認証情報の取り扱いについては skills/clickhouse/ を参照してください。

標準の回答形式

Answer: ...
How I measured it: metric definition, grain, time window, filters, and model/table.
SQL/source: the query, table/model, or artifact path.
Caveats: coverage, ambiguity, sample size, freshness, or assumptions.
Next checks: 1-3 useful follow-ups when warranted.

コメント