Aller au contenu principal

Extension Discord

Discord constitue l'espace communautaire permanent de La TaniÚre en dehors des directs. Il accueille des échanges différés, des annonces, des commandes, des espaces privés, des salons vocaux et les interventions de P.O.U.B.E.L.L.E. Cette diversité exige une intégration capable de respecter le contexte de chaque espace sans transférer à Discord les rÚgles fonctionnelles d'Horizon.

L'Extension Discord assure cette liaison. Elle observe les informations rendues disponibles par Discord, les transmet au Noyau sous une forme exploitable, reçoit les instructions autorisées et retourne le résultat réel des opérations demandées. Elle ne décide ni de l'appartenance à l'équipage, ni de la progression, ni d'une sanction, ni de la conservation d'un message ou d'un souvenir.

Le présent chapitre définit son rÎle fonctionnel, la configuration des espaces observés, l'identification des membres, les messages et commandes, les rÎles natifs, les conversations privées, les événements vocaux et les comportements attendus en cas d'indisponibilité. Les rÚgles métier des systÚmes concernés et les mécanismes techniques de connexion seront définis dans leurs chapitres spécialisés.

Fonctionnement cible — Principes validĂ©s

La V1 d'Horizon dessert un serveur Discord principal configurable. P.O.U.B.E.L.L.E. utilise sa propre application Discord officielle et Horizon remplace le bot Discord actuellement employé dans La TaniÚre.

Les capacitĂ©s sont configurĂ©es salon par salon. Un nouvel espace accessible est activĂ© par dĂ©faut, mais l'observation du contenu, les statistiques, les commandes, les interventions de P.O.U.B.E.L.L.E. et les fonctions de modĂ©ration peuvent ĂȘtre limitĂ©es sĂ©parĂ©ment.

La présence dans un salon vocal admissible peut produire un statut opérationnel « en vocal » destiné à la progression. Ce statut ne constitue pas, dans la V1, une statistique vocale consultable ou une analyse des habitudes de la personne.

Synthùse normative​

  • La V1 doit fonctionner pour un serveur Discord principal configurable.
  • Le modĂšle fonctionnel ne doit pas empĂȘcher la crĂ©ation future de copies autonomes d'Horizon ni une Ă©volution ultĂ©rieure vers plusieurs serveurs.
  • L'accueil mutualisĂ© de plusieurs communautĂ©s ne constitue pas un objectif de la V1.
  • P.O.U.B.E.L.L.E. doit utiliser sa propre application Discord officielle.
  • L'Extension Discord doit remplacer le bot Discord actuellement utilisĂ© dans le fonctionnement cible.
  • Discord doit rester l'autoritĂ© sur ses comptes, appartenances, salons, rĂŽles, permissions, messages et sanctions natifs.
  • L'Extension Discord doit traduire les Ă©changes avec Discord sans devenir une autoritĂ© mĂ©tier.
  • Toute consĂ©quence Discord doit ĂȘtre autorisĂ©e par le Noyau avant son exĂ©cution.
  • Une action Discord ne doit ĂȘtre considĂ©rĂ©e comme rĂ©ussie qu'Ă  partir d'un rĂ©sultat suffisamment Ă©tabli.
  • Les capacitĂ©s doivent ĂȘtre configurables salon par salon ou par hĂ©ritage explicite d'une catĂ©gorie.
  • Un nouveau salon accessible doit ĂȘtre activĂ© par dĂ©faut, sous rĂ©serve des permissions rĂ©elles et des restrictions configurĂ©es.
  • Un nouveau salon vocal accessible doit autoriser par dĂ©faut le gain d'XP vocale.
  • Seuls les espaces Web de Super administration et du Capitaine doivent permettre de modifier les salons autorisant l'XP.
  • Une modification des permissions Discord ne doit pas changer automatiquement ce paramĂštre ; sa rĂ©vision doit ĂȘtre effectuĂ©e depuis l'un de ces deux espaces.
  • L'accĂšs technique Ă  un salon ne doit pas imposer l'analyse de tous ses contenus pour toutes les finalitĂ©s.
  • Tous les messages admissibles des espaces configurĂ©s doivent pouvoir ĂȘtre transmis au Noyau.
  • Le contenu intĂ©gral des conversations ne doit pas ĂȘtre conservĂ© systĂ©matiquement du seul fait de sa rĂ©ception.
  • Une modification de message ne doit pas crĂ©er une nouvelle occurrence statistique.
  • Une suppression doit mettre Ă  jour les contextes temporaires encore contrĂŽlables lorsqu'Horizon peut identifier le message concernĂ©.
  • Les commandes natives avec barre oblique doivent constituer la forme normale des commandes de base.
  • Des commandes textuelles doivent pouvoir ĂȘtre rĂ©servĂ©es Ă  des Ă©vĂ©nements ou usages particuliers.
  • Une mention, une rĂ©ponse directe ou un message privĂ© adressĂ© Ă  P.O.U.B.E.L.L.E. doit normalement dĂ©clencher le traitement d'une rĂ©ponse.
  • Le Noyau doit pouvoir autoriser P.O.U.B.E.L.L.E. Ă  intervenir spontanĂ©ment dans les espaces configurĂ©s.
  • P.O.U.B.E.L.L.E. doit pouvoir accueillir une personne rejoignant le serveur sans lui attribuer automatiquement le statut de Membre d'Ă©quipage.
  • Un message privĂ© adressĂ© Ă  P.O.U.B.E.L.L.E. doit rester privĂ© par dĂ©faut.
  • Une notification importante impossible Ă  remettre sur Discord doit pouvoir ĂȘtre redirigĂ©e vers le Poste de commande.
  • Les messages des bots et webhooks doivent ĂȘtre ignorĂ©s par dĂ©faut.
  • Une automatisation externe ne doit produire un Ă©vĂ©nement exploitable que si elle est explicitement autorisĂ©e.
  • Horizon doit reconnaĂźtre ses propres sorties afin d'Ă©viter les boucles de traitement.
  • Les rĂŽles de ModĂ©rateur et d'Administrateur Discord doivent ĂȘtre observĂ©s comme sources natives de responsabilitĂ©s.
  • Seuls les rĂŽles spĂ©ciaux associĂ©s Ă  une finalitĂ© Horizon doivent ĂȘtre synchronisĂ©s au-delĂ  de ces responsabilitĂ©s nĂ©cessaires.
  • L'Extension Discord doit pouvoir attribuer ou retirer un rĂŽle sur instruction autorisĂ©e du Noyau.
  • Les actions manuelles de modĂ©ration doivent ĂȘtre rĂ©percutĂ©es dans Horizon lorsqu'elles sont observables.
  • Un statut « en vocal » ne doit ĂȘtre produit que dans un salon admissible et en prĂ©sence d'au moins une autre personne humaine admissible.
  • Un bot ne doit ni recevoir d'XP vocal ni permettre Ă  une personne seule de satisfaire la condition collective.
  • Une personne dont l'Ă©coute est dĂ©sactivĂ©e par une sourdine personnelle ou imposĂ©e, placĂ©e dans un salon AFK ou dĂ©connectĂ©e ne doit pas conserver le statut « en vocal ».
  • Un micro coupĂ© ne doit pas interrompre le statut lorsque la personne reste en mesure d'Ă©couter.
  • Un dĂ©placement entre deux salons admissibles ne doit pas interrompre inutilement le statut.
  • Une dĂ©connexion gĂ©nĂ©rale doit rendre les observations concernĂ©es inconnues ou partielles sans inventer les Ă©vĂ©nements manquĂ©s.
  • Le catalogue des espaces, Ă©vĂ©nements, commandes, rĂŽles et actions doit rester extensible.

