Communityライティング&編集github.com

Bird - X/Twitter ルータースキル

SocialData をデフォルトの読み取りプレーンとし、公式 xurl CLI を認証済みアカウント操作に限定して使用する X/Twitter ルーターです。

Twitter ルータースキル とは?

Bird は、AI エージェント(Claude Code、Cursor、Codex など)向けに設計されたシングル X/Twitter ルータースキルです。最も安価な読み取り経路として SocialData をデフォルトで使用し、認証済みアカウントコンテキストや明示的に承認された書き込み操作(ツイート、返信、いいね、フォロー、DM など)にのみ公式 xurl CLI を利用します。統合エントリポイント `/bird <request>`、レガシー互換の `bird.py`、xurl 専用の `/xurl` をサポートし、ルーティングは決定論的テーブルに従って制御されます。コスト契約では、通常の読み取りに xurl への自動フォールバックを禁止し、シークレット、Cookie、API キーの漏洩を防ぐ厳格な出力契約と安全な実行ポリシーを実施します。このスキルは、コスト効率とプライバシーを維持しながら、エージェントが一貫した安全な方法で X コンテンツの読み取り、検索、アカウント操作を行うことを可能にします。

対応~Claude Code~Codex CLI~Cursor
npx skills add evgyur/hermes-bird-xurl-skill

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Bird

Bird はシングル X/Twitter ルーターです。デフォルトの安価な読み取りプレーンとして SocialData を使用します。公式 xurl CLI は、タスクに認証済みアカウントコンテキスト、X ネイティブオブジェクト、または明示的に承認されたアカウントミューテーションが必要な場合にのみ使用します。同じルーチン読み取りに両方のプロバイダーを応答させないでください。

トリガーと互換性

X/TwitterのURL、ツイート/スレッド/記事抽出、検索、プロフィール、返信/引用/コンテキスト、メディア取得、Xアカウント操作に使用します。

以下のエントリポイントを維持します:

  • /bird <リクエスト> — 標準ルーター。
  • レガシー bird.py <URLまたはID> — SocialData を通じて読み取りを実行。
  • /xurl ... — xurl を明示的にリクエストするユーザー向けの互換性エントリポイント。Bird のルーティングと書き込みゲートに従う必要があります。

決定論的ルーティング

インテントプライマリフォールバック境界
URL/ID によるツイート読み取りSocialData公開可視証拠のみ web/ブラウザ存在するという理由だけで xurl にエスカレーションしない
スレッド/会話/返信の読み取りSocialDataXネイティブコンテキストが一意に必要でサポートされている場合のみ xurl 読み取りURL形状ではなく取得データからスレッドを判断
投稿検索SocialData 範囲指定検索既存の SocialData/web 調査ルート現在の xurl recent-search アクセスは想定しない
公開プロフィール読み取りSocialDataアカウント固有/現在の X ビューが必要な場合 xurl ユーザルックアップバルクグラフ収集禁止
X 記事最初に SocialData ツイートペイロード、ネストされた記事を解析xurl 生ツイートエンドポイント、article フィールド使用記事テキストがない場合、リンク先のファーストパーティページを参照
添付メディアダウンロードSocialData メタデータ + 範囲指定 HTTPS ダウンロード公開可視メディアのみブラウザURL/ログに Cookie なし。ホスト/サイズ/タイプを検証
自分は誰? / 認証済みアイデンティティxurlなし読み取り専用アカウントコンテキスト
後続エンゲージメントに必要な正確な X ネイティブオブジェクトxurl発見/コンテキスト用 SocialData正確なオブジェクト/エンドポイントにのみ xurl を使用
投稿、返信、引用、削除、いいね、リポスト、ブックマーク、フォロー、ブロック、ミュート、DM、アップロードxurlなし正確なターゲット、コンテンツ、および効果の明示的承認が必要

エンドポイントレシピ、エラー、フォールバックルールについてはプロバイダールーティングをロードしてください。xurl 固有のタスクにのみxurl 操作をロードしてください。

プロバイダーとコスト契約

  • SocialData は、すべての通常の読み取りのデフォルトです。現在のランタイムで設定された直接 SOCIALDATA_API_KEY を最初に使用します。直接キーがない場合、承認された Human20 Keys SocialData プロキシを使用します(H20 カスタマーキーに socialdata 機能がある場合)。汎用 H20 モデルキーが存在しても provider not allowed: socialdata を返す場合がありますが、それは xurl への切り替えを正当化しません。
  • Live Human20 Keys のデフォルト価格クラス social-request は 0 credits/request で確認されました。これを変更可能なランタイム状態として扱い、コストを主張する前に再確認してください。
  • 1 ユーザーリクエストは通常、1 回のルックアップ/検索と、スレッドまたはリクエストされたコンテキストに必要な範囲指定された従属読み取りのみを消費します。ファンアウト、フォロワー/フォローイングのスクレイピング、エクスポート、ストリーミング、ポーリング、バルクフェッチは行わないでください。
  • SocialData から有料 X API 呼び出しへサイレントフォールバックしないでください。xurl は機能ニーズによって選択され、プロバイダー障害によって選択されるものではありません。

