VESICA
PROSYS_PRO_4Brouillon

SYS_PRO_4 — Notifications Mattermost (system & business)

Processus· Direction des Systèmes d'Information (DSI) — Système & Infrastructure IA· émetteur VESICA SI

SYS_PRO_4 — Notifications Mattermost (system & business)

Manuel LÉGER. Processus implémenté (Lot 5, amendé 6d/6e/6f/6g/6h). Source du quoi : 07_Reference_Systeme.md §B2.2/§B2.4/§B2.5/§B2.6/§B2.7. Source du pourquoi : ADR-034, ADR-040, ADR-023. [CORPUS]

Objet et finalité

Fournir une architecture de notification unique et réutilisable par tous les workflows : router un event_type vers la bonne famille (system/business), le bon canal Mattermost, la bonne severity et le bon template, puis poster le message. C'est le substrat de communication descendante du jumeau numérique (humain informé par les agents). [CORPUS]

Finalité : tout événement notable (erreur infra, étape de dossier, alerte modèle, récap d'ingestion…) atterrit au bon endroit, au bon format, sans que chaque workflow ne réinvente la mécanique. Règle d'or transverse : payload du nœud ↔ variables du template documentés au même endroit. [CORPUS]

Pilote

  • Direction pilote : SYS — Système.
  • Acteurs : sub-workflows notify_system, notify_business, mattermost_post_message, mattermost_channel_create, get_routage_notif_config. Pas d'agent LLM. Supervision : gérant. [CORPUS]

Déclencheurs (entrées)

  • Appel Execute Workflow de notify_system ou notify_business par n'importe quel workflow. [CORPUS]
  • INPUT notify_system : { event_type, severity?, payload{} }. [CORPUS]
  • INPUT notify_business : { event_type, dossier_id, channel_id, agent_source?, severity?, payload{} } (le channel_id est fourni par l'appelant). [CORPUS]

Sorties et livrables

  • Message posté dans Mattermost (canal système ou canal dossier). OUTPUT : { success, channel_id, post_id, error }. [CORPUS]
  • 2 canaux système permanents : system-errors, system-activity (+ system-stats réservé). [CORPUS]
  • Canaux dossier créés/réutilisés par mattermost_channel_create (nommage YYMMDD-NN-CLIENT-VILLE). [CORPUS]

Acteurs

ActeurRôle
notify_systemnotifs famille system (erreurs, infra) → canaux système [CORPUS]
notify_businessnotifs famille business (dossier) → canal du dossier [CORPUS]
mattermost_post_messageutilitaire bas niveau (post via nœud natif) [CORPUS]
mattermost_channel_createcrée/réutilise un canal dossier + INSERT canaux_mattermost [CORPUS]
get_routage_notif_configDAL routage (event→famille/canal/severity/template) [CORPUS]
Bot jarfish-bot (mattermost_bot_prod)identité d'émission [CORPUS]

Logigramme (étapes macro)

[appelant] notify_system { event_type, severity?, payload }   (ou notify_business { …, dossier_id, channel_id })
   │
[1] get_routage_notif_config  → résout { famille, canal_cible, severity_default, template_path }
   │
[2] Charge le template .md (dédié nom_event.md OU passthrough default.md — ADR-040)
   │
[3] Interpole {{payload.xxx}}, {{severity}}, {{event_type}} (+ {{dossier_id}},{{agent_source}} en business)
   │
[4] mattermost_post_message  → POST dans le canal résolu
   │
[5] Output { success, channel_id, post_id, error }

Détail : 07 §B2.6/§B2.7/§B2.2. [CORPUS]

Procédures et instructions rattachées

  • SYS_PQ_4 — Procédure de notification (familles, canaux, templates, anti-récursion, renvois).
  • SYS_IQ_4 — Instruction : émettre une notification (mapping event_type, RÈGLE D'OR payload↔template, 2 modes ADR-040) — embryon de catalogue.
  • SYS_FQ_4 — Formulaire : table de routage des event_type (config routage_notifs.json).

Interfaces amont/aval (handoffs)

  • Amont : tout workflow (SYS et métier). En particulier : SYS_PRO_3 (event model_expiring), SYS_PRO_5 (events workflow_error, llm_error), SYS_PRO_1 (échec → llm_error), ingestion (ingestion_corpus), agents métier Lot 9+ (dossier_etape, production_agent). [CORPUS]
  • Aval : Mattermost (interface humaine). À terme : panneau in-app via API Mattermost (ADR-039), jamais lecture directe de la DB Mattermost. [CORPUS]
  • Anti-récursion (ADR-034) : la chaîne de livraison de notif ne porte jamais error_handler comme Error Workflow → handoff implicite avec SYS_PRO_5. [CORPUS]

Indicateurs (KPI)

KPIDéfinitionSource
Taux de notif livréessuccess=true / totalOUTPUT workflows [STANDARD]
Placeholders non substituésdétection de {{…}} résiduels (violation RÈGLE D'OR)revue manuelle / log [CORPUS]
Volume notif par event_type / canalcomptagehistorique n8n [STANDARD]

Enregistrements

  • Messages Mattermost (canaux système + dossier). [CORPUS]
  • dossiers.canaux_mattermost (lien dossier↔canal, écrit par mattermost_channel_create) — enregistrement partagé, propriété ADV/Lot 9 ; SYS fournit le primitif. [CORPUS]
  • Historique d'exécutions n8n. [CORPUS]

Cas d'usage rattachés (UC-* du Recueil + nouveaux)

  • UC-SYS-06 (nouveau) — Notifier une erreur infra au canal system-errors (depuis n'importe quel workflow). [CORPUS]
  • UC-SYS-07 (nouveau) — Notifier une étape de dossier au canal du dossier (dossier_etape, famille business). [CORPUS]
  • Liés : UC-E04 (alerte attente labo > seuil → notif), UC-D01 (récap ingestion ingestion_corpus). [CORPUS]
  • Réservé : UC lié à P20 (stats_quotidiennes / canal system-stats, post-projet). [CORPUS]

Roadmap (PQ/IQ/FQ restant à développer)

  • Cadrage notifs riches (post-6g) : préfixe [CATEGORIE] + emoji + attachment coloré par severity pour system-errors/system-activity ; threads-par-étape pour canaux dossier (threads ≠ étiquettes — anti-pattern). ADR de cadrage à acter. → futur SYS_IQ_4_2. [CORPUS]
  • mattermost_categorize_channel (P30) : ranger un canal dans une catégorie de sidebar (HTTP Request, per-user) — primitif post-projet. [CORPUS]
  • Aligner payload↔template sync_model_capabilities (P30 doublon 04) : workflow_success_summary.md n'interpole pas tous les champs émis (violation RÈGLE D'OR à corriger). [CORPUS]
  • Panneau in-app (ADR-039) : surface de lecture des notifications via API (web-app), différé. [CORPUS]
  • Réserver/activer system-stats + stats_quotidiennes (P20) quand assez de données opérationnelles. [CORPUS]

Documents enfants (3)