| name | suggest-songs |
| description | medley-generator の既存曲プールの傾向をもとに、ボカロ / J-POP / J-ROCK から メドレー向きの曲をサジェストするスキル。「曲をサジェストして」「おすすめの曲を教えて」 「〇〇(アーティスト名)でいくつか提案して」「夏っぽい曲ない?」「他にも曲追加したい」 など、追加する曲の候補を求められたら必ずこのスキルを使う。 既存曲との重複を必ず避け、選ばれた曲は manage-songs スキルで追加する。 |
suggest-songs
src/data/songs.json の傾向を読んで、次に足すと嬉しい曲を提案するスキル。
推薦して終わりではなく、選ばれた曲を manage-songs で実際に追加するところまでが仕事。
進め方
1. プールの傾向を掴む(必ず最初に)
node .claude/skills/suggest-songs/scripts/profile.mjs
総数 / mastery内訳 / 複数曲あるアーティスト / タグ分布 / 1曲だけのアーティスト が出る。
複数曲あるアーティストほど好みが強く出ているので、その周辺(同アーティストの別曲、
同系統の作家)は当たりやすい。
重複チェック用の全曲一覧はこれ:
node .claude/skills/suggest-songs/scripts/profile.mjs --titles
2. 候補を選ぶ
ユーザーの指定(アーティスト名・ジャンル・「夏っぽい」等のテーマ・曲数)に沿って選ぶ。
指定がなければ ボカロ / J-POP / J-ROCK からバランスよく。
選ぶときの基準:
- 既存と重複しない(1 の一覧と必ず突き合わせる。表記ゆれも見る)
- プールの傾向に沿う: このプールはボカロが主軸で、アニソン・J-POP が続く。
弾き語り/メドレーで映える有名曲が中心
- 偏りすぎない: 同一アーティストばかりにせず、時代(黎明期〜近年)や
作風を散らす。ユーザーが特定アーティストを指定した場合はその限りではない
- 既に多いアーティスト(Deco*27・ヨルシカ等)は「まだ入っていない代表曲」を狙う
3. 作者名を DB で裏取りする(引けるなら)
「この曲はこのPの曲」という紐付けは記憶で書くと外す。 実際にロウワーを
ツミキ(正しくは ぬゆり)、エゴロックを ツミキ(正しくは すりぃ)として挙げて、
2回とも登録時に DB で気づいた。曲そのものは合っていても、提案の時点で
アーティスト名が違うとユーザーが別の曲だと思って選んでしまう。
ship-song-prs のスクリプトで、候補をまとめて引ける:
python3 -c "
import sys; sys.path.insert(0,'.claude/skills/ship-song-prs/scripts')
import jwid, time
jwid.start()
for t in ['ロウワー', 'エゴロック', 'ダーリンダンス']:
for r in jwid.rows(jwid.search(t, match=jwid.EXACT))[:3]:
print(t, '->', r[2], '| 著作者:', r[3], '| アーティスト:', r[4])
time.sleep(1)
"
同名異曲が並ぶこともある(エゴロックは ショーコ / SPEENA と
すりぃ / いヴどっと が出る)。思っていた作者名がどれにも出てこなければ疑う
くらいの使い方でよく、どれが正解かをここで決め切る必要はない。
深追いはしない。 DB に届かない・同名異曲が多くて絞れない・時間がかかりすぎる
なら、そこで止めて「未確認」と添えて提示してよい。ここは提案の精度を上げるための
一手であって、確定は追加時(手順5)に作品コードで取るので、完全性は要らない。
疑わしい候補だけ引けば十分。特にボカロPと曲名の組み合わせは外しやすいので
優先して確かめる。
4. 提示する
グループ分け(アーティスト別 / 時代別 / テーマ別など、その時に自然な軸)して、
曲名とアーティスト、必要なら一言(代表曲・タイアップ等)を添える。
mastery は勝手に決めず、ユーザーに選んでもらう(弾ける / 練習中 / 覚えたい)。
裏が取れなかった候補は、そうと分かるように書く(「作者名は未確認」等)。
5. 選ばれた曲を追加する
ユーザーが曲と mastery を指定したら manage-songs スキルで追加する。
その際:
- アーティスト名・正式タイトルが少しでも怪しければ Web 検索で確認する。
同名異曲や表記ゆれ(「ずぅっと」→「ずうっといっしょ!」、「超絶可愛い」→
「#超絶かわいい」等)が頻出する。ユーザーの入力表記をそのまま鵜呑みにしない
- 確認した結果ユーザーの認識と違ったら、正式表記で登録した上でその旨を伝える
- タグは既存の流儀に合わせる(
ボカロ / アニソン + 作品名 など)
bpm / key は埋めない(null のまま)
作品コードと作詞者・作曲者もその場で埋める。 手順は ship-song-prs にある
(配信を管理している団体の選び方、カタカナ↔英字の引き分け、artist と著作者の
違いなど)。手順3で裏が取れていなかった作者名は、ここで作品コードによる
完全一致検索で確定する。
サジェストの引き出し(参考)
プールの傾向から見て当たりやすい方向:
- 同アーティストの未収録曲 — profile の上位アーティストの代表曲で漏れているもの
- 同系統のボカロP — 例: wowaka / ハチ / じん が好きなら近い年代・作風の作家
- アニメタイアップ — アニソンタグが厚いので、近年の主題歌は刺さりやすい
- テーマ指定 — 「夏」タグのように季節・場面で括る
- 世代を遡る/下る — 黎明期の名曲(千本桜・メルト世代)や最新ヒットで幅を出す
迷ったら、ユーザーがどのアーティストを何曲持っているかを見せて
「この辺を深掘りする?別ジャンルを開拓する?」と聞くのが早い。