/data-analyst
BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。
$ npx -y skills add minicoohei/ai-agent-camp --skill data-analyst --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/data-analyst
Context preview
The summary Claude sees to decide when to auto-load this skill.
BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。
SKILL.md
data-analyst.SKILL.mdname: data-analyst
description: "BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。"
status: draft
triggers:
- データ分析
- BigQuery
- Snowflake
- EDA
- 探索的データ分析
- 可視化
- グラフを作成
- Marimo
- ノートブック
Data Analyst サブエージェント
BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェント。
> **Draft:** Marimo変数の補助Lintスクリプトは未収録。変数名の重複は手動で確認する。
目的
データ分析処理をメインエージェントのコンテキストから分離し:
- 4つの関連ルールをサブエージェント内に統合(約1500-3000トークン削減)
- 分析結果のサマリーのみを返却
- GCP認証フローの統合
統合ルール
このサブエージェントは以下の4つのルールの内容を内包しています: 1. `data_analysis.mdc` - データ分析の基本原則 2. `visualization.mdc` - 可視化の品質基準 3. `notebook.mdc` - Marimo Notebook利用ルール 4. `marimo_variable_naming.mdc` - Marimo変数命名ルール
---
Part 1: データ分析の基本原則
分析プロセス
1. **目的の明確化**: 分析開始前に目的・ゴール・仮説を記述 2. **データ品質の確保**: 完全性・正確性・一貫性を確認、欠損・異常値・重複の処理方針を説明 3. **バイアスと因果**: 主観的バイアスを排除、相関と因果を混同しない 4. **分析対象の理解**: カラム意味・単位・収集元・更新頻度を把握
ファイル整理
data/
├── raw/ # 元データ(上書き禁止)
├── intermediate/ # 中間処理データ
├── feature/ # 特徴量データ
└── output/ # 最終出力
**命名規則**: `{source}__{target}__{granularity}__{date}.parquet` 例: `bq__sales__daily__2025-03-01.parquet`
EDA(探索的データ分析)
- YData Profiling (`ydata-profiling`) やAutoViz (`autoviz`) を活用
- Marimoでインタラクティブに探索
- 1つのグラフに情報を詰め込みすぎない
---
Part 2: 可視化の品質基準
必須ルール
| ルール | 説明 | |--------|------| | 意味のあるラベル | index番号使用禁止、ユーザー名/日付/カテゴリ名を使用 | | 適切なグラフタイプ | 棒グラフ(比較)、折れ線(時系列)、ヒートマップ(2次元)| | 日本語ラベル | 専門知識なしで理解できるように | | 数値ラベル表示 | 棒の上に「1,791件」等を表示 | | タイトル/軸ラベル/凡例 | 必須 | | 高解像度 | 300 DPI以上 |
グラフタイプ選択
| データ | 推奨グラフ | |--------|----------| | カテゴリ比較 | 棒グラフ | | 時系列 | 折れ線グラフ | | 2次元データ | ヒートマップ | | 内訳 | 積み上げグラフ | | 長いラベル | 横棒グラフ |
matplotlib設定
import matplotlib
matplotlib.use('Agg') # GUIなしで動作
import matplotlib.pyplot as plt
# 日本語フォント設定
plt.rcParams['font.family'] = 'Hiragino Sans'---
Part 3: Marimo Notebook ルール
基本ルール
1. **Marimoを使用**: Jupyter Notebookは使用しない 2. **分析目的を明記**: 最初のセルに記載 3. **仮想環境の使用**: uv を使用 4. **エラー対応**: 原因と再発防止策をNotebookに追記
進捗表示(tqdm)
from tqdm import tqdm
# 時間のかかる処理には必ず進捗表示
for item in tqdm(items, desc="処理中", unit="item"):
process(item)
time.sleep(0.5)BigQuery重複除去(必須)
WITH deduplicated AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY post.xPostId ORDER BY _PARTITIONTIME DESC) as row_num
FROM `project.dataset.table`
WHERE _PARTITIONTIME IS NOT NULL
)
SELECT * FROM deduplicated WHERE row_num = 1---
Part 4: Marimo変数命名ルール
🚨 重要な制約
Marimoでは**変数の再定義が禁止**。異なるセル間で同じ変数名を使用するとエラー。
命名パターン
セル固有の接尾辞
| セルの目的 | 推奨接尾辞 | 例 | |----------|---------|---| | データ取得 | `_fetch`, `_load` | `df_fetch`, `result_load` | | 前処理 | `_prep`, `_clean` | `data_prep`, `values_clean` | | 統計分析 | `_stat`, `_calc` | `mean_stat`, `corr_calc` | | 可視化(静的) | `_static`, `_plot` | `fig_static`, `ax_plot` | | 可視化(動的) | `_dyn`, `_inter` | `net_dyn`, `chart_inter` | | モデル学習 | `_train`, `_fit` | `model_train`, `scaler_fit` | | 評価 | `_eval`, `_test` | `score_eval`, `pred_test` |
正しい例
# ✅ 良い例(セルごとに固有の接尾辞)
@app.cell
def _(data):
fig_overview, axes_overview = plt.subplots(2, 2)
for idx_ov, ax_ov in enumerate(axes_overview.flatten()):
ax_ov.plot(data[idx_ov])
return fig_overview, axes_overview
@app.cell
def _(data):
fig_detail, axes_detail = plt.subplots(3, 3)
return fig_detail, axes_detail変数の重複確認
編集前後に各セルのトップレベル変数名を見直し、同じ名前を複数セルで再定義していないことを確認する。重複する場合は、セルの役割が分かる固有の接尾辞を付ける。
---
GCP認証
作業開始前の確認
# 設定プロファイル一覧
gcloud config configurations list
# プロファイル切り替え
gcloud config configurations activate <profile_name>
# 認証
gcloud auth application-default login
利用可能なプロファイル
| プロファイル名 | プロジェクトID | 用途 | |---------------|---------------|------| | `default` | - | デフォルト環境 | | `my-profile` | my-gcp-project | 本番データ分析 | | `my-dev` | my-dev-project | 開発分析 |
---
サブエージェント呼び出しパターン
メインエージェントは以下のパターンでこのサブエージェントを呼び出す:
Task(
subagent_type="generalPurpose",
model="fast",
description="Data analysis",
prompt="""
このスキルを読んで実行してください: skills/data-analyst/SKILL.md
タスク: {ユーザーの指示}
データソース: {BigQuery / Snowflake / CSV等}
分析目的: {EDA / 可視化 / レポート作成等}
分析結果のサマリーを返却してください。
"""
)---
返却フォーマット
status: success
analysis_type: EDA
data_source: BigQuery (my-dev-project)
summary:
total_rows: 150000
columns: 25
date_range: "2025-01-01 ~ 2025-12-31"
key_findings:
- "日別投稿数は平均1,200件/日"
- "ピーク時間帯は12:00-13:00"
- "週末は平日比30%減少"
visualizations:
- path: reports/daily_posts.png
description: "日別投稿数推移"
- path: reports/hourly_heatmap.png
description: "時間帯別ヒートマップ"
notebook:
path: notebooks/eda_analysis.py
status: "作成完了"---
依存関係
marimo>=0.5.0
pandas>=2.0.0
plotly>=5.0.0
matplotlib>=3.7.0
google-cloud-bigquery>=3.0.0
ydata-profiling>=4.0.0
tqdm>=4.65.0
---
ユースケース
1. **BigQuery EDA**: テーブル構造把握、基本統計、分布確認 2. **時系列分析**: トレンド、季節性、異常値検出 3. **コホート分析**: ユーザーセグメント、リテンション 4. **可視化レポート**: ダッシュボード、プレゼン資料 5. **Marimoノートブック作成**: インタラクティブ分析環境構築
Troubleshooting
| エラー | 解決方法 | |--------|---------| | GCP認証エラー | `gcloud auth application-default login` を実行 | | BigQueryテーブルが見つからない | `gcloud config configurations list` でプロファイルを確認し適切なものに切り替え | | Marimo変数再定義エラー | 各セルのトップレベル変数を見直し、重複名に固有の接尾辞を付ける |
Success Criteria
- [ ] 分析結果のサマリー(YAML形式)が返却されている
- [ ] 可視化グラフに日本語ラベル・タイトル・凡例が含まれている
- [ ] 出力ファイルが `data/output/` または `reports/` に保存されている
Overview
BigQuery/Snowflake接続、EDA(探索的データ分析)、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェントスキルです。データ分析・可視化・Notebook作成の4つのルールを統合し、分析結果のサマリーのみを返却します。
Usage
上記「サブエージェント呼び出しパターン」および「GCP認証」セクションを参照。基本的な実行例:
# Marimo ノートブックで分析を開始
marimo edit notebooks/eda_analysis.py
Read more
name: data-analyst description: "BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。" status: draft triggers: - データ分析 - BigQuery - Snowflake - EDA - 探索的データ分析 - 可視化 - グラフを作成 - Marimo - ノートブック
Data Analyst サブエージェント
BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェント。
> **Draft:** Marimo変数の補助Lintスクリプトは未収録。変数名の重複は手動で確認する。
目的
データ分析処理をメインエージェントのコンテキストから分離し:
- 4つの関連ルールをサブエージェント内に統合(約1500-3000トークン削減)
- 分析結果のサマリーのみを返却
- GCP認証フローの統合
統合ルール
このサブエージェントは以下の4つのルールの内容を内包しています: 1. `data_analysis.mdc` - データ分析の基本原則 2. `visualization.mdc` - 可視化の品質基準 3. `notebook.mdc` - Marimo Notebook利用ルール 4. `marimo_variable_naming.mdc` - Marimo変数命名ルール
---
Part 1: データ分析の基本原則
分析プロセス
1. **目的の明確化**: 分析開始前に目的・ゴール・仮説を記述 2. **データ品質の確保**: 完全性・正確性・一貫性を確認、欠損・異常値・重複の処理方針を説明 3. **バイアスと因果**: 主観的バイアスを排除、相関と因果を混同しない 4. **分析対象の理解**: カラム意味・単位・収集元・更新頻度を把握
ファイル整理
data/ ├── raw/ # 元データ(上書き禁止) ├── intermediate/ # 中間処理データ ├── feature/ # 特徴量データ └── output/ # 最終出力
**命名規則**: `{source}__{target}__{granularity}__{date}.parquet` 例: `bq__sales__daily__2025-03-01.parquet`
EDA(探索的データ分析)
- YData Profiling (`ydata-profiling`) やAutoViz (`autoviz`) を活用
- Marimoでインタラクティブに探索
- 1つのグラフに情報を詰め込みすぎない
---
Part 2: 可視化の品質基準
必須ルール
| ルール | 説明 | |--------|------| | 意味のあるラベル | index番号使用禁止、ユーザー名/日付/カテゴリ名を使用 | | 適切なグラフタイプ | 棒グラフ(比較)、折れ線(時系列)、ヒートマップ(2次元)| | 日本語ラベル | 専門知識なしで理解できるように | | 数値ラベル表示 | 棒の上に「1,791件」等を表示 | | タイトル/軸ラベル/凡例 | 必須 | | 高解像度 | 300 DPI以上 |
グラフタイプ選択
| データ | 推奨グラフ | |--------|----------| | カテゴリ比較 | 棒グラフ | | 時系列 | 折れ線グラフ | | 2次元データ | ヒートマップ | | 内訳 | 積み上げグラフ | | 長いラベル | 横棒グラフ |
matplotlib設定
import matplotlib
matplotlib.use('Agg') # GUIなしで動作
import matplotlib.pyplot as plt
# 日本語フォント設定
plt.rcParams['font.family'] = 'Hiragino Sans'---
Part 3: Marimo Notebook ルール
基本ルール
1. **Marimoを使用**: Jupyter Notebookは使用しない 2. **分析目的を明記**: 最初のセルに記載 3. **仮想環境の使用**: uv を使用 4. **エラー対応**: 原因と再発防止策をNotebookに追記
進捗表示(tqdm)
from tqdm import tqdm
# 時間のかかる処理には必ず進捗表示
for item in tqdm(items, desc="処理中", unit="item"):
process(item)
time.sleep(0.5)BigQuery重複除去(必須)
WITH deduplicated AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY post.xPostId ORDER BY _PARTITIONTIME DESC) as row_num
FROM `project.dataset.table`
WHERE _PARTITIONTIME IS NOT NULL
)
SELECT * FROM deduplicated WHERE row_num = 1---
Part 4: Marimo変数命名ルール
🚨 重要な制約
Marimoでは**変数の再定義が禁止**。異なるセル間で同じ変数名を使用するとエラー。
命名パターン
セル固有の接尾辞
| セルの目的 | 推奨接尾辞 | 例 | |----------|---------|---| | データ取得 | `_fetch`, `_load` | `df_fetch`, `result_load` | | 前処理 | `_prep`, `_clean` | `data_prep`, `values_clean` | | 統計分析 | `_stat`, `_calc` | `mean_stat`, `corr_calc` | | 可視化(静的) | `_static`, `_plot` | `fig_static`, `ax_plot` | | 可視化(動的) | `_dyn`, `_inter` | `net_dyn`, `chart_inter` | | モデル学習 | `_train`, `_fit` | `model_train`, `scaler_fit` | | 評価 | `_eval`, `_test` | `score_eval`, `pred_test` |
正しい例
# ✅ 良い例(セルごとに固有の接尾辞)
@app.cell
def _(data):
fig_overview, axes_overview = plt.subplots(2, 2)
for idx_ov, ax_ov in enumerate(axes_overview.flatten()):
ax_ov.plot(data[idx_ov])
return fig_overview, axes_overview
@app.cell
def _(data):
fig_detail, axes_detail = plt.subplots(3, 3)
return fig_detail, axes_detail変数の重複確認
編集前後に各セルのトップレベル変数名を見直し、同じ名前を複数セルで再定義していないことを確認する。重複する場合は、セルの役割が分かる固有の接尾辞を付ける。
---
GCP認証
作業開始前の確認
# 設定プロファイル一覧 gcloud config configurations list # プロファイル切り替え gcloud config configurations activate <profile_name> # 認証 gcloud auth application-default login
利用可能なプロファイル
| プロファイル名 | プロジェクトID | 用途 | |---------------|---------------|------| | `default` | - | デフォルト環境 | | `my-profile` | my-gcp-project | 本番データ分析 | | `my-dev` | my-dev-project | 開発分析 |
---
サブエージェント呼び出しパターン
メインエージェントは以下のパターンでこのサブエージェントを呼び出す:
Task(
subagent_type="generalPurpose",
model="fast",
description="Data analysis",
prompt="""
このスキルを読んで実行してください: skills/data-analyst/SKILL.md
タスク: {ユーザーの指示}
データソース: {BigQuery / Snowflake / CSV等}
分析目的: {EDA / 可視化 / レポート作成等}
分析結果のサマリーを返却してください。
"""
)---
返却フォーマット
status: success
analysis_type: EDA
data_source: BigQuery (my-dev-project)
summary:
total_rows: 150000
columns: 25
date_range: "2025-01-01 ~ 2025-12-31"
key_findings:
- "日別投稿数は平均1,200件/日"
- "ピーク時間帯は12:00-13:00"
- "週末は平日比30%減少"
visualizations:
- path: reports/daily_posts.png
description: "日別投稿数推移"
- path: reports/hourly_heatmap.png
description: "時間帯別ヒートマップ"
notebook:
path: notebooks/eda_analysis.py
status: "作成完了"---
依存関係
marimo>=0.5.0 pandas>=2.0.0 plotly>=5.0.0 matplotlib>=3.7.0 google-cloud-bigquery>=3.0.0 ydata-profiling>=4.0.0 tqdm>=4.65.0
---
ユースケース
1. **BigQuery EDA**: テーブル構造把握、基本統計、分布確認 2. **時系列分析**: トレンド、季節性、異常値検出 3. **コホート分析**: ユーザーセグメント、リテンション 4. **可視化レポート**: ダッシュボード、プレゼン資料 5. **Marimoノートブック作成**: インタラクティブ分析環境構築
Troubleshooting
| エラー | 解決方法 | |--------|---------| | GCP認証エラー | `gcloud auth application-default login` を実行 | | BigQueryテーブルが見つからない | `gcloud config configurations list` でプロファイルを確認し適切なものに切り替え | | Marimo変数再定義エラー | 各セルのトップレベル変数を見直し、重複名に固有の接尾辞を付ける |
Success Criteria
- [ ] 分析結果のサマリー(YAML形式)が返却されている
- [ ] 可視化グラフに日本語ラベル・タイトル・凡例が含まれている
- [ ] 出力ファイルが `data/output/` または `reports/` に保存されている
Overview
BigQuery/Snowflake接続、EDA(探索的データ分析)、可視化、Marimoノートブック作成を専用コンテキストで実行するサブエージェントスキルです。データ分析・可視化・Notebook作成の4つのルールを統合し、分析結果のサマリーのみを返却します。
Usage
上記「サブエージェント呼び出しパターン」および「GCP認証」セクションを参照。基本的な実行例:
# Marimo ノートブックで分析を開始 marimo edit notebooks/eda_analysis.py
AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### ⚠️ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your
Other skills on ai-agent-camp.
- /ab-test-setup
A/Bテストや実験の設計・実装を支援するスキル。 「A/Bテストを設計して」「スプリットテストしたい」「仮説を立ててテストしたい」「バリアントを比較」等のリクエストで発動。 トラッキング実装は analytics-tracking を参照。
Open skill - /agent-designer
マルチエージェントシステムのアーキテクチャ設計ツールキット。 「エージェントを設計して」「マルチエージェント構成」「エージェントのアーキテクチャ」「オーケストレーション設計」等のリクエストで発動。
Open skill - /analytics-tracking
アナリティクスのトラッキング設定・改善・監査を支援するスキル。 「トラッキングを設定」「GA4を導入」「コンバージョン計測」「イベントトラッキング」「UTMパラメータ」「GTMの設定」等のリクエストで発動。 A/Bテスト計測は ab-test-setup を参照。
Open skill - /article-writer
テーマからアウトライン生成→文体プロファイル適用→Markdown記事出力を行う記事執筆スキル。 挿絵マーカーの自動挿入、style-analyzerプロファイル参照による文体統一に対応。 「記事を書いて」「ブログ作成」「テーマで記事生成」等のリクエストで発動。
Open skill - /banner-creator
各種SNS・広告プラットフォーム向けのバナー/クリエイティブを生成するスキル。 X, Facebook, Instagram, PRTimes, YouTube, LINE, Web広告に対応。 「バナーを作って」「広告画像を生成」「SNS用の画像」「クリエイティブ制作」等のリクエストで発動。
Open skill - /bigquery-auth
GCPプロジェクト単位でBigQuery認証を設定するスキル。 gcloud設定プロファイルで複数プロジェクトを安全に分離管理。 「BigQueryに繋ぎたい」「BQ認証」「gcloud認証」「データ分析の認証設定」等のリクエストで発動。
Open skill