FinalitĂ© et pĂ©rimĂštre du chapitre​

Le chapitre répond à la question suivante :

Comment Horizon peut-il participer durablement à la vie du serveur Discord, recevoir ses interactions et y produire des actions contrÎlées sans confier à l'Extension Discord les décisions du Noyau ?

Il poursuit plusieurs objectifs :

  • DĂ©finir la place de Discord parmi les interfaces d'Horizon.
  • DĂ©limiter les responsabilitĂ©s respectives de Discord, de l'Extension Discord et du Noyau.
  • Organiser la reconnaissance des comptes et de l'appartenance au serveur.
  • Configurer les finalitĂ©s autorisĂ©es dans chaque espace.
  • Encadrer les messages, commandes et interactions structurĂ©es.
  • DĂ©finir la prĂ©sence publique et privĂ©e de P.O.U.B.E.L.L.E.
  • Transmettre les observations nĂ©cessaires aux statistiques, Ă  la mĂ©moire et Ă  la progression.
  • ReconnaĂźtre la prĂ©sence vocale utile Ă  l'attribution de l'XP sans analyser les conversations.
  • Synchroniser uniquement les rĂŽles nĂ©cessaires Ă  une finalitĂ© Ă©tablie.
  • Encadrer les actions sortantes, notifications et opĂ©rations de modĂ©ration.
  • Garantir un comportement cohĂ©rent lors des dĂ©connexions et reprises.

Le chapitre ne définit pas les formules de progression, les rÚgles de modération, les permissions détaillées, le catalogue exhaustif des commandes ou les mécanismes techniques de connexion à Discord. Il décrit les capacités d'interface dont ces systÚmes pourront disposer.

Position fonctionnelle de Discord​

Discord constitue l'espace communautaire principal entre les directs. Les interactions peuvent y ĂȘtre publiques, diffĂ©rĂ©es, organisĂ©es par sujet ou limitĂ©es Ă  un groupe. Les messages privĂ©s permettent Ă©galement un Ă©change direct avec P.O.U.B.E.L.L.E. ou la remise d'une information personnelle.

Discord reste l'autorité sur ce qui lui est propre : existence du compte, identifiant natif, pseudonyme actuel, appartenance au serveur, salons accessibles, rÎles, permissions, messages et sanctions appliquées sur le service. Horizon peut conserver des observations ou un état synchronisé, mais ne doit pas remplacer arbitrairement la valeur native.

Discord ne devient pas pour autant l'autorité sur l'Identité Horizon, le statut communautaire commun, la progression, la mémoire de P.O.U.B.E.L.L.E. ou les droits propres au Poste de commande. Ces domaines restent gouvernés par le Noyau et leurs rÚgles spécialisées.

ResponsabilitĂ©s respectives​

ComposanteResponsabilité principaleLimite
DiscordProduit les événements et exécute les opérations natives du serveur.Ne décide pas des rÚgles internes d'Horizon.
Extension DiscordReçoit, traduit et transmet les événements ; exécute les instructions Discord autorisées ; retourne les résultats.Ne décide ni de la signification métier ni des conséquences à produire.
Noyau HorizonVérifie, contextualise, déduplique, autorise, refuse ou planifie les conséquences.Ne présente pas une instruction comme réussie sans résultat suffisant de Discord.

L'Extension Discord ne communique pas directement avec l'Extension Twitch ou le Poste de commande pour synchroniser une information. Elle transmet l'Ă©vĂ©nement au Noyau, qui dĂ©termine si l'Ă©tat commun doit ĂȘtre actualisĂ© ou si une communication doit ĂȘtre remise sur une autre interface.

Cette séparation applique le cycle de traitement du chapitre 8 et évite qu'une rÚgle propre à la progression, aux notifications ou à la modération soit enfermée dans le bot Discord.

PĂ©rimĂštre de la V1 et Ă©volutivité​

La V1 dessert le serveur Discord principal de La TaniÚre. Cette limite correspond au besoin immédiat et n'impose pas la complexité d'une plateforme mutualisée accueillant plusieurs communautés.

Le serveur doit nĂ©anmoins ĂȘtre configurable. Cette prĂ©caution doit permettre, si Horizon est ultĂ©rieurement proposĂ© sous une autre forme :

  • De produire une copie autonome reliĂ©e Ă  un autre serveur.
  • D'isoler les comptes, rĂŽles, configurations et donnĂ©es propres Ă  chaque installation.
  • D'Ă©tudier ultĂ©rieurement une gestion multiserveur ou mutualisĂ©e.

