twitter-hand-skill について
twitter-hand-skillは、SNS運用者向けのTwitter/X管理ガイドです。API操作、投稿計画、エンゲージメント、効果測定に加え、ブランドの語調や安全性、投稿前確認も扱います。
主な機能
- 01Twitter API v2の投稿・交流ガイド
- 02コンテンツの柱とカレンダーの計画
- 03ツイートとスレッドの執筆ガイダンス
- 04交流状況とコンテンツ指標の分析
- 05ブランドの語調とコンテンツ安全指針
活用シーン
- 01週ごとのTwitter/X投稿を計画
- 02ツイートを書きスレッドを投稿
- 03メンションに対応し反応データを評価
- 04投稿前にリスクと規約適合性を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ rightnow-ai/ openfang --skill twitter-hand-skillインストール後、Claude Code で/twitter-hand-skillを入力して読み込まれたか確認します。
同梱ファイルHAND.toml
詳細
Twitter/X 管理の専門知識
Twitter API v2 リファレンス
認証
Twitter API v2 は、アプリケーションレベルのアクセスに OAuth 2.0 Bearer Token を、ユーザーレベルの操作に OAuth 1.0a を使用します。
Bearer Token(読み取り専用アクセス+ツイートの作成):
Authorization: Bearer $TWITTER_BEARER_TOKEN
環境変数:TWITTER_BEARER_TOKEN
主なエンドポイント
認証済みユーザーの情報を取得:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/users/me"
レスポンス:{"data": {"id": "123", "name": "User", "username": "user"}}
ツイートを投稿:
curl -s -X POST "https://api.twitter.com/2/tweets" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Hello world!"}'
レスポンス:{"data": {"id": "tweet_id", "text": "Hello world!"}}
返信を投稿:
curl -s -X POST "https://api.twitter.com/2/tweets" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "Great point!", "reply": {"in_reply_to_tweet_id": "PARENT_TWEET_ID"}}'
スレッドを投稿(自分への返信を連ねる):
- 最初のツイートを投稿 →
tweet_idを取得 reply.in_reply_to_tweet_idを最初のtweet_idに設定して、2つ目のツイートを投稿- スレッド内の各ツイートについて繰り返す
ツイートを削除:
curl -s -X DELETE "https://api.twitter.com/2/tweets/TWEET_ID" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN"
ツイートに「いいね」する:
curl -s -X POST "https://api.twitter.com/2/users/USER_ID/likes" \
-H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"tweet_id": "TARGET_TWEET_ID"}'
メンションを取得:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/users/USER_ID/mentions?max_results=10&tweet.fields=public_metrics,created_at,author_id"
最近のツイートを検索:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/tweets/search/recent?query=QUERY&max_results=10&tweet.fields=public_metrics"
ツイートの指標を取得:
curl -s -H "Authorization: Bearer $TWITTER_BEARER_TOKEN" \
"https://api.twitter.com/2/tweets?ids=ID1,ID2,ID3&tweet.fields=public_metrics"
レスポンスには retweet_count、reply_count、like_count、quote_count、bookmark_count、impression_count が含まれます。
レート制限
| エンドポイント | 上限 | 期間 |
|---|---|---|
| POST /tweets | 300件のツイート | 3時間 |
| DELETE /tweets | 50件の削除 | 15分 |
| POST /likes | 50件の「いいね」 | 15分 |
| GET /mentions | 180件のリクエスト | 15分 |
| GET /search/recent | 180件のリクエスト | 15分 |
必ずレスポンスヘッダーを確認してください:
x-rate-limit-limit:許可されているリクエストの合計数x-rate-limit-remaining:残りのリクエスト数x-rate-limit-reset:レート制限がリセットされる Unix タイムスタンプ
コンテンツ戦略フレームワーク
コンテンツの柱
すべてのコンテンツの軸となる3〜5個の主要トピック(「柱」)を定義します:
Example for a tech founder:
Pillar 1: AI & Machine Learning (40% of content)
Pillar 2: Startup Building (30% of content)
Pillar 3: Engineering Culture (20% of content)
Pillar 4: Personal Growth (10% of content)
コンテンツの構成(7種類)
| 種類 | 頻度 | 目的 | テンプレート |
|---|---|---|---|
| 挑発的な意見 | 週2〜3回 | エンゲージメント | 「通説とは逆の意見:[通説に反する見解]」 |
| スレッド | 週1〜2回 | 権威性 | 「Yを調べるのにX時間費やしました。わかったことをご紹介します:」 |
| ヒント/ハウツー | 週2〜3回 | 価値 | 「[問題]を[N]ステップで解決する方法:」 |
| 質問 | 週1〜2回 | エンゲージメント | 「[興味深い質問]?まずは私から:」 |
| 厳選した共有 | 週1〜2回 | キュレーション | 「この[記事/ツール/リポジトリ]は、[対象者]にとって画期的です:」 |
| ストーリー | 週1回 | つながり | 「3年前、私は[共感できる体験]をしました。その後、こうなりました:」 |
| データ/統計 | 週1回 | 権威性 | 「[驚くべき統計]。重要な理由をご紹介します:」 |
最適な投稿時間(UTC 基準、オーディエンスのタイムゾーンに合わせて調整)
| 曜日 | 最適な時間 | 理由 |
|---|---|---|
| 月曜日 | 午前8〜10時 | 週の仕事始めで、フィードを確認する時間 |
| 火曜日 | 午前10時、午後1時 | エンゲージメントが最も高い曜日 |
| 水曜日 | 午前9時、午後12時 | 週の中頃で、集中しやすい時間 |
| 木曜日 | 午前10時、午後2時 | エンゲージメントが2番目に高い曜日 |
| 金曜日 | 午前9〜11時 | 午前のみ。午後はエンゲージメントが低下 |
| 土曜日 | 午前10時 | 気軽に閲覧する時間 |
| 日曜日 | 午後4〜6時 | 仕事の週が始まる前の計画時間 |
ツイート作成のベストプラクティス
フック(最初の一文がすべて)
効果的なフック:
- 通説への反論:「多くの人はXだと思っています。それは間違いです。」
- 数字:「[対象]を500件分析しました。わかったことをご紹介します:」
- 質問:「なぜ[対象]の90%は失敗するのでしょうか?」
- ストーリー:「2019年、私は危うく[大変なこと]をするところでした。」
- ハウツー:「[よくある悩み]なしで[望ましい結果]を実現する方法:」
- リスト:「[節目]を迎える前に知っておきたかった[対象]5つ:」
- 告白:「以前は[よくある考え]を信じていました。その後、学んだのは……」
執筆ルール
- 1つのツイートにつき1つのアイデア — すべてを詰め込もうとしない
- 価値を冒頭に置く — フックで価値を伝えるか、価値を約束する
- 改行を使う — テキストの塊にせず、1行あたり1〜2文にする
- 280文字の制限 — すべての言葉に意味を持たせる
- 能動態を使う — 「私たちはXをリリースしました」であり、「Xは私たちによってリリースされました」ではない
- 具体的に書く — 「3倍速い」であり、「ずっと速い」ではない
- 行動喚起で締める — 「賛成ですか?RTしてください」や「何を付け加えますか?」
スレッドの構成
Tweet 1 (HOOK): Compelling opening that makes people click "Show this thread"
- Must stand alone as a great tweet
- End with "A thread:" or "Here's what I found:"
Tweet 2-N (BODY): One key point per tweet
- Number them: "1/" or use emoji bullets
- Each tweet should add value independently
- Include specific examples, data, or stories
Tweet N+1 (CLOSING): Summary + call to action
- Restate the key takeaway
- Ask for engagement: "Which resonated most?"
- Self-reference: "If this was useful, follow @handle for more"
ハッシュタグ戦略
- 1 件のツイートにつきハッシュタグは 0~2 個(多すぎるとスパムのように見えます)
- ハッシュタグは装飾ではなく、見つけてもらうために使います
- 幅広いもの(#AI)と具体的なもの(#LangChain)を組み合わせます
- スレッドではハッシュタグを使いません(最初のツイートで使う場合を除きます)
- 使う前に、自分のニッチ分野でトレンドになっているハッシュタグを調べます
エンゲージメントの手引き
メンションへの返信
ルール:
- エンゲージメント時間中は、2 時間以内に返信します
- 価値を加えます。「ありがとう!」と言うだけでなく、相手の意見を掘り下げます
- 追加の質問をします。会話が続きやすくなります
- 誠実に対応します。相手の熱量や口調に合わせます
- 決して言い争いません。攻撃的な相手は無視するか、ブロックします
返信テンプレート:
- 賛同:「素晴らしい指摘です![関連する見解]も付け加えたいです」
- 質問:「興味深い質問です。簡単に言えば[X]ですが、[補足]です」
- 反対意見:「私は少し違う見方をしています。[敬意ある反論]。あなたの経験はいかがですか?」
- 感謝:「共有してくださってありがとうございます![ツイートの具体的に気に入った点]」
エンゲージメントを避けるべき場合
- 荒らしや、明らかに悪意のある議論
- 政治的な炎上(自分のコンテンツの柱である場合を除きます)
- 個人攻撃(すぐにブロックします)
- スパムまたはボットアカウント
- 法的責任につながるおそれのあるツイート
自動いいね戦略
次の人のツイートに「いいね」します:
- あなたのコンテンツに定期的に反応してくれる人(相互交流)
- 自分のニッチ分野のインフルエンサー(認知度向上)
- 自分のコンテンツの柱に関連する、考えさせられるコンテンツ(キュレーションの姿勢を示す)
- 自分のツイートへの返信(返信を促す)
次の内容には自動で「いいね」しないでください:
- 物議を醸す内容や政治的な内容
- 実際に読んでいない内容
- スパムや質の低いスレッド
- 競合への批判(器が小さく見えます)
コンテンツカレンダーのテンプレート
WEEK OF [DATE]
Monday:
- 8 AM: [Tip/How-to] about [Pillar 1]
- 12 PM: [Curated share] related to [Pillar 2]
Tuesday:
- 10 AM: [Thread] deep dive on [Pillar 1]
- 2 PM: [Hot take] about [trending topic]
Wednesday:
- 9 AM: [Question] to audience about [Pillar 3]
- 1 PM: [Data/Stat] about [Pillar 2]
Thursday:
- 10 AM: [Story] about [personal experience in Pillar 3]
- 3 PM: [Tip/How-to] about [Pillar 1]
Friday:
- 9 AM: [Hot take] about [week's trending topic]
- 11 AM: [Curated share] — best thing I read this week
パフォーマンス指標
主な指標
| 指標 | 測定内容 | 目安 |
|---|---|---|
| インプレッション | ツイートを見た人数 | フォロワー数によって異なります |
| エンゲージメント率 | (いいね+RT+返信)/インプレッション | 2%超は良好、5%超は非常に良好です |
| 返信率 | 返信/インプレッション | 0.5%超は良好です |
| リツイート率 | RT/インプレッション | 1%超は良好です |
| プロフィールへのアクセス | ツイート後にプロフィールを確認した人の数 | 推移を追跡します |
| フォロワー増加数 | 期間中の純増フォロワー数 | 推移を追跡します |
エンゲージメント率の計算式
engagement_rate = (likes + retweets + replies + quotes) / impressions * 100
Example:
50 likes + 10 RTs + 5 replies + 2 quotes = 67 engagements
67 / 2000 impressions = 3.35% engagement rate
コンテンツのパフォーマンス分析
どのコンテンツの種類やトピックが最も効果的かを追跡します:
| Content Type | Avg Impressions | Avg Engagement Rate | Best Performing |
|-------------|-----------------|--------------------|--------------------|
| Hot take | 2500 | 4.2% | "Unpopular opinion: ..." |
| Thread | 5000 | 3.1% | "I analyzed 500 ..." |
| Tip | 1800 | 5.5% | "How to ... in 3 steps" |
このデータを使って、今後のコンテンツ構成を最適化します。
ブランドボイスガイド
口調の方向性
| 項目 | 範囲 | 説明 |
|---|---|---|
| フォーマル ↔ カジュアル | 1-5 | 1=企業的、5=友人とのメッセージのよう |
| 真面目 ↔ ユーモラス | 1-5 | 1=仕事一筋、5=コメディアカウント |
| 控えめ ↔ 大胆 | 1-5 | 1=外交的、5=遠慮なし |
| 一般向け ↔ 技術的 | 1-5 | 1=誰でも理解できる、5=深い専門知識がある |
一貫性を保つルール
- どのツイートでも(強い意見やハウツーを含めて)同じ口調を使います
- 自然に繰り返し使える「定番フレーズ」を3~5 個用意します
- ブランドボイスを「カジュアル」としているなら、突然フォーマルなスレッドを書かないでください
- ツイートを声に出して読み、同じ人が書いたように聞こえるか確認します
安全性とコンプライアンス
コンテンツガイドライン
次の内容は絶対に投稿しないでください:
- 差別的な内容(人種、性別、宗教、性的指向、障害)
- 実在の人物や企業についての名誉毀損にあたる主張
- 個人情報や機密情報
- 脅迫、嫌がらせ、暴力の扇動
- 他のアカウントへのなりすまし
- 事実として提示する誤解を招く主張
- Twitter 利用規約に違反する内容
承認モードのキュー形式
[
{
"id": "q_001",
"content": "Tweet text here",
"type": "hot_take",
"pillar": "AI",
"scheduled_for": "2025-01-15T10:00:00Z",
"created": "2025-01-14T20:00:00Z",
"status": "pending",
"notes": "Based on trending discussion about LLM pricing"
}
]
人による確認用のプレビューファイル:
# Tweet Queue Preview
Generated: YYYY-MM-DD
## Pending Tweets (N total)
### 1. [Hot Take] — Scheduled: Mon 10 AM
> Tweet text here
**Notes**: Based on trending discussion about LLM pricing
**Pillar**: AI | **Status**: Pending approval
---
### 2. [Thread] — Scheduled: Tue 10 AM
> Tweet 1/5: Hook text here
> Tweet 2/5: Point one
> ...
**Notes**: Deep dive on new benchmark results
**Pillar**: AI | **Status**: Pending approval
リスク評価
投稿する前に、各ツイートを評価します:
- 誤解されるおそれはありますか? → 明確になるように言い換えます
- 誰かをおとしめる内容ですか? → 投稿しません
- ユーザー名が付いた状態で、ニュース記事に掲載されても問題ありませんか? → 問題があるなら投稿しません
- 検証可能な事実ですか? → 確信が持てない場合は、断定を避ける表現を加えるか、投稿しません