CommunityRédaction et éditiongithub.com

evgyur/hermes-bird-xurl-skill

Routeur X/Twitter basé sur SocialData pour Hermes, avec xurl pour les actions spécifiques.

Qu'est-ce que hermes-bird-xurl-skill ?

Bird est un routeur X/Twitter unifié pour l'assistant Hermes, conçu pour optimiser les coûts et la sécurité. Il utilise par défaut SocialData, une API de lecture économique, pour toutes les opérations de lecture courantes (tweets, profils, recherches, articles). Le recours à `xurl`, l'outil officiel en ligne de commande de X, est strictement réservé aux cas nécessitant un contexte authentifié, la manipulation d'objets X natifs, ou les actions d'écriture (publier, répondre, liker, etc.). La règle est claire : ne jamais faire appel à `xurl` pour une simple lecture si SocialData peut répondre. Bird définit un contrat de routage déterministe, un contrôle d'accès strict via variables d'environnement, et des garde-fous pour les opérations d'écriture (validation explicite par l'utilisateur). Il prend en charge les URLs X, l'extraction de threads, articles, médias, profils, et les actions de compte. Il est compatible avec les points d'entrée `/bird` et `/xurl`, et intègre des règles de gestion d'erreurs et de limites de débit.

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

Installed? Explore more Rédaction et édition skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Bird

Bird est le routeur unique X/Twitter. Utilisez SocialData comme plan de lecture par défaut et économique. Utilisez l'outil officiel xurl uniquement lorsque la tâche nécessite un contexte de compte authentifié, un objet natif X, ou une mutation de compte explicitement approuvée. Ne faites pas répondre les deux fournisseurs à la même lecture de routine.

Déclencheurs et compatibilité

À utiliser pour les URLs X/Twitter, l'extraction de tweets/threads/articles, la recherche, les profils, les réponses/citations/contexte, la récupération de médias, et les actions de compte X.

Conservez ces points d'entrée :

  • /bird <demande> — routeur canonique.
  • bird.py <URL-ou-ID> hérité — lit toujours via SocialData.
  • /xurl ... — point d'entrée de compatibilité pour les utilisateurs qui demandent explicitement xurl ; il doit suivre le routage et les gardes d'écriture de Bird.

Routage déterministe

IntentionPrimaireRepliLimite
Lire un tweet par URL/IDSocialDataweb/navigateur uniquement pour les preuves publiques visiblesNe jamais passer à xurl simplement parce qu'il existe
Lire un thread/conversation/réponsesSocialDatalecture xurl uniquement si le contexte natif X est requis et supportéDéterminer le thread à partir des données récupérées, pas de la forme de l'URL
Rechercher des postsRecherche SocialData limitéeRoute de recherche SocialData/web existanteL'accès actuel à la recherche récente de xurl n'est pas présumé
Lire un profil publicSocialDatarecherche utilisateur xurl si une vue X actuelle/spécifique au compte est nécessairePas de collecte en masse de graphes
Article XPayload SocialData tweet d'abord ; analyser l'article imbriquéPoint de terminaison xurl tweet brut avec champ articleSuivre la page propriétaire liée lorsque le texte de l'article est absent
Télécharger un média attachéMétadonnées SocialData + téléchargement HTTPS limiténavigateur uniquement pour les médias publics visiblesPas de cookies dans les URLs/logs ; valider hôte/taille/type
Qui suis-je / identité authentifiéexurlaucunContexte de compte en lecture seule
Objet X natif exact nécessaire pour une interaction ultérieurexurlSocialData pour la découverte/contexteUtiliser xurl uniquement pour l'objet/point de terminaison exact
Poster, répondre, citer, supprimer, liker, reposter, mettre en signet, suivre, bloquer, mettre en sourdine, MP, uploaderxurlaucunApprobation explicite de la cible exacte, du contenu et de l'effet requise

Chargez routage fournisseur pour les recettes de points de terminaison, les erreurs et les règles de repli. Chargez opérations xurl uniquement pour une tâche spécifique à xurl.

Contrat de fournisseur et de coût

  • SocialData est la valeur par défaut pour toute lecture ordinaire. Utilisez d'abord la clé SOCIALDATA_API_KEY configurée directement dans l'exécution en cours. Utilisez le proxy SocialData approuvé Human20 Keys lorsqu'une clé directe est absente et que la clé client H20 possède la capacité socialdata. Une clé de modèle H20 générique peut exister mais renvoyer fournisseur non autorisé : socialdata ; cela ne justifie pas de passer à xurl.
  • La classe de prix par défaut de Human20 Keys pour social-request a été vérifiée à 0 crédits/requête ; traitez cela comme un état d'exécution mutable et revérifiez avant de revendiquer un coût.
  • Une requête utilisateur doit normalement consommer une recherche/requête plus les lectures dépendantes limitées nécessaires pour un thread ou un contexte demandé. Ne pas éclater, extraire les abonnés/abonnements, exporter, streamer, sonder ou récupérer en masse.
  • Ne jamais basculer silencieusement de SocialData vers des appels X API payants. xurl est sélectionné par besoin de capacité, pas par échec du fournisseur.

