masterdata-releasekey-reporter
GLOWマスタデータのリリースキー別抽出とレポート生成。テーブル別CSV・統計JSON・DuckDBクエリで柔軟な分析が可能。「リリースキー」「release key」「マスタデータ抽出」「データ投入」「リリース内容」などのキーワードで使用します。
When & Why to Use This Skill
The Masterdata Release Key Reporter is a specialized Claude skill designed to automate the extraction and analysis of GLOW project master data based on specific release keys. It streamlines the workflow of processing over 93 tables, generating comprehensive CSV datasets, statistical JSON summaries, and detailed Markdown reports. By integrating DuckDB, it allows for high-performance SQL queries and complex data joins, making it an essential tool for verifying data deployments and maintaining release integrity.
Use Cases
- Release Verification: Automatically extract and audit all master data records associated with a specific release key to ensure deployment accuracy.
- Impact Analysis: Investigate the scope of changes and potential side effects by comparing data statistics before and after a release.
- Automated Documentation: Generate structured Markdown reports and statistical summaries for internal audits or release notes, reducing manual documentation effort.
- Cross-Table Data Analysis: Utilize DuckDB to perform complex SQL JOINs across multiple tables, such as linking master IDs with localized Japanese names from I18n tables.
- Operational Review: Analyze specific game operation settings (Opr tables) and master configurations (Mst tables) to review implementation details of new features or events.
| name | masterdata-releasekey-reporter |
|---|---|
| description | GLOWマスタデータのリリースキー別抽出とレポート生成。テーブル別CSV・統計JSON・DuckDBクエリで柔軟な分析が可能。「リリースキー」「release key」「マスタデータ抽出」「データ投入」「リリース内容」などのキーワードで使用します。 |
Masterdata Release Key Reporter
概要
GLOWプロジェクトのマスタデータから特定のリリースキーに関連するデータを抽出し、包括的なレポートを生成するスキルです。93テーブル以上のマスタデータから該当データを自動抽出し、テーブル別CSV・統計JSON・DuckDBクエリによる柔軟な分析が可能です。
使用タイミング
- 特定リリースで投入されたデータの全容を確認したい
- リリース前後の影響範囲を調査したい
- データ投入内容をドキュメント化したい
- 運営施策の実装内容をレビューしたい
- テーブル間の関連データをJOINして分析したい
出力構造
リリースキーごとに以下のディレクトリ構造で出力します:
マスタデータ/リリース/{RELEASE_KEY}/
├── stats/
│ ├── summary.json # 全体統計(テーブル数、行数、カテゴリ集計)
│ └── tables.json # テーブル別詳細統計
├── tables/
│ └── {TableName}.csv # テーブル別CSVファイル(ヘッダー付き)
└── release_{KEY}_report.md # Markdownレポート
stats/summary.json の例
{
"release_key": "202512020",
"extraction_date": "2026-01-10T00:35:00Z",
"total_tables": 93,
"total_rows": 2901,
"categories": {
"Mst": { "tables": 75, "rows": 2500 },
"Opr": { "tables": 10, "rows": 300 },
"I18n": { "tables": 8, "rows": 101 }
},
"largest_tables": [
{ "name": "MstAutoPlayerSequence", "rows": 354 },
{ "name": "OprGachaPrize", "rows": 247 }
]
}
stats/tables.json の例
{
"MstAdventBattle": {
"rows": 1,
"columns": 22,
"category": "Mst",
"file_size_kb": 1
},
"MstAdventBattleClearReward": {
"rows": 5,
"columns": 10,
"category": "Mst",
"file_size_kb": 1
}
}
ワークフロー
Phase 1: データ抽出
スクリプトを実行してテーブル別CSV、統計JSONを一括生成します:
.claude/skills/masterdata-releasekey-reporter/scripts/extract_release_data.sh <RELEASE_KEY>
例:
.claude/skills/masterdata-releasekey-reporter/scripts/extract_release_data.sh 202512020
処理内容:
projects/glow-masterdata/*.csvから該当リリースキーを含むデータを検索- テーブル別CSVファイルを
tables/ディレクトリに生成 - 統計JSONを
stats/ディレクトリに生成
Phase 2: 統計確認
stats/summary.json を読み込んで全体像を把握します:
cat マスタデータ/リリース/202512020/stats/summary.json | jq .
確認すべき情報:
- 総テーブル数・総行数
- カテゴリ別集計(Mst/Opr/I18n)
- 最大行数のテーブルTOP10
Phase 3: 詳細分析
方法1: 個別テーブルCSVの読み込み
各テーブルCSVは平均4KB程度で、Readツールの256KB制限内に収まります:
# Readツールで直接読み込み
/Users/.../マスタデータ/リリース/202512020/tables/MstEvent.csv
方法2: DuckDBクエリ
柔軟なSQL分析が可能です:
基本的なクエリ:
# query_release.sh経由(推奨)
.claude/skills/masterdata-releasekey-reporter/scripts/query_release.sh 202512020 table MstEvent
# DuckDB直接起動
duckdb -init .claude/skills/masterdata-releasekey-reporter/.duckdbrc
JOIN分析:
-- イベントと多言語名称を結合
SELECT
e.id,
e.start_at,
e.end_at,
i.name
FROM read_csv('マスタデータ/リリース/202512020/tables/MstEvent.csv',
AUTO_DETECT=TRUE, nullstr='__NULL__') e
LEFT JOIN read_csv('マスタデータ/リリース/202512020/tables/MstEventI18n.csv',
AUTO_DETECT=TRUE, nullstr='__NULL__') i
ON e.id = i.mst_event_id
WHERE i.language = 'ja';
集計分析:
-- リソースタイプ別報酬集計
SELECT
resource_type,
COUNT(*) as count,
SUM(resource_amount) as total
FROM read_csv('マスタデータ/リリース/202512020/tables/MstAdventBattleReward.csv',
AUTO_DETECT=TRUE, nullstr='__NULL__')
GROUP BY resource_type
ORDER BY count DESC;
詳細なクエリ例は references/query-examples.md を参照してください。
Phase 4: レポート生成
統計JSONと分析結果をもとに、Markdownレポートを作成します。
レポート保存先:
マスタデータ/リリース/{リリースキー}/release_{RELEASE_KEY}_report.md
レポートに含める内容:
- 概要セクション: リリースキー、テーブル数、総行数、抽出日時
- データ投入サマリー: このリリースで何が追加されたか
- 主要な機能追加: 大きな機能単位でまとめる
- 機能別データ詳細: カテゴリごとに整理
- 多言語対応: I18nテーブルの一覧
- まとめ: リリースの特徴や規模感
I18n日本語名の活用(重要):
レポート作成時は、IDだけでなくI18nテーブルから日本語名を取得して併記することで、内容を分かりやすくします。
日本語名の取得方法:
- 該当するI18nテーブルが存在するか確認(例:
MstEvent→MstEventI18n) - DuckDBでJOINクエリを実行して日本語名を取得(
language = 'ja'でフィルタ) - レポートにID + 日本語名を併記
併記フォーマット例:
- event_osh_00001(【推しの子】 いいジャン祭)
- chara_osh_00001(B小町不動のセンター アイ)
よく使うI18nテーブルとカラム:
MstUnitI18n:mst_unit_id→name(キャラクター名)MstEventI18n:mst_event_id→name(イベント名)MstStageI18n:mst_stage_id→name(ステージ名)MstQuestI18n:mst_quest_id→name(クエスト名)MstItemI18n:mst_item_id→name(アイテム名)MstEmblemI18n:mst_emblem_id→name(エンブレム名)MstAdventBattleI18n:mst_advent_battle_id→name(降臨バトル名)OprGachaI18n:opr_gacha_id→name(ガチャ名)MstMissionEventI18n:mst_mission_event_id→description(ミッション説明)MstAttackI18n:mst_attack_id→description(攻撃説明)
JOINクエリ例:
# イベント + 日本語名
.claude/skills/masterdata-releasekey-reporter/scripts/query_release.sh {KEY} sql \
"SELECT e.id, i.name FROM read_csv('マスタデータ/リリース/{KEY}/tables/MstEvent.csv', AUTO_DETECT=TRUE) e \
LEFT JOIN read_csv('マスタデータ/リリース/{KEY}/tables/MstEventI18n.csv', AUTO_DETECT=TRUE) i \
ON e.id = i.mst_event_id AND i.language = 'ja'"
詳細なクエリパターンは references/query-examples.md を参照してください。
レポートのトーン:
- 簡潔かつ分かりやすく
- 具体的な数値を含める
- IDには必ず日本語名を併記する(I18nテーブルが存在する場合)
- 投入されたデータの目的や内容を推測して記載
- 技術者と非技術者の両方が理解できる言葉で
Phase 5: 結果の提示
ユーザーに以下を報告します:
- 抽出されたテーブル数と総行数
- レポートの要約(主要な機能追加や特徴)
- 生成されたファイルのパス
DuckDBクエリツール
query_release.sh
便利なクエリコマンドを提供します:
# 特定テーブルの全データ取得
./scripts/query_release.sh 202512020 table MstEvent
# カテゴリ別テーブル一覧
./scripts/query_release.sh 202512020 category Mst
# パターン検索(IDやasset_keyで)
./scripts/query_release.sh 202512020 search quest_raid
# 統計情報の表示
./scripts/query_release.sh 202512020 stats
# 任意のSQLクエリ
./scripts/query_release.sh 202512020 sql "SELECT COUNT(*) FROM read_csv(...)"
DuckDB直接起動
duckdb -init .claude/skills/masterdata-releasekey-reporter/.duckdbrc
初期化ファイルで以下が設定されます:
- CSV出力モード
- ヘッダー表示ON
- 使用方法のヘルプメッセージ
エラーハンドリング
リリースキーが見つからない場合
エラー: リリースキー {RELEASE_KEY} を含むデータが見つかりませんでした
対処方法:
- リリースキーの桁数や形式が正しいか確認
- マスタデータが最新の状態か確認
- 類似のリリースキーを検索して提案
マスタデータディレクトリが見つからない場合
エラー: マスタデータディレクトリが見つかりません: projects/glow-masterdata
対処方法:
- glow-brainリポジトリのルートディレクトリで実行しているか確認
projects/glow-masterdataディレクトリが存在するか確認
jqコマンドが見つからない場合
エラー: jqコマンドが見つかりません。インストールしてください。
対処方法:
# macOS
brew install jq
# Linux
sudo apt-get install jq
DuckDBが見つからない場合
エラー: duckdbコマンドが見つかりません。
対処方法:
# macOS
brew install duckdb
# Linux
https://duckdb.org/docs/installation/
スクリプト詳細
extract_release_data.sh
入力:
- 第1引数: リリースキー(必須)
処理:
- マスタデータディレクトリの存在確認
- jqコマンドの存在確認
- 全CSVファイルから該当リリースキーを含む行を抽出
- テーブル別CSVファイルを生成
- 統計JSON(summary.json / tables.json)を生成
出力:
マスタデータ/リリース/{リリースキー}/tables/{テーブル名}.csvマスタデータ/リリース/{リリースキー}/stats/summary.jsonマスタデータ/リリース/{リリースキー}/stats/tables.json
query_release.sh
入力:
- 第1引数: リリースキー(必須)
- 第2引数: コマンド(table/category/search/sql/stats)
- 第3引数以降: コマンド固有のパラメータ
処理:
- DuckDBを使用してテーブルCSVをクエリ
- コマンドに応じた出力を生成
使用例
例1: 基本的な使用
ユーザー:
リリースキー202512020のデータを抽出して
応答フロー:
- スクリプトを実行してテーブル別CSV・統計JSONを生成
.claude/skills/masterdata-releasekey-reporter/scripts/extract_release_data.sh 202512020
stats/summary.jsonを読み込んで全体像を把握- 必要なテーブルCSVを選択的に読み込んで分析
- レポートを作成して保存
- レポートの要約をユーザーに提示
例2: DuckDBでJOIN分析
ユーザー:
リリースキー202512020の降臨バトルと報酬を紐付けて分析したい
応答フロー:
- DuckDBで複数テーブルをJOINするクエリを実行
SELECT
ab.id as battle_id,
r.resource_type,
SUM(r.resource_amount) as total
FROM read_csv('マスタデータ/リリース/202512020/tables/MstAdventBattle.csv', ...) ab
JOIN ...
GROUP BY ab.id, r.resource_type;
- クエリ結果を解釈してユーザーに提示
例3: 統計情報の確認
ユーザー:
リリースキー202512020の統計を教えて
応答フロー:
stats/summary.jsonを読み込む- 主要な統計情報(テーブル数、行数、カテゴリ別内訳)を提示
- 最大行数のテーブルTOP10を表示
注意事項
- projects/glow-masterdata は参照専用です。このスキルは読み取り専用で動作します。
- 大量のデータを抽出する場合、処理に時間がかかることがあります。
- 各テーブルCSVファイルは平均4KB程度で、Readツールの256KB制限内に収まります。
- DuckDBを使用することで、大規模なデータでもメモリ効率よく分析できます。
- レポートはClaudeが統計JSONとテーブルCSVを分析して作成するため、データの内容を理解した質の高いレポートが生成されます。
テーブル命名規則
GLOWプロジェクトのマスタデータテーブル:
| プレフィックス | 意味 | 例 |
|---|---|---|
| Mst | 固定マスタデータ | MstUnit, MstStage, MstItem |
| Opr | 運営施策・期間限定データ | OprGacha, OprCampaign, OprProduct |
| I18n | 多言語対応テーブル | MstUnitI18n, MstEventI18n |
レポートではこれらのカテゴリ別に集計されます。
参考資料
- DuckDBクエリ例集
- masterdata-explorer スキル - DBスキーマ調査用