buddy-sings
ユーザーが自分のClaude Codeペット(/buddy)に歌を歌わせたいときに使用します。バディ・ペット・コンパニオンと歌・音楽を組み合わせたあらゆるリクエストに反応し、多言語での呼びかけにも対応します。
description の原文を見る
> Use when user wants their Claude Code pet (/buddy) to sing a song. Triggers on any request that combines the concept of their Claude Code buddy, pet, or companion with singing or music. Supports multilingual triggers — match equivalent phrases in any language.
SKILL.md 本文
Buddy Sings — Claude Code ペットに歌わせよう
Claude Code ペットをシンガーに変身させます。各ペットはその名前と性格に基づいてユニークなボーカルアイデンティティを獲得します — 同じペットは常に同じ音で聞こえます。
前提条件
-
mmx CLI (音楽生成に必須):
インストール:
npm install -g mmx-cli認証 (初回のみ):
mmx auth login --api-key <your-minimax-api-key>API キーは MiniMax Platform から取得してください。
-
オーディオプレイヤー (再生用 — 以下のいずれかが必要):
mpv(推奨 — インタラクティブコントロール: space = 一時停止, q = 終了)ffplay(FFmpeg に付属)afplay(macOS 内蔵)
ワークフロー概要
ペット確認 → ボーカルアイデンティティ構築 → コンテキスト収集 → 音楽生成 → 再生とフィードバック
言語とインタラクション
ユーザーの最初のメッセージから言語を検出します。セッション全体を通じて同じ言語で応答してください。以下のすべての例は英語で記載されています — 他の言語で応答する際は自然に翻訳してください。
ユーザー向けテキスト位置化ルール:
- ペット情報、ボーカス説明、歌詞プレビュー、プロンプトプレビュー、再生情報、フィードバック プロンプトを含む、ユーザーに表示されるすべてのテキストは、ユーザーの言語に完全に翻訳する必要があります。
- モデルに送信される API プロンプトは、最高の生成品質のために常に英語で記述すべきです。ただし、ユーザーにプロンプトをプレビューする際は、生の英語プロンプトではなく、ユーザーの言語でローカライズされた説明を表示してください。英語プロンプトは内部実装の詳細です — ユーザーが見る必要はありません。
- 以下のテンプレートは参照用として英語で記載されています。実行時には、すべてのラベルとメッセージをユーザーの検出言語に翻訳してください。
ペットはデフォルトでユーザーの言語で歌います。ボーカス説明に自然に歌唱言語を組み込みます (例: 「日本語で歌う」または「中国語で歌う」) 。別の言語タグを追加するのではなく、ユーザーが歌詞に別の言語を明示的にリクエストした場合は、そのリクエストを尊重してください。
ステップ 1: ペットの確認
~/.claude.json を読み込んで companion フィールドを探します。
コンパニオンが見つからないか、フィールドが空の場合、ユーザーに以下を伝えます:
ペットをまだ持っていません! /buddy を入力してペットを採用してから、歌わせに戻ってください。
ここで停止し、ユーザーがペットを採用するのを待ちます。ペットなしで進まないでください。
コンパニオンが存在する場合、そのプロフィールを抽出します:
name— ペットの名前personality— ペットの性格説明
ペットをユーザーに提示します:
ペットが見つかりました!
名前: <name>
性格: <personality>
ステップ 2: ボーカルアイデンティティの構築
ペットの名前と性格テキストに基づいて、創造的にユニークなボーカルアイデンティティをデザインします。テンプレート検索はありません — 性格を自由に解釈してください。
性格をボイスに解釈する方法
性格テキストを読んで、ボーカル属性を工夫します:
- 音色: この性格はどんな音に聞こえますか? 例: 「寡黙」→ 低く、温かく、意図的; 「エネルギッシュ」→ 明るく、パンチのある; 「神秘的」→ 息のような、暗い; 「伝説的なデブ」→ 厚い、温かい、居心地のよい
- 歌唱スタイル: 曲をどのように表現しますか? 例: 「寡黙」→ 疎らで、ドラマティックな一時停止; 「遊び心がある」→ バウンシー、リズミカル; 「詩的」→ 流動的、レガート
- ムード: どんな感情的トーンが適していますか? 例: 「クール」→ リラックス、ゆったり; 「激烈」→ 激しい、力強い
英語でボーカルスタイルを説明し、歌唱言語を自然に組み込んだ prompt_fragment を構築します。例えば:
ボーカル: 中国語で歌う温かく低い女性の声、居心地のよい厚みのある音色で、
ドラマティックな一時停止のある疎らで最小限のデリバリー、各単語に重みを持たせる、
リラックスしたゆったりした雰囲気。
ボイスキャッシング
ボーカルアイデンティティはキャッシュされる必要があり、ペットは常に同じ音で聞こえます。
- キャッシュファイル:
~/.claude/skills/buddy-sings/voices/<name>.json - キャッシュフォーマット:
{ "name": "Moth", "personality": "寡黙な伝説的なデブ。", "prompt_fragment": "ボーカル: 中国語で歌う温かく低い女性の声...", "cached_at": "2026-04-07T19:52:15" }
初回: キャッシュが存在しない → 性格を解釈 → キャッシュファイルに保存します。
以降の呼び出し: キャッシュを読み込む → 保存された prompt_fragment を直接使用します。
再解釈しないでください — 一貫性が重要です。
キャッシュ無効化: ~/.claude.json の personality がキャッシュされたものと異なる場合、ペットが変わっています — 再生成して新しいキャッシュを保存します。
手動再生成: ユーザーが「ボイスを変更して」または「ボイスを再生成して」と言った場合: キャッシュファイルを削除して最初から再解釈します。
ボイスをユーザーに提示する
<name> のユニークなボイス:
音色: <音色の説明>
スタイル: <スタイルの説明>
ムード: <ムードの説明>
<name> が何について歌うかを決めましょう!
ステップ 3: インテント理解とコンテキスト収集
常にモードメニューを提示しないでください。 代わりに、ユーザーのリクエストを分析して必要なコンテキストを判断し、自動的に収集します。
自動コンテキスト検出
ユーザーのリクエストが個人的なコンテキストを暗に示している場合、聞かずに自動的に関連情報をスキャンします。トリガーは以下を含みます:
- 時間ベースのリファレンス: 「今日」、「今週」、「最近」、「昨日」 → その期間に起こったことについて現在の会話履歴とメモリファイルをスキャン
- 個人的なリファレンス: 「私の仕事」、「私の一日」、「私がしたこと」 → ユーザーのアクティビティについてメモリと会話をスキャン
- 関係性のリファレンス: 「私たちのストーリー」、「私たちが一緒にしたこと」 → ユーザーとペット/Claude 間の共有体験についてメモリをスキャン
コンテキスト収集 (自動、モード制御なし)
コンテキストが必要な場合、これらのソースをこの順序でスキャンします:
-
現在の会話コンテキスト: ユーザーがこの Claude Code セッションで何をしているか確認 — 編集したファイル、実行したコマンド、討論したトピック。 これは「今日」タイプのリクエストの最も豊富なソースです。
-
メモリファイル: 関連するメモリをスキャンします:
find ~/.claude/projects/*/memory/ -name "*.md" 2>/dev/null | head -20また、存在する場合
~/.claude/memory/も確認します。 見つかったファイルを読んで、ユーザーのリクエストに関連するテーマを抽出します。 -
Git 履歴 (リポジトリの場合): 仕事関連の曲については、最近のコミットをチェックします:
git log --oneline --since="today" 2>/dev/null | head -10
収集したコンテキストを使用して歌詞プロンプトを充実させます — 汎用的ではなく、実際に起こったことに特定で個人的な曲を作成します。
コンテキストが不要な場合
ユーザーのリクエストが明確なスタンドアロンシーン (例: 「雨の日の曲を歌って」、「子守唄を歌って」) の場合、コンテキスト収集をスキップして音楽生成に直接進みます。
コンテキストが曖昧な場合
ユーザーが何を望んでいるかを本当に判断できない場合にのみ、明確化を求めます。 モードメニューを提示しないでください — 具体的な質問をしてください:
<name> は何について歌うべきですか?
例えば:
- 「今日の仕事」 — あなたが何をしているかチェックします
- 「家に帰ってくるのを待つ私のペット」
- それともランダムなテーマを選びましょうか?
ランダムへのフォールバック
コンテキスト収集がスキャンしたのに (メモリファイルなし、会話履歴なし、git ログなし)、役に立つものが見つからない場合、ペットの性格に基づくランダムテーマ生成にフォールバックします:
- 静かな/控えめな性格 → 真夜中の子守唄、優しい夕焼け、静かな朝
- エネルギッシュな性格 → パーティージャム、冒険の歌、勝利行進曲
- 神秘的な性格 → 月夜のセレナーデ、秘密のささやき、夢の旅
選んだテーマをユーザーに伝えます。
ステップ 4: 音楽生成
ボーカルアイデンティティと選んだテーマを組み合わせます。
-
完全なプロンプトを構築: プロンプトは、両方が存在する必要がある 2 つの部分があります:
パート A — ボーカルアイデンティティ (最初に来る必須): 常にキャッシュされた
prompt_fragmentでプロンプトを開始してください。これが最も重要な部分です — それが誰が歌っているかを定義します。プロンプトの始めに配置して、API がそれを優先化するようにします。パート B — ジャンル/スタイル/ムードタグ: テーマにマッチしたタグを選択してください — デフォルトセットではなく。曲が何についてであるかに基づいてジャンルを意図的に変動させます。
プロンプトを活き活きとした英語の文として書きます — コンマで区切られたタグではありません。 このパターンに従ってください:
A [気分] [ジャンル] song, featuring [ボーカルの説明], about [ナラティブ/テーマ], [雰囲気], [主要楽器とプロダクション].ボーカルをジャンル (例: 「ジャズ装飾のあるセクシーなバリトン」) ではなく、キャラクターとして説明してください、 単なる性別ではなく。生成をアンカーするためのシーンやバイブを含めます。ジャンルマッチングガイドライン — テーマのエネルギーに適したジャンルを選択:
テーマエネルギー 提案ジャンル 回避 励まし / モチベーション / 応援 インディロック、シンセポップ、ファンク、ラップ インディフォーク、ヒーリング 日常生活 / 温かさ / コンパニオンシップ マンドポップ、シティポップ、ボサノバ 前回と同じ 誰かを恋しく思う / 待つ フォーク、R&B、ロファイ ロック、EDM ユーモア / こき下ろし / 不満 ファンク、ラップ、スカ、エレクトロポップ クラシック、バラード 深夜 / 静か アンビエント、ピアノピース、ロファイ、ネオクラシカル アップビート、EDM お祝い / 達成 EDM、フューチャーベース、ファンク、K-pop 遅いテンポ、メランコリー 仕事ルーチン シティポップ、シンセポップ、ロファイヒップホップ、インディロック 毎回同じジャンル 単調回避ルール: 同じジャンルの組み合わせを連続して 2 回使用しないでください。 プロンプトを構築する前に、前の生成で使用されたジャンル (このセッションの) を思い出し、 別のものを選びます。
プロンプト構造 — 活き活きとした英語の文として書きます、コンマで区切られたタグではありません:
<ボーカルprompt_fragment>. A <ジャンル> song with <気分> mood, featuring <楽器>, at a <テンポ> tempo, evoking <シーン>.多様な例:
# 仕事の日の励まし 深く温かい両性具有のボイスで居心地のよいデリバリー。朝の通勤の急速なテンポで パルスシンセサイザーと電子ドラムに駆動される、激しくアップリフティングなムードの エネルギッシュなシンセポップトラック。 # オーナーが家に帰ってくるのを待つ 深く温かい両性具有のボイスで居心地のよいデリバリー。電気ピアノとグルーピーベースを 備えた温かいシティポップの歌、ミッドテンポのペースで、誰かが家に帰ってくるのを 待つ晴れた午後の窓辺に設定された甘く優しい感情。 # 残業への不満 深く温かい両性具有のボイスで居心地のよいデリバリー。スラップベースとブラスを 備えたユーモラスで穏やかなバイブのプレイフルなファンクトラック、グルーピーな ミッドテンポで、薄暗いオフィスでの深夜労働の不条理を捉えます。 # 深夜のコンパニオンシップ 深く温かい両性具有のボイスで居心地のよいデリバリー。サンプリングされたピアノと ソフト電子ドラムを備えた穏やかなロファイヒップホップピース、ゆっくりなテンポの ヒーリングで夢のような雰囲気、温かいランプライト付きの静かな深夜のデスクを連想させます。 -
歌詞を生成:
--lyrics-optimizerを使用してオート生成するか、視点をコントロール必要な場合は自分で歌詞を書きます。重要 — 視点と性格駆動の歌詞:
ペットが歌手なので、歌詞はペットの一人称視点 (「I」= ペット、「you」= オーナー/ユーザー) から書かれる必要があります。ペットはオーナーに歌っています。例えば:
- 「オーナーが帰ってくるのを待ってドアのそばに座っている」 (ペットの視点)
- 「今起きてください、私の親愛なる人間」 (ペットがオーナーに歌う)
- NOT「眠い目をこするとき」 (オーナーの視点 — 間違い)
- NOT「その時あなたが起きた、私の小さな Moth」 (ペットについて話すオーナー — 間違い)
ペットの性格は歌詞のトーンと単語選択を形作る必要があります:
- 「寡黙」 → 短い、インパクトのある行、最小限のフィラー
- 「遊び心がある」 → 韻を踏む、バウンシーなフレージング、楽しいワードプレイ
- 「詩的」 → メタファーが豊富、流動的なイメージリー
- 「激烈」 → 直接的、力強い宣言
ペットの名前は歌詞に表示されることがあります (例: コーラスフック) が、 ナラティブボイスはペットが常に話す/歌う。
視点が重要なとき: 歌詞自分で書いて
--lyrics経由で渡します。 視点が重要でないとき: 便宜上--lyrics-optimizerを使用します。 -
プレビュー (完全なコンテンツを表示する必須): 生成する前に、ユーザーに 完全な歌詞と完全なプロンプトを表示します — 短縮なし、
...なし、要約なし。 これはエンターテイメントの一部です — ユーザーは聞く前に歌詞を読んで楽しみたいです。API プロンプトは常に英語で構築されます (最高の生成品質のため)。 非英語言語で応答する場合、可読性のためにユーザーの言語でローカライズされた説明を表示してください。英語プロンプトは内部実装の詳細です — ユーザーに表示しないでください。すべてのラベル (Singer, Theme, Description, Confirm など) を ユーザーの言語に翻訳してください。
テンプレート (英語参照 — 実行時にすべてのラベルをローカライズ):
生成しようとしています: シンガー: <name> テーマ: <theme> 歌詞: [verse] <完全な verse の歌詞ここに> [chorus] <完全な chorus の歌詞ここに> ... (すべてのセクションを完全に表示) 説明: <曲のスタイルとムードのローカライズされた説明> 確認しますか? (Enter キーで確認、または変更してほしいことを教えてください)決して歌詞またはプロンプトを切り詰めたり短縮したりしないでください。 ユーザーは API に送信されるものを正確に見る必要があります。
-
音楽生成を呼び出す:
自動生成歌詞 (視点が重要でない場合):
mmx music generate \ --prompt "<完全に結合したプロンプト>" \ --lyrics-optimizer \ --out ~/Music/minimax-gen/<name>_sings_<YYYYMMDD_HHMMSS>.mp3 \ --quiet --non-interactive自分で書いた歌詞 (視点制御):
mmx music generate \ --prompt "<完全に結合したプロンプト>" \ --lyrics "<正しいペット視点を持つ歌詞>" \ --out ~/Music/minimax-gen/<name>_sings_<YYYYMMDD_HHMMSS>.mp3 \ --quiet --non-interactive
ステップ 5: 再生とフィードバック
クロスプラットフォーム再生
利用可能なオーディオプレイヤーを検出して生成ファイルを再生します:
if command -v mpv >/dev/null 2>&1; then
mpv --no-video ~/Music/minimax-gen/<filename>.mp3
elif command -v ffplay >/dev/null 2>&1; then
ffplay -nodisp -autoexit ~/Music/minimax-gen/<filename>.mp3
elif command -v afplay >/dev/null 2>&1; then
afplay ~/Music/minimax-gen/<filename>.mp3
else
echo "オーディオプレイヤーが見つかりません。あなたの曲は次に保存されました: ~/Music/minimax-gen/<filename>.mp3"
fi
再生を開始した後、ファイルが再生されていることとそれが保存されている場所をユーザーに伝えます。 再生コントロール (例: キーボードショートカット) を表示しないでください — プレイヤーはこの環境でバックグラウンドで実行されるため機能しません。
プレイヤーが見つからない場合、ファイルパスを表示し、mpv のインストールを提案します。
フィードバック
再生後、フィードバックを求めます (すべてのテキストをローカライズ):
<name> のパフォーマンスはどうでしたか?
1. 素晴らしい! 保存します!
2. 別のテーマ / スタイルを試す
3. 歌詞を微調整して再生成
4. 別のランダムなものを試す
エッジケース
| 状況 | アクション |
|---|---|
~/.claude.json がない | ユーザーに /buddy を最初に実行するよう伝える |
| Companion フィールドが空 | 同じ — /buddy にガイド |
| mmx CLI がインストールされていない | 「mmx CLI をインストール必要: npm install -g mmx-cli && mmx auth login」と出力 |
| オーディオプレイヤーが見つからない | ファイルパスを表示して、mpv のインストールを提案 |
| メモリファイルが見つからない | カスタムテーマまたはランダムモードを提案 |
| ユーザーがペットのボイスを変更したい | キャッシュを削除して、性格を再解釈 |
| ユーザーが特定のジャンルを望む | 許可 — プロンプトに彼らのジャンルを追加 |
注記
- ボーカルアイデンティティは名前 + 性格のみに基づきます。種/レア度テンプレートマッピングはありません。
- ボイスはキャッシュされ、セッション全体で一貫しています。同じペット = 同じボイス。
- 歌詞は常にオリジナルである必要があります — 著作権のある歌詞を再現しないでください。
- ペットの性格はボイス (どのように聞こえるか) と歌詞 (彼らが何を言うか、どのように言うか) の両方を形作ります。
- すべての生成ファイルは
~/Music/minimax-gen/に進み、ファイル名にペット名が含まれます。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- minimax-ai
- リポジトリ
- minimax-ai/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/minimax-ai/skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。