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.
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â
| Composante | Responsabilité principale | Limite |
|---|---|---|
| Discord | Produit les événements et exécute les opérations natives du serveur. | Ne décide pas des rÚgles internes d'Horizon. |
| Extension Discord | Reç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 Horizon | Vé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 fonctionnelle | Recevoir les événements nécessaires au fonctionnement autorisé. |
| Statistiques textuelles | Utiliser les messages admissibles pour les mesures prévues. |
| Contexte conversationnel | Utiliser temporairement les échanges pour comprendre une conversation. |
| Mémoire candidate | Permettre la sélection d'un souvenir potentiel selon les rÚgles de la mémoire. |
| Commandes | Accepter 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 annonces | Autoriser Horizon Ă publier les communications correspondantes. |
| Modération | Observer ou exécuter les fonctions nécessaires dans le périmÚtre autorisé. |
| Présence vocale admissible | Permettre 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Ă©s | Utilisation possible par le Noyau |
|---|---|---|
| Serveur | Arrivée, départ ou évolution observable de l'appartenance. | Identité, statut communautaire, accueil ou synchronisation. |
| Messages | Création, modification, suppression, réponse ou mention. | Interaction, statistique, contexte, mémoire candidate ou modération. |
| Commandes | Commande native, commande textuelle ou interaction avec un composant. | Demande structurée et conséquence autorisée. |
| Espaces | Création ou évolution d'un salon, fil, forum ou espace temporaire accessible. | Configuration, héritage et disponibilité des capacités. |
| RÎles | Attribution, retrait ou évolution d'un rÎle pertinent. | Responsabilité, permission, distinction ou progression. |
| Modération | Suppression, exclusion, bannissement, levée de sanction ou autre action disponible. | Synchronisation, historique, notification ou traitement de modération. |
| Réactions | Ajout ou retrait d'une réaction dans un espace autorisé. | Interaction immédiate ou systÚme prévu, sans statistique de V1. |
| Vocal | Connexion, déconnexion, déplacement, état d'écoute et composition d'un salon admissible. | Maintien du statut opérationnel « en vocal ». |
| Notifications | Envoi, refus, échec ou autre résultat de remise disponible. | Consolidation et éventuelle redirection. |
| Technique | Connexion, 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égorie | Exemples fonctionnels |
|---|---|
| Communication publique | Publier un message, une réponse, un accueil ou une annonce. |
| Communication privée | Remettre une notification, une réponse ou une demande de confirmation. |
| Interaction structurée | Répondre à une commande ou actualiser un composant interactif. |
| RÎles | Attribuer ou retirer un rÎle Discord prévu. |
| Espaces | Produire une opération limitée sur un fil, un salon ou une publication lorsque la fonction est autorisée. |
| Modération | Exé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 :
- Identifier les capacités, espaces ou flux concernés.
- Signaler l'état aux personnes habilitées selon sa gravité.
- Tenter une reconnexion contrÎlée lorsqu'elle est appropriée.
- Préserver les traitements encore vérifiables.
- Marquer les observations et résultats devenus inconnus, partiels ou incertains.
- 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.