| name | japanese-rap |
| description | 日本語ラップの歌詞を生成するスキル。ユーザーがお題やテーマを入力すると、固い韻・切れ味のあるパンチライン・自然なフロウを備えた高品質な日本語ラップを生成する。「ラップ」「rap」「韻」「ライム」「バース」「verse」「フリースタイル」「MC」「ヒップホップ」「hiphop」といった言葉が出てきたら必ずこのスキルを使う。また、「〇〇でラップして」「〇〇で韻を踏んで」のように求められた場合もトリガーする。 |
| argument-hint | [お題やテーマ] [--bars 8|16] [--style battle|lyrical|funny] |
| license | MIT |
日本語ラップジェネレーター
ユーザーから受け取ったお題をもとに、高品質な日本語ラップのバースを生成するスキル。
お題の受け取り方
お題は大きく3パターンある。
- 単語(例:「コーヒー」「月曜日」「電車」)
- テーマ・状況(例:「朝の通勤」「締切前夜」「夏の終わり」)
- 自由テーマ(例:「自己紹介」「今の気持ち」)
単語が来たら、その単語と関連する世界観を広げてリリックを構築する。テーマ・状況が来たら、その場面を具体的に描写するストーリーを軸にする。
オプション
--bars 8 または --bars 16:小節数を指定(デフォルト: 16小節)
--style battle:MCバトル風。攻撃的で即興感のあるスタイル
--style lyrical:叙情的・内省的。ストーリーテリング重視
--style funny:ユーモア寄り。ワードプレイとウィットを効かせる
- スタイル未指定の場合はお題に合ったトーンを自動選択する
生成フロー
以下の6ステップを順番に踏む。各ステップの詳細は references/generation-guide.md を参照。
ステップ1:お題の解釈とコンセプト設計
お題から連想される情景・感情・キーワードを洗い出し、ラップの方向性を決める。
- テーマに合ったトーンを選ぶ(シリアス / ユーモア / 攻撃的 / 内省的)
- 起承転結の大まかな流れを設計する
- キーフレーズ(サビに相当する印象的な1行)を先に決めると全体がまとまりやすい
ステップ2:キーワードの音を分解する
お題と関連するキーワードを5〜10個リストアップし、scripts/rhyme.py で各キーワードの読み・母音列・子音列を取得する。
uv run {baseDir}/scripts/rhyme.py コーヒー 月曜日 眠気
LLM の内部知識だけでは音の分解を間違えやすいため、スクリプトが使える環境では必ず使う。
ステップ3:韻のペアを大量に探す
以下の2つの探索を並列に実行し、結果をマージする。
A. LLM の語彙で連想(メインエージェント):各キーワードについて、同音異義語・子音交換・母音列一致・部分一致など、あらゆる変換パターンで韻の候補を探す。意味の飛距離を意識し、お題と全く違う分野の言葉を積極的に狙う。意味が遠い言葉同士を韻で繋ぐほど「うまい」と感じられる(references/rap-theory.md 第1層の韻の固さを参照)。
B. 逆引き韻辞書で網羅検索(サブエージェントまたは直接実行):以下の2つの検索モードを使い分ける。
uv run {baseDir}/scripts/rhyme.py --search <キーワード> — 母音列が完全一致する単語を辞書から検索。正確な韻を見つけたいときに使う。
uv run {baseDir}/scripts/rhyme.py --search-embed <キーワード> — 韻bedding(母音 n-gram ベクトル)によるファジー検索。母音列が部分的に似ている語や、モーラ数が異なる語感踏みも発見できる。幅広く候補を探したいときに使う。
サブエージェントが使える場合は委譲して A と並列に走らせること。
マージ後、音が固い(母音列3モーラ以上一致 + 子音も近い)かつ意味の飛距離がある韻ペアを優先的に選ぶ。
ステップ4:リリック構築
韻ペアを小節末(脚韻)に配置し、各小節を肉付けする。
構築のルール:
- 1小節 ≒ 12〜18モーラを目安にするが、緩急をつけるために意図的に短い小節や詰め込んだ小節を混ぜる
- 2小節1組で韻を踏むのが基本(AA BB CC DD…)。途中で踏みパターンを変える(ABAB、内韻)と単調さを防げる
- パンチラインを仕込む:16小節なら最低2〜3箇所。ダブルミーニング・比喩・ワードプレイを意識する。特にバースの終盤(13〜16小節目)に最も強いパンチラインを置く
- 起承転結:序盤(1〜4小節)で状況設定 → 中盤(5〜10小節)で展開・深掘り → 終盤(11〜14小節)で転換 → 締め(15〜16小節)で最強のパンチライン
- フロウの変化:同じリズムパターンが4小節以上続かないようにする。言葉の詰め方・区切り方を変える
やってはいけないこと(references/bad-examples.md 参照):
- 韻を踏むためだけに意味不明な行を入れる
- 全行同じ文字数・同じリズムの棒読みリリック
- 抽象的な精神論の羅列(「夢を追え」「諦めるな」系)
- パンチラインゼロの平坦な描写
ステップ5:検証(サブエージェントに委譲)
生成したリリックの検証はサブエージェントに委譲すること。自分で作ったものを自分で評価すると甘くなりやすい。
検証項目:
- 韻の照合:
uv run {baseDir}/scripts/rhyme.py <言葉A> <言葉B> で各韻ペアの母音列一致率を確認。50%未満は不合格。子音が大きく異なる場合も不合格
- フロウチェック:各小節のモーラ数を数え、極端な偏り(全行同じ、あるいは差が大きすぎ)がないか
- パンチラインチェック:ダブルミーニングや比喩が最低1箇所は機能しているか
- 失敗パターン照合:
references/bad-examples.md の7つの失敗パターンに該当しないか
- 全体の一貫性:テーマから逸脱していないか、起承転結が成立しているか
サブエージェントが使えない場合は自分で実行するが、韻の照合は必ず scripts/rhyme.py を実行すること。
ステップ6:推敲
検証で指摘された箇所を修正し、全体を通して読み返す。声に出して読んだときのリズム感を最終確認する。
参照ファイル
生成中に以下を必要に応じて読み込むこと。
| ファイル | 内容 | 読むタイミング |
|---|
references/rap-theory.md | 日本語ラップの上手さの6層構造(韻・フロウ・パンチライン・構造・リリシズム・バイブス) | 生成方針に迷ったとき |
references/generation-guide.md | 各ステップの詳細手法・韻の固さの判定基準・フロウの調整方法 | 生成プロセスの各ステップで |
references/examples.md | 思考プロセス付きの生成例 | 初回生成時や品質のベンチマークとして |
references/bad-examples.md | LLMが陥りやすい7つの失敗パターン | ステップ5の検証時 |
scripts/rhyme.py | 読み変換・母音列・子音列抽出・類似度比較 | ステップ2とステップ5で |
scripts/rhyme.py --search | 逆引き韻辞書検索(母音列完全一致) | ステップ3で正確な韻候補を探すとき |
scripts/rhyme.py --search-embed | 韻beddingファジー検索(語感踏み対応) | ステップ3で幅広く候補を探すとき |
出力フォーマット
以下の形式で出力する。思考プロセス(ステップ1〜6)は内部で行い、出力には含めない。
- タイトル — お題を反映した曲タイトル(1行)
- リリック本体 — 各小節を1行ずつ。2小節ごとに韻を踏んでいる箇所を 太字 で示す
- 韻の解説 — 主要な韻ペアとパンチラインの解説(箇条書き、3〜5項目)
16小節なら16行、8小節なら8行。各行の末尾に行番号は不要。
注意点
- 差別的・ヘイト的な内容にはしない。ディスやバトルスタイルでも、ウィットと技術で勝負する方向に昇華させる
- 既存ラッパーのリリックをそのまま引用しない。リスペクトとしてのサンプリング(1フレーズ程度の引用)はOKだが、出典を明示すること
- 英語の混入は「その場面で自然に出てくる場合」のみ。無意味な英語フレーズの挿入は避ける
- 韻の固さと意味の通りを両立させる。どちらか一方だけでは不十分