シークレットと実行安全性

  • シークレットストア、~/.xurl、Cookie、認証ヘッダー、API キー、ベアラートークン、リクエスト署名、環境変数を読み取り、印刷、解析、要約、または公開しないでください。
  • 安全なステータス/プローブコマンドを介してのみ資格情報を検証します。xurl --verbose/-v またはインライン資格情報フラグを使用しないでください。
  • SocialData 呼び出しは読み取り専用で範囲指定されています。401/403 を資格情報/ポリシー、402 をクレジット/課金、404 を不在/非公開/削除、429 をレート制限、5xx をプロバイダー障害として扱います。あるクラスを別のクラスと誤ってラベル付けしないでください。
  • ブラウザ/リレーは最後の手段であり、Cookie 抽出メカニズムではありません。
  • 書き込みは保護された効果です。xurl ミューテーションの前に、正確なターゲットとペイロードを再読み取りし、その正確な効果に対する明示的なユーザー承認を要求し、一度実行し、生の xurl/X 応答から検証します。調査の承認はエンゲージメントや公開の承認ではありません。
  • DM、削除、ブロック、アカウント変更、メディアアップロード、公開投稿は暗黙的に行われません。

ワークフロー

  1. リクエストを分類: read、search、profile、thread、article、media、account-read、write。
  2. X URL/ID を識別子を変更せずに正規化。ツイートかスレッドかを判断する前にフェッチ。
  3. テーブルからルーティング。ルーチン読み取りの場合、SocialData を最初に正確に 1 回呼び出し。
  4. 防御的に解析。記事ペイロードは article.title、article.preview_text、article.content_state.blocks[] にある場合があり、メディアは引用やリツイートされたオブジェクト内にネストされている場合があります。
  5. ユーザーがアイテムが重要かどうか尋ねた場合、リンクされたファーストパーティリポジトリ/ドキュメント/記事を開き、添付メディアを検査します。X 投稿を主張/ソースとして保持し、自動的な証明として扱わないでください。
  6. 選択したプロバイダーが失敗した場合、正確な失敗を報告します。コスト、プライバシー、または効果を拡大せずに同じリクエストに応答できる場合にのみ、記載されたフォールバックを使用します。
  7. ソースに忠実な出力とコンパクトなプロバイダー領収書を返します。

出力契約

以下を返します:

Result: <要求された完全コンテンツまたは簡潔で正確な回答>
Type: tweet | thread | article | profile | search | account-action
Author/source: <安全な公開アイデンティティ + 標準URL>
Provider: SocialData | xurl | web/browser fallback
Evidence: <ID、タイムスタンプ、利用可能なメトリクス/コンテキスト>
Action receipt: <承認された xurl ミューテーションのみ。正確なステータス/オブジェクト ID>
Limitation: <不在/非公開/削除/レート/プラン/プロバイダーギャップ、またはなし>

内部キー、認証モード、シークレットの場所、またはプライベートランタイムの詳細をユーザー向け領収書に公開しないでください。

クイックテストチェックリスト

  • /bird <ツイートURL> は xurl ではなく SocialData を選択する。
  • /bird search from:handle は範囲指定された SocialData 検索を選択する。
  • /bird whoami は読み取り専用 xurl アイデンティティを選択する。
  • /bird reply <URL> <text> は xurl の前に正確な承認を求める。
  • SocialData の 402 は資格情報不足として報告されない。xurl recent-search の失敗はアイデンティティ/プロフィール読み取りを無効にしない。
  • スレッドと記事の解析は URL 推測ではなく、フェッチされた構造を使用する。
  • SocialData デフォルトまたは書き込み承認契約を削除すると妥当性チェックが失敗する。

完了条件

  • リクエストされた X コンテンツ/アクションが完了したか、正確なブロッカーが 1 つ報告される。
  • ルーチン読み取りは SocialData を最初に使用し、重複プロバイダーコストを回避した。
  • xurl は機能固有の理由でのみ使用された。
  • 書き込みには正確な承認と生 API 読み戻しがあった。
  • シークレット/Cookie/プライベート資格情報が出力、アーティファクト、またはログに入らなかった。

関連スキル