Aller au contenu
CASSANDREBulletin Rhinocéros gris

Méthode

Lexique et mode d’emploiCritères d’analyseCadrageJournal de méthodeRoutine du lundiLeçons de classementSources

Routine du lundi

Procédure suivie par Claude Code chaque semaine, avant le bulletin du lundi. L'application n'appelle aucun modèle : c'est cette routine qui produit les fichiers qu'elle affiche.

Règles

Étapes

  1. État de l'analyste. Lancer npm run tirer. Si une production est configurée (URL_PROD), la commande copie en local les cotes, la matrice, les validations et les soumissions saisies en ligne. Sinon, l'état local est utilisé tel quel.
  2. Bilan des validations. Lancer npm run bilan. Lire le taux d'accord, les corrections, les rejets et les soumissions en attente.
  3. Leçons. Mettre à jour docs/LECONS-CLASSEMENT.md :
    • une règle datée pour chaque type d'erreur relevé par une correction ou un rejet ;
    • les signaux acceptés les plus nets comme exemples d'ancrage par rhinocéros ;
    • une note quand la confiance annoncée ne correspond pas aux résultats (par exemple, beaucoup de rejets parmi les classements à confiance forte).
  4. Requêtes. Ajuster data/collecte/requetes.json :
    • retirer ou préciser les termes qui ramènent du bruit (rejets répétés) ;
    • ajouter les termes qui auraient attrapé une nouvelle soumise par l'analyste ;
    • respecter la limite de 15 mots par requête NewsAPI.ai.
  5. Collecte. Lancer npm run collecte. Lire le résumé affiché : sources en échec, jetons NewsAPI.ai restants, solde Webz.io restant. Une collecte coûte 40 jetons NewsAPI.ai (deux par rhinocéros : l'étage mondial, puis l'étage Canada/Québec) et six requêtes Webz.io (0,36 au total). Prévenir l'analyste si le solde Webz.io passe sous 1 ou s'il reste moins de 200 jetons.
  6. Lecture. Ouvrir data/collecte/brut/<semaine>.json. Écarter les articles hors sujet, les doublons et ce qui ne concerne ni le Québec ni un canal de transmission vers le Québec.
  7. Classement. Relire docs/LECONS-CLASSEMENT.md, puis écrire data/signaux/<semaine>.json, un tableau d'objets Signal (voir lib/types.ts) :
    • rhino_id : un seul rhinocéros par signal, le plus direct ;
    • pertinence_qc : 0 aucune, 1 indirecte, 2 directe, 3 majeure. Un événement mondial sans mention du Québec vaut 1 s'il touche un canal de transmission (voyageurs, commerce, finance, information) et 2 s'il se produit chez un voisin immédiat (États-Unis, Ontario) ou dans un pays dont dépend un approvisionnement du Québec ; il n'est jamais écarté pour la seule raison qu'il se passe loin ;
    • type : declencheur pour un choc (événement soudain qui frappe ou menace), tendance pour l'évolution d'un stress chronique, puis franchissement de seuil, réponse ou ouverture ;
    • confiance : confiance de Claude dans son propre classement ;
    • a_valider : vrai pour les classements les moins sûrs (lot de vérification, 10 à 15 signaux au plus) ;
    • resume : une ou deux phrases, tirées du titre et de l'extrait seulement.
  8. Soumissions de l'analyste. Pour chaque soumission en attente, ajouter un signal avec origine: "analyste", classé à partir du titre, de la note de l'analyste et de la fiche NewsAPI.ai de l'article si elle existe. Le rhinocéros indiqué par l'analyste prime. Si rien ne permet de classer, le dire dans le compte rendu.
  9. Fiches. Pour chaque fiche existante dans data/fiches/ :
    • ajouter les nouveaux chocs et événements (clé declencheurs), datés et sourcés, chacun avec sa nature : choc pour un événement soudain qui frappe ou menace, evenement pour une décision, une annonce ou une donnée datée ;
    • mettre à jour les stress chroniques (clé stress_lents) dont une nouvelle valeur est publiée ;
    • revoir la lecture croisée chocs_stress quand un nouveau choc tombe sur un stress : dire quel stress en aggrave l'effet, à partir des seuls faits de la fiche ;
    • revoir les adjacents : marquer realise ou ferme ceux qui ont changé d'état, ajouter ceux qu'un événement de la semaine rend atteignables ;
    • ajouter une ligne au journal de la fiche et augmenter la version. Une fiche validée par l'analyste repasse en brouillon si son fond change.
  10. Bulletin. Écrire data/bulletins/<semaine>.json (type Bulletin) :
    • l'essentiel en trois points ;
    • les mouvements du troupeau, avec leurs sources ; chaque mouvement dit s'il s'agit d'un choc ou de l'évolution d'un stress chronique, et sur quels stress un choc tombe ;
    • ce qui s'est ouvert et ce qui s'est fermé dans le possible adjacent ;
    • ce que ça veut dire pour une municipalité, en gestes concrets ;
    • ce qu'il faut surveiller la semaine suivante ;
    • les limites de l'édition (sources en échec, zones non couvertes).
  11. Vérification. Lancer npm run verifier : il contrôle la forme des données, l'absence de balise HTML et de caractère invisible, et la provenance de chaque signal (présent dans la collecte de la semaine ou dans les soumissions). Lancer ensuite npm run perimetre : seuls les fichiers permis par les règles doivent avoir changé. Tout fichier hors périmètre est signalé à l'analyste avant toute chose. Ouvrir enfin l'application et relire le bulletin à l'écran.
  12. Compte rendu. Dire à l'analyste ce qui a changé, ce qui attend sa validation, ce que ses corrections ont modifié dans les règles et les requêtes, et ce qui n'a pas pu être vérifié.
  13. Publication. Ne rien valider dans git et ne rien pousser sans l'accord explicite de l'analyste. Une poussée sur main vérifie puis redéploie l'application en ligne (voir docs/DEPLOIEMENT.md).

Sources de la collecte

Source Coût Ce qu'elle fournit
Fils RSS (Radio-Canada par thème et par région, La Presse, Le Devoir, Journal de Montréal, Centre canadien pour la cybersécurité) Gratuit Titre, lien, date et une centaine de caractères. Profondeur de 1 à 7 jours selon le fil.
NewsAPI.ai, étage mondial 1 jeton par rhinocéros Titre, lien, date et texte, dans le monde entier, en français et en anglais, sans ancrage géographique ; termes cherchés dans les titres seulement et sources du premier cinquième du classement. C'est l'étage où l'on voit venir un rhinocéros avant qu'il n'atteigne le Québec. Limite : les 30 articles les plus récents seulement.
NewsAPI.ai, étage Canada/Québec 1 jeton par rhinocéros Titre, lien, date et texte de l'article, pour les médias canadiens en français et en anglais, croisés avec l'ancrage Québec. 2 000 jetons gratuits au total.
Webz.io 0,06 par requête, 10 articles par requête Médias régionaux et spécialisés du Québec que NewsAPI.ai ne remonte pas. Réservé à six rhinocéros à forte dimension municipale ou régionale (clé webz dans les requêtes) ; six requêtes au plus par collecte. Plus de bruit : pages institutionnelles, blogues, sites inconnus.
GDELT Gratuit Titre et lien. Limite de débit fréquente ; abandonné après deux refus de suite.

Les requêtes sont dans data/collecte/requetes.json.

Méthode : Routine du lundi — CASSANDRE