원클릭으로
meta-kaggle
終了済みコンペの discussion・チーム情報を meta-kaggle から検索・分析(終了前のコンペは対象外)。"meta-kaggle", "上位解法" などで起動。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
終了済みコンペの discussion・チーム情報を meta-kaggle から検索・分析(終了前のコンペは対象外)。"meta-kaggle", "上位解法" などで起動。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Ask OpenAI Codex CLI for an autonomous second AI opinion. "ask codex", "codex と相談" などで起動。
Request GitHub Copilot review on a Pull Request. "PR レビュー依頼", "copilot review" などで起動。
Extract VTT transcript from a Zoom recording share page. "zoom transcript", "zoom 文字起こし" などで起動。
Download the video (MP4) from a Zoom recording share page. "zoom video download", "zoom 録画 ダウンロード", "zoom 動画 ダウンロード" などで起動。
Round-trip code review through difit. Use when the user mentions "difit", "diff review", "open the diff", "let me look at this", or "review this PR locally". Launch mode arg — "open" (default, no comments at launch), "explain" (AI annotates its own change), "review" (AI posts findings on human code).
Stop tool execution before exhausting your Claude usage — set a 5h/7d usage-% or per-session cost threshold.
| name | meta-kaggle |
| description | 終了済みコンペの discussion・チーム情報を meta-kaggle から検索・分析(終了前のコンペは対象外)。"meta-kaggle", "上位解法" などで起動。 |
| metadata | {"author":"pokutuna"} |
| allowed-tools | ["Bash(uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/sync.py *)","Bash(uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/extract.py *)","Bash(uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py *)","Read(~/.meta-kaggle/**)","Edit(~/.meta-kaggle/**)","AskUserQuestion"] |
| user-invocable | true |
kaggle/meta-kaggle データセットからコンペティションのディスカッション・チーム情報を検索・分析する。
pip install kaggle) — 認証済み (~/.kaggle/kaggle.json)3段階のワークフローで進める。初回は Step 1 から、2回目以降はデータが同期済みか確認してから Step 2 or 3 へ。
ソース CSV を ~/.meta-kaggle/ にダウンロードする。
# 状態確認 (ダウンロード済みか、最新か)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/sync.py --status
# 同期 (未ダウンロードまたは更新がある場合のみダウンロード)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/sync.py
# 強制再ダウンロード
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/sync.py --force
成功すると JSON サマリが出力される。対象: Competitions.csv, Teams.csv, Forums.csv, ForumTopics.csv, ForumMessages.csv
コンペの slug を指定してフォーラムデータを Parquet に抽出する。
# サブセット作成 (コンペの Discussion タブのみ、デフォルト)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/extract.py <competition-slug>
# データセット・モデルのフォーラムも含める
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/extract.py <competition-slug> --include-datasets --include-models
# 再作成 (データ更新後、オプション変更時)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/extract.py <competition-slug> --update
# 作成済み一覧
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/extract.py --list
デフォルトではコンペの Discussion タブ (ParentForumId: 5, 8, 52) のみ抽出する。関連データセットやモデルのフォーラムも含めたい場合は --include-datasets / --include-models を指定する。
成功すると ~/.meta-kaggle/<slug>/ に teams.parquet, topics.parquet, messages.parquet, meta.json が作成される。
サブセットに対して DuckDB で検索する。全サブコマンドに --limit N オプションあり (デフォルト 50)。
トピック一覧と検索:
# トピック一覧 (Score 降順, デフォルト)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> topics
# ソート: score(デフォルト), messages, created, updated
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> topics --sort updated
# タイトル検索 + 日付フィルタ (組み合わせ可)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> topics --search "keyword" --since 2025-04-01
# 指定日以降にコメントが付いたトピック
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> topics --updated-since 2025-04-01 --sort updated
スレッド読み込みと検索:
# スレッドを Markdown 形式で読む (返信関係付き)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> thread <topic_id>
# メッセージ本文をキーワード検索
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> search "keyword"
解法・チーム情報:
# 上位解法トピック (タイトルパターンマッチ)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> solutions
# スキーマ確認
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> schema
# 任意の SQL (テーブル: teams, topics, messages)
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> sql "SELECT ..."
上位解法の取得 (推奨手順):
uv run --script ${CLAUDE_PLUGIN_ROOT}/skills/meta-kaggle/scripts/query.py <slug> sql "
SELECT t.PrivateLeaderboardRank as Rank, t.TeamName, t.Medal,
tp.Id as TopicId, tp.Title, tp.Score
FROM teams t JOIN topics tp ON t.WriteUpForumTopicId = tp.Id
WHERE t.WriteUpForumTopicId IS NOT NULL
ORDER BY t.PrivateLeaderboardRank LIMIT 10
"
solutions サブコマンドで補完thread <topic_id> で本文を読む詳細なレシピは references/query-recipes.md を参照。
スキーマやデータモデルの詳細は references/schema.md を参照。
ユーザ: map-charting-student-math-misunderstandings の上位解法を調べて
手順:
1. sync.py --status -> データが同期済みか確認 (初回は sync.py で DL)
2. extract.py map-charting-student-math-misunderstandings -> サブセット作成
3. query.py <slug> sql "SELECT ... FROM teams t JOIN topics tp ON t.WriteUpForumTopicId = tp.Id ..."
-> WriteUp 登録済みの上位解法トピック一覧を取得
4. 件数が不足していれば query.py <slug> solutions で補完
5. query.py <slug> thread <topic_id> -> 各解法の本文を読む
ユーザ: このコンペで TabPFN を使った人はいる?
手順:
1. extract.py <slug> (未作成の場合)
2. query.py <slug> search "TabPFN"
-> TabPFN に言及しているメッセージとトピックの一覧
3. query.py <slug> thread <topic_id> -> 該当スレッドの詳細を読む
ユーザ: 昨日から更新のあった discussion を確認して
手順:
1. extract.py <slug> --update -> サブセットを最新化
2. query.py <slug> topics --updated-since 2025-04-04 --sort updated
-> 昨日以降にコメントが付いたトピック
3. query.py <slug> topics --since 2025-04-04 --sort created
-> 昨日以降に新規作成されたトピック
4. 気になるトピックを query.py <slug> thread <topic_id> で読む
原因: 指定した slug のサブセットが未作成。
対処: extract.py <slug> を実行する。初回は sync.py でソースデータのダウンロードも必要。
原因: ソース CSV がダウンロードされていない。
対処: sync.py を実行してデータを同期する。
原因: 開催中のコンペの Discussion データは meta-kaggle に含まれない (Kaggle 公式仕様)。リーダーボードが確定した終了済みコンペのみ対象。 対処: 開催中のコンペの Discussion を調べるには Kaggle Web やブラウザから直接取得する。
原因: 部分一致で複数のコンペがヒットした。
対処: 返された candidates から正しい slug を特定して再実行する。
原因: meta-kaggle は毎日 UTC 12時頃に更新される (データ鮮度は UTC 7-8時頃まで)。 対処:
sync.py --status で lastUpdated を確認sync.py で最新データに同期extract.py <slug> --update でサブセットを再作成原因: デフォルトでは Score <= 0 かつ TotalMessages <= 1 のトピックを除外している。
対処: --all で全トピック表示、--min-score N や --min-messages N で閾値を指定。