Un juriste peut être d'astreinte, et on peut le lui écrire
L'annuaire qualifiait une personne par trois champs de texte libre, et un seul
atteignait la communication : la mobilisation filtrait sur role_crise, une
valeur unique par personne. L'envoi de masse ne connaissait que deux portées —
les rôles de crise, ou tout l'annuaire. Personne ne pouvait être à la fois
juriste, sur le site de Brest et d'astreinte ce week-end : le modèle n'avait de
place que pour une de ces trois vérités.
Une colonne, pas une table à côté
Le dossier de préparation est versionné par recopie de ligne et gelé au
déclenchement. Portées par un tableau sur la ligne, les étiquettes sont
recopiées avec elle : le dossier figé garde celles du jour J. Une table
d'association aurait exigé de réinventer ce versionnement — et, mal faite,
aurait montré au retour d'expérience les étiquettes d'aujourd'hui sur une
crise d'il y a trois mois.
Des noms, pas des identifiants : un dossier gelé qui renverrait à une
étiquette supprimée depuis n'afficherait plus rien.
Le vocabulaire, lui, n'est pas versionné — c'est un dictionnaire. Et il est
fermé : « comm » et « communication » qui coexistent, c'est un ciblage qui
rate quelqu'un à trois heures du matin. Ce n'est pas de l'administration,
c'est la garantie que le filtre trouve.
Deux populations, un seul langage
Les clients n'avaient nulle part où exister. L'annuaire est fait pour ceux
qu'on mobilise : versionné, imprimé au dossier papier, compté dans
l'indicateur de préparation. Y verser dix mille clients rendait ces trois
choses absurdes — et la base légale d'un client relève du contrat, pas de
l'organisation de crise.
D'où une seconde population, hors dossier versionné, avec sa base légale et sa
désinscription. Les deux partagent le vocabulaire d'étiquettes : un seul
langage de ciblage, « et » et « sauf », deux rangées de boutons plutôt qu'un
langage d'expression. On compose une liste sous pression, on ne rédige pas une
requête.
Un modèle qu'on envoie, et non qu'on recopie
Le kit portait déjà des « modèles de communication » — en pièces jointes : un
communiqué en PDF qu'on télécharge et qu'on retape pendant que le téléphone
sonne. Ils deviennent des messages qu'on charge, qu'on adapte et qu'on envoie.
Gelés avec le dossier, donc relisibles à la date d'une crise ancienne. Ce qui
part est archivé ; l'original ne bouge pas, il servira à la crise suivante.
L'envoi refuse de partir tant qu'il reste une variable que personne n'a
renseignée : un « {{contact}} » dans un message lu par des clients coûte plus
cher que la minute qu'il fait gagner.
Ce que le RGPD impose ici, et qui n'est pas du confort
Une étiquette décrit quelqu'un. L'écran de création refuse ce qui relèverait
de l'article 9 — santé, appartenance syndicale, opinions, origine — et le
refus s'explique au lieu de bloquer.
Écrire à ses clients pendant une crise cyber, c'est souvent l'obligation de
notification de l'article 34, pas une lettre d'information. Une désinscription
écarte donc des communications de confort et ne tient pas devant une
notification obligatoire — mais c'est une case qui se coche en conscience,
jamais par défaut. Et dans les deux cas la personne reste affichée avec son
motif : un destinataire retiré en silence est pire qu'un destinataire absent.
Le plafond d'envoi passe de 2 000 à 10 000. Il ne protégeait plus de la même
chose : tant qu'on n'écrivait qu'à l'annuaire, deux mille signalait une erreur
de sélection ; depuis qu'on écrit à ses clients, le nombre légitime se compte en
milliers. Le vrai garde-fou reste le décompte qu'on recopie à la main.
Éprouvé : dix-neuf assertions exécutées sur les fonctions pures — le croisement
« juriste ET astreinte » dans les deux sens, le « sauf », la résolution des
variables, et le refus de l'article 9. Vingt-quatre garanties écrites, dont
« on écrit à ses clients sans écrire aux autres ».
Non éprouvé : la migration 0024 n'a jamais été appliquée et pnpm verif n'a pas
tourné, faute de base sur la machine de travail. C'est sur la reprise des trois
anciens champs que le risque porte.
Signed-off-by:
Kourser <contact@kourser.bzh>
Co-Authored-By:
Claude Opus 5 <noreply@anthropic.com>