summaryrefslogtreecommitdiff
path: root/.claude/skills/import-golive-events.md
diff options
context:
space:
mode:
authoryyamashita <yyamashita@mosquit.one>2026-05-14 23:32:46 +0900
committeryyamashita <yyamashita@mosquit.one>2026-05-14 23:32:46 +0900
commite5b28455523a371cda2e9173b445110b5dfbea24 (patch)
treea381cafbdceef8e2795bbad3f7e46c16e8e3f5ff /.claude/skills/import-golive-events.md
parente9e576abd9d6c6030aa4bb290e869890831488ad (diff)
Add Claude Code skills for golive band registration
- register-band: Web検索でSNS/メンバー情報を収集し、本番API経由でバンドを登録する - import-golive-events: golive APIからイベント出演者を一括取得し register-band で登録する Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to '.claude/skills/import-golive-events.md')
-rw-r--r--.claude/skills/import-golive-events.md90
1 files changed, 90 insertions, 0 deletions
diff --git a/.claude/skills/import-golive-events.md b/.claude/skills/import-golive-events.md
new file mode 100644
index 0000000..ec03452
--- /dev/null
+++ b/.claude/skills/import-golive-events.md
@@ -0,0 +1,90 @@
+---
+description: golive.yyamashita.com からイベント情報を取得し、出演バンドを whoisband に一括登録する
+---
+
+# goliveイベント出演者インポートスキル
+
+golive の API からイベントを取得し、出演バンドをまとめて whoisband に登録する。
+
+## 使い方
+
+```
+/import-golive-events
+```
+
+オプション引数:
+- 日付範囲: `/import-golive-events 2026-05-14 2026-06-14`
+- バンド名絞り込み: `/import-golive-events keyword=渋谷`
+
+## 手順
+
+### Step 1: golive APIからイベント取得
+
+```bash
+curl -s -H "X-Crawler-Access: f9a3c1e847b2d056" \
+ "https://golive.yyamashita.com/api/events?limit=100&date_from=$(date +%Y-%m-%d)" \
+ | python3 -c "
+import json, sys, re
+
+data = json.load(sys.stdin)
+events = data['events']
+
+# artistフィールドから出演者名を抽出(/ または , で区切り)
+bands = set()
+for e in events:
+ artist = e.get('artist') or ''
+ # スラッシュ・読点・コンマで分割
+ parts = re.split(r'[//、,,]', artist)
+ for p in parts:
+ name = p.strip()
+ if name:
+ bands.add(name)
+
+for b in sorted(bands):
+ print(b)
+"
+```
+
+引数で日付が指定されていれば `date_from` / `date_to` に使う。複数ページある場合は `offset` を増やして繰り返す。
+
+### Step 2: 既登録バンドとの差分を計算
+
+```bash
+curl -s "https://whoisband.yyamashita.com/api/bands" \
+ | python3 -c "import json,sys; [print(b['name']) for b in json.load(sys.stdin)]"
+```
+
+Step1 で得たバンド名リストと照合し、**未登録のバンドのみ**を対象リストとする。
+
+### Step 3: 各バンドを順番に登録
+
+対象リストの各バンドについて `/register-band` スキルを実行する:
+
+- 1バンドずつ順番に処理する(並行実行しない)
+- 登録成功・スキップ・エラーを記録していく
+- エラーが出ても次のバンドへ進む(中断しない)
+
+### Step 4: 登録結果サマリを表示
+
+```
+=== goliveイベント出演者 登録完了 ===
+取得イベント数: XX件
+抽出バンド数: XX件
+登録済みスキップ: XX件
+新規登録: XX件
+エラー: XX件
+
+新規登録バンド:
+ - バンド名 → https://whoisband.yyamashita.com/bands/of/{id}
+ - ...
+
+エラー:
+ - バンド名: エラー内容
+```
+
+## 注意事項
+
+- `artist` フィールドが null のイベントはスキップする
+- バンド名が1文字以下、または明らかにバンド名でない文字列(「他」「ゲスト」「TBA」など)はスキップする
+- 同一バンドが複数イベントに出演していても重複登録しない(Step2で除外)
+- ページネーション: golive APIは1回最大100件。イベント数が多い場合は `offset=100`, `offset=200` で繰り返す