summaryrefslogtreecommitdiff
path: root/.claude/skills/register-band.md
blob: 970e57c7a658f361d851bc50ee84e04d152d247e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
---
description: バンド名を受け取り、Web検索で情報を収集して whoisband.yyamashita.com の本番APIに登録する
---

# バンド登録スキル

本番API(`https://whoisband.yyamashita.com`)に直接 POST してバンドとメンバーを登録する。

## 使い方

```
/register-band BAND_NAME
```

例: `/register-band 東京事変`

## 手順

### Step 1: 既存バンドの重複確認

```bash
curl -s "https://whoisband.yyamashita.com/api/bands" | python3 -c "
import json,sys
data=json.load(sys.stdin)
name='$ARGUMENTS'.strip()
matches=[b for b in data if b['name']==name or b['slug']==name.lower()]
print('FOUND:' + json.dumps(matches) if matches else 'NOT_FOUND')
"
```

既に登録済みであればその旨をユーザーに伝えてスキップする。

### Step 2: Web検索で情報収集

引数のバンド名を使い、WebSearch / WebFetch で以下を収集する:

1. `{バンド名} バンド 公式` で日本語検索
2. `{バンド名} band official site` で英語検索
3. Wikipedia ページが見つかれば WebFetch で詳細取得(メンバー・概要)
4. 公式サイトが見つかれば WebFetch で SNS リンクを収集
5. X アカウントは `{バンド名} band x.com OR twitter.com` で検索

収集対象:
- **活動拠点** (area): 出身地・拠点都市(例: "東京", "大阪")
- **ステータス** (status): 活動中→`active` / 活動休止→`hiatus` / 解散→`disbanded`
- **説明** (description): 200字以内の概要文(日本語)
- **リンク** (links): URL を下記 label で分類
  - `official` 公式サイト / `x` X(Twitter) / `instagram` / `youtube` / `spotify`
  - `apple_music` / `wikipedia` / `soundcloud` / `bandcamp` / `tiktok` / `linktree` / `other`
- **メンバー** (members): 名前と担当パート一覧

### Step 3: 既存アーティストの確認

```bash
curl -s "https://whoisband.yyamashita.com/api/artists"
```

メンバー名と照合して既存/新規を振り分ける。

### Step 4: 新規アーティストを登録(メンバーがいる場合)

メンバーごとに順番に実行してUUIDを取得する:

```bash
curl -s -X POST "https://whoisband.yyamashita.com/api/artists" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "メンバー名",
    "links": [],
    "message": "golive自動登録"
  }'
```

レスポンスの `id` フィールド(UUID)を控えておく。

### Step 5: バンドを登録

取得したメンバーの UUID を使って band を POST する:

```bash
curl -s -X POST "https://whoisband.yyamashita.com/api/bands" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "バンド名",
    "area": "活動拠点",
    "status": "active",
    "description": "説明文",
    "links": [
      { "label": "official", "url": "https://..." },
      { "label": "x", "url": "https://x.com/..." }
    ],
    "members": [
      { "artist_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "role": "Vocal" },
      { "artist_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "role": "Guitar" }
    ],
    "message": "golive自動登録"
  }'
```

`role` は複数パートを `"Vocal, Guitar"` のようにカンマ区切りで書ける。
使えるロール: Vocal, Guitar, Bass, Drums, Keyboard, DJ, Strings, Brass, Percussion, Programming, Manipulator, Turntable, Other

### Step 6: 結果確認

レスポンスの `id` からURLを生成してユーザーに提示:

```
登録完了: バンド名
→ https://whoisband.yyamashita.com/bands/of/{id}
```

slug 重複エラー(409)が出た場合は `slug` フィールドを追加して別の値を指定して再実行する。

## 注意事項

- 情報が見つからないフィールドは省略(`area`, `description`, `links` はすべてオプション)
- メンバー情報が一切取れない場合は `members` を空配列にしてバンドのみ登録する
- 解散済みバンドは `status: "disbanded"` を設定する