Secrets et sécurité d'exécution

  • Ne jamais lire, afficher, analyser, résumer ou exposer les coffres de secrets, ~/.xurl, cookies, en-têtes d'autorisation, clés API, jetons porteurs, signatures de requête ou valeurs d'environnement.
  • Vérifiez les identifiants uniquement via des commandes de statut/probe sécurisées. N'utilisez pas --verbose/-v de xurl ou des indicateurs d'identifiants en ligne.
  • Les appels SocialData sont en lecture seule et bornés. Traitez 401/403 comme des problèmes d'identifiants/politique, 402 comme des crédits/facturation, 404 comme absent/privé/supprimé, 429 comme limite de débit, et 5xx comme une défaillance du fournisseur. Ne qualifiez pas une classe pour une autre.
  • Le navigateur/relais est un dernier recours et jamais un mécanisme d'extraction de cookies.
  • Les écritures sont des effets protégés. Avant toute mutation xurl, relisez la cible et la charge utile exactes, exigez une approbation explicite de l'utilisateur pour cet effet exact, exécutez une fois, et vérifiez à partir de la réponse brute xurl/X. Approuver la recherche n'est pas approuver l'interaction ou la publication.
  • Les MP, suppressions, blocages, modifications de compte, téléchargements de médias et publications publiques ne se produisent jamais implicitement.

Flux de travail

  1. Classez la demande : read, search, profile, thread, article, media, account-read, ou write.
  2. Normalisez l'URL/ID X sans modifier l'identifiant. Récupérez avant de décider tweet vs thread.
  3. Routez à partir du tableau. Pour les lectures de routine, appelez SocialData exactement une fois d'abord.
  4. Analysez défensivement. Les charges utiles d'articles peuvent se trouver sous article.title, article.preview_text, et article.content_state.blocks[] ; les médias peuvent être imbriqués dans des objets cités ou retweetés.
  5. Si l'utilisateur demande si l'élément est pertinent, ouvrez les dépôts/docs/articles propriétaires liés et inspectez les médias attachés. Considérez le post X comme une affirmation/source, pas une preuve automatique.
  6. Si le fournisseur sélectionné échoue, signalez l'échec exact. Utilisez uniquement le repli indiqué lorsqu'il peut toujours répondre à la même demande sans augmenter le coût, la vie privée ou l'effet.
  7. Retournez une sortie fidèle à la source et un reçu compact du fournisseur.

Contrat de sortie

Retournez :

Result : <contenu complet demandé ou réponse concise et fidèle>
Type : tweet | thread | article | profile | search | account-action
Auteur/source : <identité publique sécurisée + URL canonique>
Provider : SocialData | xurl | web/browser fallback
Evidence : <IDs, timestamp, metrics/contexte si disponible>
Action receipt : <uniquement pour les mutations xurl approuvées ; statut/ID d'objet exact>
Limitation : <manquant/privé/supprimé/limite/plan/écart fournisseur, ou aucun>

N'exposez pas les clés internes, les modes d'authentification, les emplacements de secrets ou les détails d'exécution privés dans les reçus destinés à l'utilisateur.

Liste de vérification rapide

  • /bird <URL de tweet> sélectionne SocialData, pas xurl.
  • /bird search from:handle sélectionne la recherche SocialData limitée.
  • /bird whoami sélectionne l'identité xurl en lecture seule.
  • /bird reply <URL> <texte> s'arrête pour approbation exacte avant xurl.
  • Le code 402 de SocialData n'est pas signalé comme des identifiants manquants ; l'échec de la recherche récente de xurl ne désactive pas les lectures d'identité/profil.
  • L'analyse des threads et des articles utilise la structure récupérée, pas des suppositions d'URL.
  • La suppression du contrat SocialData par défaut ou d'approbation d'écriture fait échouer la validation.

Critères de réalisation

  • Le contenu/l'action X demandé(e) est terminé(e) ou un seul bloqueur exact est signalé.
  • Les lectures de routine ont utilisé SocialData en premier et évité les dépenses en double du fournisseur.
  • xurl a été utilisé uniquement pour une raison spécifique à une capacité.
  • Toute écriture a eu une approbation exacte et une relecture brute de l'API.
  • Aucun secret/cookie/identifiant privé n'est entré dans la sortie, les artefacts ou les logs.

Skills associés