Ces possibilités ne constituent pas un objectif de la V1. Leur distribution, leur hébergement et leur isolation relÚveront de l'évolutivité d'Horizon et des décisions techniques futures.

Application officielle de P.O.U.B.E.L.L.E.​

P.O.U.B.E.L.L.E. possÚde une application Discord officielle créée et administrée depuis l'espace de développement de Discord. Cette application fournit l'identité technique utilisée pour rejoindre le serveur, recevoir les interactions autorisées et publier ses interventions.

Sa présence Discord est rattachée à l'Identité Horizon spéciale de P.O.U.B.E.L.L.E.. Elle ne devient ni une identité humaine ordinaire, ni un rÎle de Modérateur ou d'Administrateur, ni une source autonome de permissions.

Dans le fonctionnement cible, cette application remplace le bot Discord actuellement utilisĂ©. La migration doit Ă©viter que l'ancien bot et Horizon traitent simultanĂ©ment une mĂȘme commande, publient plusieurs rĂ©ponses ou appliquent deux fois une consĂ©quence. L'inventaire, la coexistence Ă©ventuelle et le retrait de l'ancien systĂšme relĂšveront des chapitres 57 et 58.

Les secrets, autorisations de l'application, événements techniques et méthodes de connexion seront définis avec les intégrations externes.

Identification des membres Discord​

Chaque interaction doit ĂȘtre rattachĂ©e en prioritĂ© Ă  l'identifiant natif stable fourni par Discord, lorsqu'il est disponible. Le pseudonyme global, le nom de serveur et le nom d'affichage restent utiles Ă  l'interaction, mais ne doivent pas servir seuls de clĂ© durable lorsqu'un identifiant plus fiable existe.

L'extension transmet au Noyau les informations nécessaires pour :

  • Retrouver le compte Discord dĂ©jĂ  connu.
  • CrĂ©er une identitĂ© lorsqu'une interaction Ă©ligible le justifie.
  • Rattacher l'interaction Ă  l'IdentitĂ© Horizon correspondante.
  • Employer le pseudonyme Discord appropriĂ© dans l'Ă©change.
  • Conserver l'origine Discord de l'observation.
  • Distinguer l'appartenance actuelle au serveur de l'existence du compte.

Une interaction Discord éligible peut créer une Identité Horizon non revendiquée. Cette création ne prouve pas que la personne contrÎle un éventuel compte Twitch lié à une autre identité, ne révÚle aucune liaison et n'accorde pas automatiquement un statut ou une responsabilité.

Une personne peut revendiquer son identité par une connexion autorisée au Poste de commande ou par une commande Discord prévue. Les rÚgles de création, de revendication et de liaison restent celles des chapitres 10 et 11.

Appartenance au serveur et statut communautaire​

L'appartenance native au serveur et le statut communautaire Horizon constituent deux informations distinctes.

Une personne prĂ©sente sur le serveur devient Membre d'Ă©quipage par cette voie lorsqu'elle y envoie au moins un message admissible, sous rĂ©serve qu'aucune exclusion ou rĂšgle prioritaire ne l'empĂȘche. Une arrivĂ©e, une rĂ©action ou une autre interaction sans message peut justifier la crĂ©ation d'une identitĂ©, mais laisse la personne au statut de Visiteur si aucune autre condition d'entrĂ©e n'est remplie.

P.O.U.B.E.L.L.E. peut accueillir une personne lorsqu'elle rejoint le serveur. Ce message d'accueil ne constitue pas une interaction émise par la personne et ne suffit donc pas à lui attribuer le statut de Membre d'équipage.

Le départ du serveur actualise l'appartenance Discord. Il ne supprime ni l'Identité Horizon ni son historique et ne provoque pas nécessairement la sortie de l'équipage lorsque la personne satisfait encore une autre condition d'appartenance, notamment sur Twitch.

Configuration des espaces Discord​

Les capacitĂ©s doivent ĂȘtre configurables par salon ou par catĂ©gorie. Lorsqu'un nouvel espace devient accessible Ă  l'application, il est activĂ© par dĂ©faut, mais ses finalitĂ©s peuvent ĂȘtre limitĂ©es selon son usage et sa sensibilitĂ©.

La configuration doit pouvoir distinguer au minimum :

CapacitéSignification
Observation fonctionnelleRecevoir les événements nécessaires au fonctionnement autorisé.
Statistiques textuellesUtiliser les messages admissibles pour les mesures prévues.
Contexte conversationnelUtiliser temporairement les échanges pour comprendre une conversation.
Mémoire candidatePermettre la sélection d'un souvenir potentiel selon les rÚgles de la mémoire.
CommandesAccepter les commandes natives ou textuelles prévues dans l'espace.
Interventions de P.O.U.B.E.L.L.E.Autoriser les réponses sollicitées ou les initiatives prévues.
Notifications et annoncesAutoriser Horizon Ă  publier les communications correspondantes.
ModérationObserver ou exécuter les fonctions nécessaires dans le périmÚtre autorisé.
Présence vocale admissiblePermettre au statut « en vocal » d'alimenter la progression.

Un salon peut donc autoriser une commande sans permettre l'analyse gĂ©nĂ©rale de ses conversations, ou permettre la modĂ©ration sans autoriser la crĂ©ation de souvenirs. L'accĂšs technique de l'application ne doit jamais ĂȘtre assimilĂ© Ă  une permission gĂ©nĂ©rale d'utilisation pour toutes les finalitĂ©s.

Les fils de discussion, forums et espaces temporaires héritent par défaut de la configuration de leur salon ou catégorie d'origine. Une exception explicite peut préciser leur comportement lorsqu'une fonction particuliÚre le justifie.

Les messages privés suivent une configuration propre et ne doivent pas hériter automatiquement des rÚgles d'un salon public.

Lorsqu'un nouveau salon vocal devient accessible Ă  l'application, la capacitĂ© PrĂ©sence vocale admissible y est activĂ©e par dĂ©faut. La liste des salons autorisant le gain d'XP peut ĂȘtre modifiĂ©e uniquement depuis les espaces du Poste de commande rĂ©servĂ©s aux Super administrateurs et au Capitaine.

