| name | search-x-voices |
| description | X(旧Twitter)でプログラマーのリアルな声を収集する。歌詞のネタ・あるある素材を集めるための深掘り検索。「Xで反応調べたい」「あるある探そう」「ユーザーの声」「リアルな反応」「Xで検索して」といったワードでトリガー。 |
| argument-hint | [テーマやコンセプト] |
X でプログラマーの声を集める
Grok API の x_search ツール経由で、テーマに沿ったプログラマーの実投稿を収集する。
歌詞作りの ネタ素材 を集めるのが主目的。WebSearch では拾えない直近・生っぽい声を狙う。
設計思想
- 質を上げるのはクエリ設計。雑な「Codexの感想」ではなく、引き出したい感情の輪郭まで含めて聞く
- 日本語投稿を主軸にする。歌詞ネタは日本人プログラマーの日本語感想に特化(英語の口癖は日本語訳すると語感が崩れる)。英語クエリは温度感確認用に1-2本まで、メインは日本語クエリ
- ポジ/ネガではなく "感情の機微" を狙う。賞賛より、苦笑・諦め・察し・気まずさのような微妙な温度
- 直接引用せず、シチュエーションを抽出する([feedback_lyrics_storytelling] と整合)
手順
1. 何を集めたいか確認
ユーザーに以下を確認する。引数で来てれば省略可:
- テーマ / コンセプト: 何の歌詞のための素材か(例: 「察してた系のあるある」「乗り換え疲れ」)
- キャラクター視点: Codex か Claude Code か、両方か
- 欲しい感情の輪郭: 笑える / 沁みる / 苦い / 共犯感、など
- 期間: 通常は直近2週間。話題のリリース直後なら直近1週間に絞る
2. クエリを設計する
雑なクエリの例(避ける):
- 「Codexの感想を集めて」
- 「最近のAIエージェントの反応」
良いクエリの例(質的・機微を引き出す):
- 「直近2週間のXで、Codex を使ってるプログラマーが "察してた" "気づいてた" "言わなかっただけ" のような、AIに見抜かれた/見抜いた瞬間の機微を書いている投稿を探してください。@ユーザー名・日付・本文を含めて15件以上」
- 「AIコーディングエージェント(Codex/Claude Code)に頼り切ってる自覚と、それを手放せない後ろめたさについて書いてるプログラマーの投稿を、笑いと自虐を含むものを中心に探してください」
- 「Codex/Claude Code との毎日のやりとりで、習慣化した苦笑、定型化したパターン、"またこれかよ" 的な諦めが滲む投稿を探してください」
設計のコツ:
- 引き出したい感情語を3-5個入れる(例: 「察してた」「気づいてた」「言わなかっただけ」「気まずい」「諦め」)
- シチュエーションの粒度を指示する(例: 「真夜中のプロンプト」「コミットの瞬間」「レビューの返信」)
- 対象ツールを明記(Codex / Claude Code / Cursor / GitHub Copilot 等)
- 数と形式を要求(「15件以上」「@username・日付・本文を含めて」)
- 日本語クエリ4-5本、英語クエリ1-2本(補助)の構成で計5-7本
3. クエリファイルを作成
トラックの素材集めなら content/tracks/<artist>/<track-dir>/research/queries.json に置く。
キャラ単位の継続的な探索なら content/artists/<artist>/research/queries-YYYY-MM-DD.json。
{
"from_date": "2026-04-12",
"to_date": "2026-04-26",
"queries": [
"クエリ本文1(日本語、150-300字)",
"クエリ本文2(日本語、別角度)",
"Query 3 (English, different angle)",
"Query 4 (English, different angle)"
]
}
4. 実行
bun scripts/search-x.ts content/tracks/codex/04_<slug>/research/queries.json > content/tracks/codex/04_<slug>/research/raw.txt
.env に XAI_API_KEY が必要(既に設定済み)。bun が自動で .env を読む。
5. 整理する
raw 出力からノイズを抜いて、歌詞素材として使える投稿を抽出する:
- 採用基準: ガチ勢ディテール(固有名詞・定型動詞・結果の3点セット)が含まれているか
- 却下: 抽象論、宣伝、AI驚き屋、Codex/Claude Code を触ってない人の伝聞
- キャラ別に分類する(必須): 各投稿が Claude Code の挙動 か Codex の挙動 か 両者の関係性 か ツール非依存のエンジニア側の感情 かを明示。これを分けないと Codex の歌詞に Claude の挙動が混ざる事故が起きる。
[Codex本人] — Codex の挙動・性格・口癖の話("自説曲げない"、"chronicles"、"reactive じゃなく proactive" など)
[Claude Code本人] — Claude Code の挙動・口癖の話("You're absolutely right"、"lecture you"、深夜に諭してくる など)
[両者の関係] — 第三者の観察、対比
[エンジニア側] — ユーザー側の感情。どちらのツールでも成立、または感情がツールに依存しない
- 抽出フォーマット:
notes/rap-material-from-x.md の既存形式に合わせる
- カテゴリ見出し(例: 「Codex本人視点で歌える素材」「Claude Code の挙動(diss素材)」)
@username (日付) — 本文要約
- 元URL
6. ユーザーに見せて、notes/rap-material-from-x.md への追記を提案
採用候補を5-15件にまとめて提示する。OK が出たら追記。
追記する場所はカテゴリで判断(既存カテゴリに合うなら統合、新カテゴリなら追加)。
アンチパターン
- ❌ クエリを書かずに「Xで検索して」とそのまま投げる → 質が低い
- ❌ ポジティブな反応だけ集める → 歌詞は苦さ・機微の方が刺さる
- ❌ 直接引用するつもりで集める → メモリ
feedback_lyrics_storytelling 参照。シチュエーションとして使う
- ❌ 検索結果をそのまま
rap-material-from-x.md に貼る → 必ず人間の取捨選択を挟む
- ❌ Claude Code の挙動エピソードを Codex の素材として並べる → キャラが崩れる。
[Claude Code本人] の素材は Codex の歌では「俺はそうじゃない」の対比 / diss としてしか使わない