| name | dev:bip |
| description | Build in Public ツイート生成。git log + 会話コンテキストから「今作っているもの」を分析し、
日本語ツイート3案(280カウント以内・敬体・ハッシュタグなし)を生成します。
日本語1文字=2カウントのため、日本語のみの場合は実質140文字が上限です。
tweet-writer エージェントを3並列で起動し、各案が280カウントを超えた場合は自動修正ループを回します。
Trigger:
/dev:bip, bip, Build in Public, ツイート生成, ツイート作って, 投稿文
|
| user-invocable | true |
dev:bip — Build in Public ツイート生成
git log と会話コンテキストから、X(旧Twitter)に投稿できる日本語ツイート3案を生成します。
「何を作ったか」を報告するのではなく、読んだ人が反応したくなる角度で切り取ることがゴールです。
なぜ普通の進捗報告はエンゲージメントが取れないか
「〇〇機能を追加しました」「リファクタしました」は事実ですが、読者に**「自分ごと」感**がありません。
エンゲージメントが高いツイートは以下のいずれかを持っています:
- 意外性・逆説: 「当然こうだと思っていましたが、違いました」
- 緊張感・ドラマ: 「詰まっていました / やらかしました / やっと解決しました」
- 具体的な数字: 「3時間で / 8スキルを / 20件のコミット」
- 普遍的な気づき: 「これ、○○している方全員に当てはまるかもしれません」
- 問いかけ: 読んだ人が「あるある」「自分も知りたい」と感じる終わり方
エージェント構成
| エージェント | 役割 | 起動数 |
|---|
| tweet-writer | 1案生成 + 280カウント超過時の修正ループ | 3並列 |
スクリプト: scripts/count-chars.sh(X文字数カウント)
実行手順
Step 1: コンテキスト収集
以下を実行してください:
git log --format="%aI %s" -20
head -40 CLAUDE.md 2>/dev/null || head -40 README.md 2>/dev/null
Step 2: 「ツイートの角度」を見つける
単純に「何を作ったか」をまとめるのではなく、読者が反応する角度を探してください。
| 探す観点 | 問い |
|---|
| 驚き・逆説 | 「やってみたら想定と違ったことはありますか?」「当たり前と思っていたことが覆されましたか?」 |
| 詰まり・解決 | 「困っていたことはありましたか?それをどう突破しましたか?」 |
| before/after | 「作業前と後で何がどう変わりましたか?数字があればなお良いです」 |
| 普遍的な学び | 「この気づきは他の開発者にも当てはまりますか?」 |
| なぜ作っているか | 「この作業の背後にある動機・目的は何ですか?」 |
コンテキストが不明な場合: 以下の一言をテキストで問いかけてください:
「今日のツイートで特に伝えたいことを教えていただけますか?(例:詰まったこと、気づき、達成したことなど)」
Step 3: コンテキストサマリーを作成
次の Step 4 でエージェントに渡すため、以下をまとめてください(自分のメモとして、出力不要):
- プロジェクト概要: 何を作っているか(1〜2文)
- 最近の作業: 直近5件のコミットから読み取れる作業内容
- ユーザー補足: 会話コンテキストやユーザーが伝えた追加情報
- 角度の候補: Step 2 で見つけた「反応が取れそうな切り口」
Step 4: tweet-writer エージェントを3並列起動
3エージェントを1つのメッセージで同時に起動してください(並列実行)。
各エージェントへのプロンプトに含める情報:
agents/tweet-writer.md の手順に従うよう指示
- Step 3 で作成したコンテキストサマリー
- 割り当てる構文タイプ(下表)
count-chars.sh のパス({このSKILL.mdのディレクトリ}/scripts/count-chars.sh)
| エージェント | 割り当て構文 |
|---|
| Agent 1 | 逆説・意外性型 または 詰まり・突破型(コンテキストに合う方) |
| Agent 2 | before/after型 または 発見・気づき型(コンテキストに合う方) |
| Agent 3 | 動機・なぜ作るか型 |
Step 5: 結果を統合して出力
3エージェントの結果を受け取り、以下のフォーマットで表示してください:
案1({構文名})
{ツイート本文}
({文字数}字)
案2({構文名})
{ツイート本文}
({文字数}字)
案3({構文名})
{ツイート本文}
({文字数}字)