Une évolution des permissions natives du salon ne modifie pas automatiquement cette configuration Horizon. Les permissions Discord continuent néanmoins de conditionner l'observation et l'exécution réelles. Si la configuration d'XP doit évoluer à la suite d'un changement de permissions, un Super administrateur ou le Capitaine effectue explicitement cette modification depuis son espace du Poste de commande.

Messages Discord​

Tous les messages admissibles des espaces configurĂ©s doivent pouvoir ĂȘtre transmis au Noyau. Ils peuvent contribuer, selon les capacitĂ©s autorisĂ©es dans l'espace, Ă  :

  • Une interaction avec P.O.U.B.E.L.L.E.
  • Une commande.
  • Une mesure d'activitĂ© Discord.
  • Un contexte conversationnel temporaire.
  • La dĂ©tection d'un souvenir candidat.
  • Une analyse limitĂ©e de modĂ©ration.
  • Un Ă©vĂ©nement ou systĂšme communautaire prĂ©vu.

Cette rĂ©ception ne produit pas un historique intĂ©gral permanent du serveur. Un mĂȘme message peut ĂȘtre utilisĂ© temporairement, produire une mesure ou conduire Ă  un souvenir distinct, puis disparaĂźtre lorsque sa finalitĂ© est terminĂ©e.

CrĂ©ation, modification et suppression​

Un message ordinaire admissible est compté une seule fois lors de sa création. Sa modification peut actualiser le contexte temporaire ou le traitement en cours, mais ne crée pas une nouvelle occurrence statistique.

Lorsqu'une suppression est signalée, Horizon doit retirer le contenu des contextes temporaires encore contrÎlables lorsqu'il peut identifier le message concerné. Une suppression ne crée aucune nouvelle occurrence et n'efface pas silencieusement une trace, une sanction ou un résultat dont la conservation répond à une autre finalité.

Un message invalidĂ© pour spam, automatisation ou modĂ©ration peut ĂȘtre retirĂ© des statistiques lors du recalcul prĂ©vu. Cette correction ne doit pas conserver inutilement son contenu.

Messages exclus des statistiques ordinaires​

Le compteur des messages ordinaires exclut :

  • Les commandes adressĂ©es aux bots.
  • Les messages produits par les bots.
  • Les messages transmis par des webhooks non autorisĂ©s.
  • Les annonces automatisĂ©es.
  • Les messages identifiĂ©s comme automatisations.
  • Les messages invalidĂ©s pour spam ou par une dĂ©cision de modĂ©ration.

Une commande admissible peut néanmoins rendre une journée active sans augmenter le compteur des messages ordinaires. Les définitions et agrégations restent celles du chapitre 17.

Commandes et interactions structurĂ©es​

Discord permet deux familles complémentaires de commandes.

Commandes natives​

Les commandes natives avec barre oblique constituent la forme normale des commandes de base. Elles offrent une structure visible, des paramÚtres identifiés et une interaction adaptée aux fonctions ordinaires d'Horizon.

L'extension reçoit la commande et ses paramÚtres, puis les transmet au Noyau. Celui-ci vérifie notamment l'identité, les permissions, la portée du salon, les préconditions et la nécessité d'une réponse publique ou privée.

Commandes textuelles​

Des commandes textuelles peuvent ĂȘtre utilisĂ©es pour des Ă©vĂ©nements, protocoles ou interactions particuliĂšres lorsque leur forme apporte une valeur. Elles ne doivent pas devenir une seconde syntaxe complĂšte dupliquant sans nĂ©cessitĂ© toutes les commandes natives.

L'extension peut reconnaĂźtre leur forme et isoler les paramĂštres utiles. Elle ne dĂ©cide pas seule si la commande existe, si son auteur peut l'utiliser ou si la consĂ©quence doit ĂȘtre exĂ©cutĂ©e.

Le chapitre peut présenter quelques commandes élémentaires, mais il ne fixe ni syntaxe exhaustive ni catalogue définitif. Les commandes retenues seront documentées avec les outils et systÚmes correspondants.

PrĂ©sence de P.O.U.B.E.L.L.E. sur Discord​

P.O.U.B.E.L.L.E. est la mĂȘme entitĂ© sur Discord, Twitch et le Poste de commande. Discord lui permet toutefois des Ă©changes plus diffĂ©rĂ©s, des discussions organisĂ©es par sujet et des conversations privĂ©es qui appellent une adaptation de la longueur et du rythme de ses rĂ©ponses.

Une intervention peut notamment provenir :

  • D'une mention explicite de P.O.U.B.E.L.L.E.
  • D'une rĂ©ponse qui lui est adressĂ©e.
  • D'un message privĂ©.
  • D'une commande native ou textuelle.
  • D'une conversation Ă  laquelle elle participe dĂ©jĂ .
  • D'une arrivĂ©e sur le serveur nĂ©cessitant un accueil.
  • D'un Ă©vĂ©nement Discord pour lequel une rĂ©action est configurĂ©e.
  • D'une sollicitation du Noyau.
  • D'une initiative autorisĂ©e relevant de ses capacitĂ©s de commandant en second.

Une mention, une rĂ©ponse directe ou un message privĂ© doit normalement dĂ©clencher le traitement d'une rĂ©ponse. La rĂ©ponse reste soumise Ă  la disponibilitĂ© des composants et aux protections indispensables ; un Ă©chec technique ne doit pas ĂȘtre prĂ©sentĂ© comme une absence volontaire.

Dans les espaces configurés, le Noyau peut autoriser P.O.U.B.E.L.L.E. à intervenir spontanément sans mention. Cette possibilité doit préserver la lisibilité des échanges, éviter les répétitions et respecter la finalité du salon.

La personnalisation peut mobiliser les informations autorisées de l'Identité Horizon, la mémoire pertinente et les paramÚtres relationnels. Une information issue de Twitch, d'un message privé ou du Poste de commande ne devient pas pour autant publiable dans un salon Discord.

Messages privĂ©s​

Les conversations privées avec P.O.U.B.E.L.L.E. constituent une fonction normale de l'Extension Discord. Elles permettent notamment :

  • Un Ă©change personnel avec P.O.U.B.E.L.L.E.
  • Une notification concernant la personne.
  • Une demande de confirmation ou d'intervention.
  • Une rĂ©ponse dont le contenu ne doit pas apparaĂźtre publiquement.
  • Une orientation vers une fonction du Poste de commande.

Un message privĂ© est privĂ© par dĂ©faut. Son contenu ne doit pas ĂȘtre copiĂ©, rĂ©sumĂ© ou rĂ©vĂ©lĂ© dans un salon public sans demande explicite de la personne ou autre base clairement autorisĂ©e. Le fait qu'une information soit utilisable pour rĂ©pondre dans la conversation privĂ©e ne la rend pas publiable ailleurs.

Une conversation privée directement adressée à P.O.U.B.E.L.L.E. peut alimenter sa mémoire lorsque les rÚgles du chapitre 16 l'autorisent. Son caractÚre privé doit rester attaché au souvenir ou à la synthÚse qui en résulte.

Les messages échangés avec P.O.U.B.E.L.L.E. dans un salon configuré pour le contexte conversationnel ou la mémoire candidate peuvent également contribuer à cette mémoire. Les annonces, embeds et autres messages de diffusion en restent exclus.

Si Discord refuse la remise d'un message privĂ©, Horizon doit conserver l'Ă©chec rĂ©el. Une indication limitĂ©e peut ĂȘtre publiĂ©e sur le canal d'origine lorsqu'elle ne rĂ©vĂšle aucune information sensible. Pour une information importante, le Noyau doit permettre sa remise par le Poste de commande selon les rĂšgles de communication applicables.

Catalogue initial des Ă©vĂ©nements Discord​

Le catalogue suivant est initial et non définitif.

FamilleÉvĂ©nements ou informations concernĂ©sUtilisation possible par le Noyau
ServeurArrivée, départ ou évolution observable de l'appartenance.Identité, statut communautaire, accueil ou synchronisation.
MessagesCréation, modification, suppression, réponse ou mention.Interaction, statistique, contexte, mémoire candidate ou modération.
CommandesCommande native, commande textuelle ou interaction avec un composant.Demande structurée et conséquence autorisée.
EspacesCréation ou évolution d'un salon, fil, forum ou espace temporaire accessible.Configuration, héritage et disponibilité des capacités.
RÎlesAttribution, retrait ou évolution d'un rÎle pertinent.Responsabilité, permission, distinction ou progression.
ModérationSuppression, exclusion, bannissement, levée de sanction ou autre action disponible.Synchronisation, historique, notification ou traitement de modération.
RéactionsAjout ou retrait d'une réaction dans un espace autorisé.Interaction immédiate ou systÚme prévu, sans statistique de V1.
VocalConnexion, déconnexion, déplacement, état d'écoute et composition d'un salon admissible.Maintien du statut opérationnel « en vocal ».
NotificationsEnvoi, refus, échec ou autre résultat de remise disponible.Consolidation et éventuelle redirection.
TechniqueConnexion, déconnexion, perte d'autorisation ou capacité indisponible.Mode dégradé, alerte et reprise.

L'ajout d'un Ă©vĂ©nement au catalogue ne lui accorde aucune consĂ©quence automatique. Sa finalitĂ©, son admissibilitĂ© et ses effets doivent ĂȘtre dĂ©finis avant son utilisation.

ActivitĂ© textuelle Discord​

Les statistiques textuelles Discord reposent principalement sur les messages ordinaires admissibles et les jours actifs. Une journée devient active lorsqu'une personne envoie au moins un message ordinaire admissible ou une commande admissible.

Les rĂ©actions, sondages et Ă©vĂ©nements vocaux ne rejoignent pas le catalogue des statistiques Discord consultables dans la V1. Ils peuvent ĂȘtre observĂ©s pour une fonction immĂ©diate ou pour la progression sans devenir une analyse durable de l'activitĂ© personnelle.

Les activitĂ©s Twitch, Discord et Web restent distinctes. Une mesure Discord peut participer Ă  une rĂšgle de progression commune sans ĂȘtre additionnĂ©e artificiellement aux autres interfaces dans une statistique gĂ©nĂ©rale d'activitĂ©.

Statut opĂ©rationnel « en vocal »​

La présence vocale peut alimenter la progression sans analyser le contenu des conversations. L'Extension Discord observe uniquement les états nécessaires pour déterminer si les conditions fonctionnelles sont remplies.

Une personne obtient le statut « en vocal » lorsque :

  • Elle se trouve dans un salon vocal configurĂ© comme admissible Ă  l'XP.
  • Au moins une autre personne humaine admissible se trouve dans ce salon.
  • Elle n'est pas placĂ©e dans un salon AFK.
  • Son Ă©coute n'est pas dĂ©sactivĂ©e par une sourdine personnelle ou imposĂ©e.
  • Sa prĂ©sence reste observable par l'Extension Discord.

Un micro coupé ne retire pas le statut lorsque la personne reste en mesure d'écouter. Horizon n'exige ni prise de parole, ni caméra, ni partage d'écran et ne doit pas analyser le son, le temps de parole ou le contenu vocal.

Les bots, y compris P.O.U.B.E.L.L.E. et les éventuels bots musicaux, ne reçoivent aucun XP vocal et ne comptent pas comme seconde présence humaine. Une personne restant seule perd le statut dÚs que la condition collective n'est plus satisfaite.

Le statut est attachĂ© Ă  la prĂ©sence admissible, non Ă  un salon particulier. Un dĂ©placement entre deux salons autorisant l'XP ne doit pas interrompre inutilement la session. Une coupure brĂšve peut Ă©galement ĂȘtre absorbĂ©e par un dĂ©lai de tolĂ©rance configurable afin d'Ă©viter de fragmenter artificiellement la prĂ©sence.

Le statut « en vocal » constitue une information opérationnelle temporaire. La V1 ne crée pas, à partir de lui, une statistique consultable détaillant les horaires, interlocuteurs, salons fréquentés ou habitudes vocales de la personne.

La quantité d'XP, la fréquence d'attribution, les plafonds, les cumuls, les bonus et les corrections relÚvent du chapitre 26. Le présent chapitre définit uniquement les observations que l'extension fournit au Noyau.

RĂŽles et responsabilitĂ©s Discord​

L'Extension Discord doit observer les rÎles nécessaires au fonctionnement d'Horizon. Discord reste la source d'autorité pour leur attribution et leur retrait natifs.

Les rĂŽles dĂ©signĂ©s comme responsabilitĂ©s de ModĂ©rateur ou d'Administrateur doivent ĂȘtre rĂ©percutĂ©s rapidement afin que les permissions dĂ©pendantes soient réévaluĂ©es. Leur perte retire les capacitĂ©s correspondantes sans supprimer l'identitĂ©, le statut communautaire ou l'historique de la personne.

Au-delĂ  de ces responsabilitĂ©s, seuls les rĂŽles spĂ©ciaux associĂ©s Ă  une finalitĂ© Horizon doivent ĂȘtre synchronisĂ©s. Leur liste sera dĂ©finie ultĂ©rieurement. Un rĂŽle dĂ©coratif ou sans utilisation fonctionnelle ne doit pas ĂȘtre copiĂ© dans Horizon par dĂ©faut.

Sur instruction du Noyau, l'extension doit pouvoir attribuer ou retirer un rÎle lorsque l'opération est autorisée et techniquement possible. Cette capacité peut notamment servir à représenter certains grades, responsabilités, accÚs ou effets communautaires. La rÚgle qui décide de l'attribution reste extérieure à l'extension.

Un rÎle Discord ne devient pas automatiquement une responsabilité Twitch ou Horizon. La correspondance détaillée des permissions relÚvera du chapitre 32.

Actions Discord sortantes​

Une action sortante est une conséquence autorisée par le Noyau et confiée à l'Extension Discord.

CatégorieExemples fonctionnels
Communication publiquePublier un message, une réponse, un accueil ou une annonce.
Communication privéeRemettre une notification, une réponse ou une demande de confirmation.
Interaction structuréeRépondre à une commande ou actualiser un composant interactif.
RÎlesAttribuer ou retirer un rÎle Discord prévu.
EspacesProduire une opération limitée sur un fil, un salon ou une publication lorsque la fonction est autorisée.
ModérationExécuter une opération aprÚs vérification des permissions et confirmations applicables.

Chaque instruction doit préciser la cible, l'opération, les paramÚtres nécessaires, le contexte de serveur ou de salon et la référence du traitement. L'extension ne doit ni élargir la demande, ni changer de cible, ni choisir une opération voisine lorsqu'elle ne peut pas exécuter celle qui a été autorisée.

AprĂšs la tentative, elle retourne un rĂ©sultat exploitable. Une opĂ©ration peut notamment ĂȘtre rĂ©ussie, refusĂ©e, Ă©chouĂ©e, expirĂ©e, non applicable ou incertaine. Le Noyau consolide cet Ă©tat et dĂ©cide de la communication Ă©ventuelle.

Notifications et annonces​

Discord et le Poste de commande constituent les canaux privilégiés des notifications personnelles. Discord peut également accueillir des annonces communautaires dans les salons configurés.

Le choix entre message public, réponse limitée, message privé et Poste de commande dépend :

  • De la finalitĂ© de la communication.
  • De la personne ou du groupe concernĂ©.
  • De la sensibilitĂ© du contenu.
  • Des prĂ©fĂ©rences de notification applicables.
  • De la disponibilitĂ© rĂ©elle du canal.
  • De l'urgence et du besoin Ă©ventuel de confirmation.

Une notification importante qui ne peut pas ĂȘtre remise sur Discord doit pouvoir ĂȘtre dirigĂ©e vers le Poste de commande. L'Ă©chec Discord ne doit pas provoquer une publication publique de donnĂ©es privĂ©es.

La diffusion d'une annonce sur Twitch, Discord et le Web, son adaptation et la prévention des doublons relÚvent du chapitre 25. L'Extension Discord exécute uniquement la remise qui lui est confiée.

ModĂ©ration Discord​

L'Extension Discord observe les actions natives disponibles et exécute les instructions de modération autorisées par le Noyau.

Une suppression, une exclusion, un bannissement, une levĂ©e de sanction ou une Ă©volution comparable rĂ©alisĂ©e directement sur Discord par une personne habilitĂ©e doit ĂȘtre rĂ©percutĂ©e dans Horizon lorsqu'elle est observable. L'Ă©vĂ©nement conserve son auteur, son origine, sa cible et son rĂ©sultat dans la limite des informations fournies par Discord.

Une analyse de P.O.U.B.E.L.L.E. ou du LLM ne constitue jamais une décision de sanction. Lorsque l'interprétation des rÚgles communautaires exige un jugement, le Noyau doit solliciter une personne habilitée et attendre sa décision selon les confirmations applicables.

La politique communautaire, les motifs, les durées, les recours et la coordination avec Twitch seront définis au chapitre 29. Les actions critiques et leur confirmation relÚveront de la Partie IX.

Bots, webhooks et prĂ©vention des boucles​

Les messages et Ă©vĂ©nements provenant de bots ou de webhooks sont ignorĂ©s par dĂ©faut pour les interactions, statistiques et souvenirs. Une automatisation peut ĂȘtre explicitement autorisĂ©e lorsqu'elle possĂšde une identitĂ© technique connue, une finalitĂ© dĂ©terminĂ©e et un type d'Ă©vĂ©nement attendu.

Cette autorisation ne doit pas transformer ses messages en activité humaine. Une information provenant d'un bot peut déclencher une fonction prévue sans créer de journée active, de progression personnelle ou de souvenir attribué à une personne ordinaire.

Horizon doit reconnaĂźtre les messages et opĂ©rations qu'il a lui-mĂȘme produits. Une rĂ©ponse de P.O.U.B.E.L.L.E., une annonce ou une modification rĂ©alisĂ©e par l'extension ne doit pas ĂȘtre retraitĂ©e comme une nouvelle demande susceptible de crĂ©er une boucle.

Les rĂ©fĂ©rences d'Ă©vĂ©nement, les auteurs techniques, les messages d'origine et les traitements en cours doivent ĂȘtre utilisĂ©s pour prĂ©venir les rĂ©pĂ©titions sans supprimer une nouvelle intention rĂ©ellement exprimĂ©e par une personne.

Limites de frĂ©quence et Ă©vĂ©nements tardifs​

L'Extension Discord doit respecter les limites imposĂ©es par Discord et celles dĂ©finies par Horizon. Les restrictions doivent ĂȘtre adaptĂ©es Ă  la fonction : une annonce automatique rĂ©pĂ©titive, une commande sensible et une conversation privĂ©e lĂ©gitime ne justifient pas nĂ©cessairement la mĂȘme frĂ©quence.

Le Noyau et l'extension doivent pouvoir distinguer :

  • Un mĂȘme Ă©vĂ©nement reçu plusieurs fois.
  • Une instruction dĂ©jĂ  exĂ©cutĂ©e ou encore en cours.
  • Une interaction devenue obsolĂšte.
  • Un rĂ©sultat tardif rattachĂ© Ă  une ancienne demande.
  • Une action devenue inutile avant son exĂ©cution.
  • Une nouvelle intention explicitement rĂ©pĂ©tĂ©e par une personne autorisĂ©e.

Un événement tardif peut actualiser un état ou un historique sans justifier une réponse devenue incohérente avec la conversation actuelle.

DĂ©connexion, indisponibilitĂ© et reprise​

L'Extension Discord doit rendre son Ă©tat de disponibilitĂ© exploitable par le Noyau. Une rupture de connexion, une perte d'autorisation, une interdiction d'accĂšs Ă  un salon ou un refus de Discord ne doit pas ĂȘtre dissimulĂ©.

Lorsqu'une indisponibilité est détectée, Horizon doit autant que possible :

  1. Identifier les capacités, espaces ou flux concernés.
  2. Signaler l'état aux personnes habilitées selon sa gravité.
  3. Tenter une reconnexion contrÎlée lorsqu'elle est appropriée.
  4. Préserver les traitements encore vérifiables.
  5. Marquer les observations et résultats devenus inconnus, partiels ou incertains.
  6. Réévaluer l'utilité et les permissions avant toute reprise.

Horizon ne doit pas reconstruire artificiellement les messages, événements, rÎles ou présences vocales qu'il n'a pas pu observer. Une période d'indisponibilité générale devient non observable pour les mesures concernées.

Les actions en attente doivent ĂȘtre examinĂ©es selon leur nature :

  • Une synchronisation rĂ©pĂ©table peut ĂȘtre reprise si elle reste utile.
  • Une notification devenue trop tardive doit expirer, ĂȘtre abandonnĂ©e ou ĂȘtre redirigĂ©e selon sa finalitĂ©.
  • Une action dont le rĂ©sultat est incertain ne doit pas ĂȘtre rĂ©pĂ©tĂ©e sans vĂ©rification lorsqu'elle pourrait produire un doublon.
  • Une opĂ©ration devenue non autorisĂ©e ou sans objet doit ĂȘtre refusĂ©e ou dĂ©clarĂ©e non applicable.

Les stratégies techniques de connexion, file d'attente, surveillance et reprise seront précisées dans les chapitres consacrés aux intégrations externes et à la gestion des erreurs.

DonnĂ©es, mĂ©moire et minimisation​

L'accĂšs aux espaces Discord doit rester proportionnĂ© aux fonctions rĂ©ellement activĂ©es. Une donnĂ©e reçue ne doit ĂȘtre conservĂ©e, transmise au LLM ou rĂ©utilisĂ©e pour une autre finalitĂ© que si les rĂšgles correspondantes l'autorisent.

Il convient notamment de distinguer :

  • Le message temporairement nĂ©cessaire Ă  l'interaction.
  • La mesure textuelle issue d'une activitĂ© admissible.
  • Le statut opĂ©rationnel temporaire « en vocal ».
  • L'Ă©vĂ©nement historique qui mĂ©rite une conservation propre.
  • Le souvenir candidat soumis au cycle de la mĂ©moire.
  • La trace nĂ©cessaire Ă  l'explication d'une action.
  • L'Ă©tat natif Discord synchronisĂ© pour le fonctionnement actuel.

Ces Ă©lĂ©ments peuvent provenir d'une mĂȘme interaction sans former une copie durable unique du message original. Le Noyau sĂ©lectionne les donnĂ©es nĂ©cessaires Ă  chaque finalitĂ© et applique les rĂšgles de visibilitĂ© correspondantes.

La présence vocale ne doit pas conduire à enregistrer le son, analyser les conversations, construire une liste durable des interlocuteurs ou publier les habitudes horaires de la personne.

Garanties fonctionnelles​

L'Extension Discord doit garantir les principes suivants :

  • Discord reste l'autoritĂ© sur ses comptes, appartenances, rĂŽles, permissions, messages et sanctions natifs.
  • L'Extension traduit les Ă©changes sans devenir une autoritĂ© fonctionnelle.
  • Le Noyau contrĂŽle chaque consĂ©quence produite Ă  partir d'un Ă©vĂ©nement Discord.
  • La V1 reste centrĂ©e sur un serveur configurable sans imposer une architecture mutualisĂ©e.
  • L'application officielle de P.O.U.B.E.L.L.E. remplace le bot Discord existant dans le fonctionnement cible.
  • Chaque espace peut limiter sĂ©parĂ©ment les finalitĂ©s autorisĂ©es.
  • Un accĂšs technique ne constitue pas une autorisation gĂ©nĂ©rale d'analyse ou de conservation.
  • Tous les messages admissibles peuvent ĂȘtre traitĂ©s sans devenir un historique permanent du serveur.
  • Une modification ou suppression actualise les contextes encore contrĂŽlables sans réécrire silencieusement le passĂ©.
  • Les commandes natives constituent la forme normale des commandes de base.
  • Les commandes textuelles restent disponibles pour les usages particuliers qui les justifient.
  • Une mention, une rĂ©ponse directe ou un message privĂ© permet normalement de solliciter P.O.U.B.E.L.L.E.
  • Une intervention spontanĂ©e reste limitĂ©e aux espaces et finalitĂ©s configurĂ©s.
  • Une conversation privĂ©e ne devient pas publique du seul fait qu'Horizon peut l'utiliser.
  • Les bots et webhooks sont ignorĂ©s sauf autorisation explicite.
  • Les sorties d'Horizon ne sont pas retraitĂ©es comme de nouvelles demandes.
  • Les rĂŽles Discord ne deviennent pas automatiquement des responsabilitĂ©s Twitch ou Horizon.
  • Seuls les rĂŽles associĂ©s Ă  une finalitĂ© dĂ©clarĂ©e sont synchronisĂ©s.
  • Le statut « en vocal » exige un salon admissible et une prĂ©sence humaine collective.
  • Les nouveaux salons vocaux accessibles autorisent l'XP par dĂ©faut ; seuls les Super administrateurs et le Capitaine peuvent modifier cette configuration depuis leur espace Web.
  • Un changement de permissions Discord ne reconfigure pas automatiquement l'admissibilitĂ© Ă  l'XP.
  • Aucun contenu vocal n'est enregistrĂ© ou analysĂ© pour attribuer l'XP.
  • Le vocal ne devient pas une statistique personnelle consultable dans la V1.
  • Les rĂšgles de progression et de modĂ©ration restent extĂ©rieures Ă  l'extension.
  • Une action Discord est exĂ©cutĂ©e uniquement aprĂšs autorisation du Noyau.
  • Chaque rĂ©sultat est consolidĂ© selon ce que Discord permet rĂ©ellement d'Ă©tablir.
  • Une dĂ©connexion ne provoque ni Ă©vĂ©nement inventĂ© ni rĂ©pĂ©tition aveugle d'une action.

Limites du prĂ©sent chapitre​

Le présent chapitre ne définit pas :

  • La technologie ou la bibliothĂšque utilisĂ©e pour se connecter Ă  Discord.
  • Les intents, protocoles, Ă©vĂ©nements techniques ou formats d'API.
  • Les secrets et procĂ©dures dĂ©taillĂ©es d'autorisation de l'application.
  • La syntaxe exhaustive et le catalogue dĂ©finitif des commandes.
  • La liste finale des salons, catĂ©gories, fils ou forums configurĂ©s.
  • La liste dĂ©finitive des rĂŽles spĂ©ciaux synchronisĂ©s.
  • Les valeurs chiffrĂ©es des limites de frĂ©quence ou du dĂ©lai de tolĂ©rance vocal.
  • La quantitĂ© d'XP vocal, sa frĂ©quence, ses plafonds ou ses rĂšgles de cumul.
  • Les formules d'XP, niveaux, grades et promotions.
  • La politique de modĂ©ration, les sanctions, leurs durĂ©es et leurs recours.
  • La matrice complĂšte des permissions et actions critiques.
  • Les rĂšgles dĂ©taillĂ©es de construction et de conservation des souvenirs.
  • Les interfaces de configuration du Poste de commande.
  • Les rĂšgles de diffusion et d'adaptation entre plusieurs plateformes.
  • Le plan dĂ©taillĂ© de migration et de retrait du bot Discord actuel.
  • Les modalitĂ©s commerciales ou techniques d'une Ă©ventuelle distribution d'Horizon Ă  d'autres communautĂ©s.

L'Extension Twitch est définie au chapitre 22. Le Poste de commande et les communications entre plateformes seront précisés dans les chapitres 24 et 25. Les systÚmes fonctionnels de La TaniÚre relÚvent des chapitres 26 à 30, les permissions de la Partie IX, l'architecture logicielle de la Partie XI et la migration de la Partie XV.

Synthùse​

L'Extension Discord constitue l'adaptateur fonctionnel entre Discord et le Noyau Horizon. Elle reçoit les messages, commandes, événements, rÎles, appartenances, interactions vocales et résultats natifs, puis les transmet sans décider seule de leur signification ou de leurs conséquences. Dans l'autre sens, elle exécute uniquement les instructions Discord autorisées et retourne leur résultat réel.

La V1 dessert un serveur principal configurable. L'application officielle de P.O.U.B.E.L.L.E. remplace le bot Discord existant et manifeste la mĂȘme entitĂ© que sur Twitch et le Poste de commande. Les capacitĂ©s sont rĂ©glables par espace afin qu'un salon puisse autoriser les commandes, la modĂ©ration ou les interventions de P.O.U.B.E.L.L.E. sans ouvrir indistinctement toutes les utilisations de son contenu.

Les messages admissibles peuvent contribuer aux statistiques, au contexte, à la mémoire ou à un systÚme communautaire sans former un historique intégral permanent. Les commandes natives avec barre oblique constituent la forme normale des commandes de base, tandis que les commandes textuelles restent disponibles pour des usages particuliers. Les messages privés avec P.O.U.B.E.L.L.E. sont pleinement pris en charge et demeurent privés par défaut.

La présence dans un salon vocal admissible peut produire le statut opérationnel « en vocal » lorsque plusieurs personnes humaines sont réunies et que la personne reste en mesure d'écouter. Les nouveaux salons vocaux accessibles autorisent ce gain d'XP par défaut ; seuls les Super administrateurs et le Capitaine peuvent modifier ce paramÚtre depuis leur espace Web, y compris aprÚs un changement de permissions Discord. Ce statut permet au systÚme de progression d'attribuer de l'XP sans enregistrer la voix, mesurer le temps de parole ou créer une statistique consultable des habitudes vocales.

Enfin, Discord reste l'autorité sur ses rÎles et actions natives. Horizon synchronise seulement les rÎles associés à une finalité établie, observe les actes manuels de modération lorsqu'ils sont disponibles et maintient un fonctionnement explicable lors des erreurs, redirections et reprises.