HARCHAtelier
Skip to main content
HARCHAtelier
Se connecterTarifs
Demander une démo
TRANSPARENCE D'INGÉNIERIE— catalogue de cas de stress, pas un verrou

La Matrice de Résilience.
100 façons dont le système ne doit pas échouer.

Une plateforme de veille médiatique pour le marché marocain affronte un spectre spécifique de modes de défaillance : sarcasme en darija, code-switching, déduplication des dépêches AFP, homonymes OFAC, challenges Cloudflare sur Hespress, vélocité de bad-buzz le week-end, articles supprimés qui doivent rester archivés juridiquement. Cette page catalogue les 100 cas qui comptent et montre — en direct, dans votre navigateur — comment le moteur gère chacun.

Essayer les démos en direct ↓Parcourir les 100 cas
△
CADRAGE HONNÊTE

Vous avez peut-être vu ce catalogue présenté comme un « verrou » qui piège l'agent jusqu'à la réussite de 100/100 tests. Ce cadrage n'est pas réel — il n'existe ni exécuteur ni sessionCanEnd variable. Nous le traitons pour ce qu'il est : une référence de robustesse sérieuse. La barre de couverture ci-dessous est honnête. 17 cas sont interactifs ici ; le reste est traité architecturalement, planifié ou sur la feuille de route.

Démos interactives en direct

Chaque démo exécute le vrai moteur — aucun mock. Modifiez l'entrée, cliquez, consultez le verdict et les signaux internes utilisés par le moteur.

#021#022#023#026#027

Moteur de sentiment Darija + multilingue

Sentiment par lexique avec détection du sarcasme inversant la polarité, code-switching FR/AR, gestion contextuelle des idiomes, expansion des fautes SMS et pondération de récence par clause.

Cliquez sur « Analyser le sentiment » pour lancer le moteur.
#029

Sanitizer d'injection de prompt

Détection à motifs des tentatives « ignore previous », détournement de rôle, injection de balises et extraction de prompt. L'entrée malveillante est bloquée avant d'atteindre le LLM — le modèle ne voit qu'un littéral sûr.

Cliquez sur « Scanner l'entrée » pour évaluer.
#030

Score structurel de fake-news

Risque de viralité/fakeness à partir de signaux structurels : ratio de majuscules, densité d'emojis agressifs, densité de points d'exclamation, vocabulaire sensationnel, mots tout en majuscules. Pas un jugement de contenu — un score de risque structurel.

Cliquez sur « Scorer la fakeness » pour évaluer.
#044

Correspondance floue de noms (Jaro-Winkler)

Correspondance Jaro-Winkler sensible à la translittération — normalise Mohammed/Mohamed, Al/El, traits d'union/espaces, puis calcule la similarité. Utilisée pour le screening OFAC et la déduplication d'entités.

Cliquez sur « Comparer les noms » pour calculer la similarité.
#043

Désambiguïsation des faux positifs OFAC

Une correspondance de nom ne suffit pas à constituer un hit sanctions. Corroborer avec date de naissance, nationalité et profession. Un homonyme (même nom, personne différente) est signalé comme FAUX POSITIF, non escaladé.

Cliquez sur « Screener contre la watchlist » pour lancer.
#097

Résolution d'homonyme de CEO par mandat

Quand un CEO actuel et un ancien partagent un nom, déterminer auquel un article fait référence en confrontant la date de publication à la fenêtre de mandat.

Essayez 2026-06-15 (CEO actuel) ou 2005-03-10 (ancien CEO).
#013

Déduplication des dépêches AFP

Simhash de contenu 64 bits avec seuil de distance de Hamming (≤4 bits ≈ quasi identique). Quand 5 médias publient la même dépêche AFP à la virgule près, seule la première est ingérée — les autres sont liées en doublons.

Le fixture contient 2 dépêches canoniques préchargées. Essayez une copie quasi identique.
#098

Archive légale des articles supprimés

Quand un article est publié puis retiré 5 minutes plus tard, HarchAtelier ne le supprime jamais. La capture immuable du contenu est conservée avec un tag « Retiré », reliée dans un registre chaîné par hash — infalsifiable mathématiquement.

Ingérez un article, puis marquez-le Retiré — notez qu'il n'est jamais supprimé.
#099

Détection d'astroturfing / campagne coordonnée

12 comptes fraîchement créés (<30 jours), publiant tous des avis négatifs quasi identiques en quelques minutes. Le moteur combine l'âge des comptes, la vélocité en rafale, le contenu quasi dupliqué et des signaux de faible crédibilité en un score unique de risque de coordination.

Cliquez pour charger un fixture de campagne coordonnée et le scorer.
#006

Garde de profondeur de requête récursive

Un client malveillant envoie une requête à imbrication infinie de style GraphQL pour épuiser les ressources du serveur. La garde de profondeur compte l'imbrication des accolades et rejette tout dépassement de la limite (10 par défaut) avant le parsing.

Cliquez pour mesurer la profondeur d'imbrication.
#009

Rate limiter à fenêtre glissante

Les tentatives de brute-force sur le login sont plafonnées à 5 par 60 s et par identité. À partir de la 6e, HTTP 429 avec en-tête Retry-After. Le limiter utilise une fenêtre glissante (pas fixe), donc les rafales juste après le basculement de fenêtre restent bornées.

× espacées d'1 s
Simule N tentatives de login espacées d'1 s.
#042

Effondrement de tempête d'alertes

1 000 mentions négatives arrivent en 5 minutes pour la même entité. Au lieu de 1 000 notifications, le regroupeur basé sur la vélocité émet UNE macro-alerte avec un titre représentatif, la sévérité du pic et la liste des sources.

sur une fenêtre de 5 min
Simule N mentions négatives contre une entité.
#048

Minuteur d'escalade (L1 → L2 → Comex)

Une alerte critique non acquittée escalade : après 30 min elle alerte le management (L2), après 60 min le Comex (L3). Acquitter dans le SLA gèle l'escalade.

min
Essayez 15 min (L1), 45 min (L2), 75 min (L3).

Le catalogue complet des 100 cas

Chaque cas que HarchAtelier doit gérer sans planter, sans fuite de données, sans hallucination. Statut honnête — pas de 100% factice. 17 cas sont interactifs plus haut ; le reste est couvert architecturalement, planifié ou sur la feuille de route.

Couverture des 100 cas45% livrés · 55% en attente
Démo en direct(17)
Architectural(28)
Planifié(32)
Feuille de route(23)

Bloc 1 — Multi-tenant & sécurité

#001ARCHITECTURAL
Header tenant_id corrompu
Rejeter les valeurs tenant_id malformées à la frontière de l'API, avant qu'elles n'atteignent la logique métier.
#002PLANIFIÉ
Race condition à la suppression d'un workspace
Deux admins suppriment le même workspace à la même milliseconde — garde de concurrence optimiste via jeton de version.
#003ARCHITECTURAL
IDOR — accès inter-tenant à un rapport
La Banque A tente de lire le rapport RP de la Banque B par manipulation d'URL — vérification de propriété à chaque lecture.
#004PLANIFIÉ
JWT expiré en cours d'export
Un export PDF de 500 pages survit au jeton de l'utilisateur — continuation par refresh token ou jeton d'export signé.
#005ARCHITECTURAL
Élévation de privilèges RBAC
Viewer → Org Admin par manipulation JSON — revalidation serveur du rôle à chaque mutation.
#006DÉMO EN DIRECT
DoS par profondeur de requête récursive
Requête à imbrication infinie de style GraphQL qui fait tomber le serveur — garde de profondeur.
#007PLANIFIÉ
Révocation d'accès en cours de WebSocket
Employé licencié pendant qu'une session WS est ouverte — revalidation de session à chaque message.
#008ARCHITECTURAL
Fuite de clé API dans les logs
Le logger masque automatiquement les secrets (jetons Bearer, clés API, PII).
#009DÉMO EN DIRECT
Brute-force sur le login
Rate limit strict + backoff exponentiel + verrouillage.
#010ARCHITECTURAL
Journal d'audit infalsifiable
Journal d'audit append-only chaîné par hash — mathématiquement inaltérable.

Bloc 2 — Ingestion & pipeline

#011ARCHITECTURAL
Encodage RSS non-UTF8
Détection automatique iconv + chaîne de repli (ISO-8859-1, Windows-1256 pour l'arabe).
#012FEUILLE DE ROUTE
50k articles en 10s
Buffer avec backpressure — jamais de perte, débordement vers une file disque en cas de surcapacité.
#013DÉMO EN DIRECT
Déduplication de dépêche AFP sur 5 médias
Simhash de contenu 64 bits + seuil de Hamming pour fusionner les articles quasi identiques.
#014ARCHITECTURAL
OOM sur payload texte de 50MB
Limite stricte de 2MB + parsing en streaming, rejet des payloads surdimensionnés à la frontière.
#015FEUILLE DE ROUTE
Défaillance Postgres en cours d'écriture
File dead-letter + livraison au-moins-une-fois avec clés d'idempotence.
#016FEUILLE DE ROUTE
Conflit de mapping Elasticsearch
Des templates d'index explicites rejettent les changements de type dynamiques.
#017PLANIFIÉ
Interruption réseau en cours de scrape
Scrapers reprenables avec checkpoints content-range.
#018FEUILLE DE ROUTE
JS Challenge Cloudflare sur Hespress
Repli navigateur headless + délai de crawl poli.
#019FEUILLE DE ROUTE
Bannissement IP par honeypot Reddit
Sortie résidentielle rotative + détection de pièges comportementale.
#020FEUILLE DE ROUTE
OCR sur tableaux PDF scannés
Tesseract + reconstruction de structure de tableau.

Bloc 3 — NLP, Darija & sentiment

#021DÉMO EN DIRECT
Sarcasme darija — « Tbarkellah 3la service, mchaw lflous »
Détection du motif marqueur positif + réalité négative → inverse la polarité globale en NÉGATIF.
#022DÉMO EN DIRECT
Code-switching FR/AR — « khayb bzaf, 0/10 »
Lexique unifié FR + Darija avec scoring en écriture mixte.
#023DÉMO EN DIRECT
Faux positif — « C'est de la bombe »
La détection contextuelle d'idiomes fait passer « bombe » de négatif-violence à positif-argot.
#024PLANIFIÉ
Entité homonyme — Orange (télécom) vs Orange (fruit)
Désambiguïsation par fenêtre de contexte avec vocabulaire sectoriel.
#025FEUILLE DE ROUTE
Double négation
Un parseur de négation dépendanciel gère « Ce n'est pas que le produit n'est pas mauvais ».
#026DÉMO EN DIRECT
Fautes de frappe SMS — « Bnk » → « Banque »
Dictionnaire d'expansion des abréviations appliqué avant le scoring de sentiment.
#027DÉMO EN DIRECT
Bascule de sentiment en cours de texte
Scoring par clause avec pondération de récence — « commence bien, finit mal » → NÉGATIF final.
#028PLANIFIÉ
Timeout LLM à 15s
Streaming + deadline douce à 8s avec réponse de repli en cache.
#029DÉMO EN DIRECT
Injection de prompt via commentaire Facebook
Un sanitizer à motifs bloque « ignore previous instructions » et le détournement de rôle.
#030DÉMO EN DIRECT
Structure fake-news (majuscules + emojis)
Score de viralité structurel : ratio de majuscules, densité d'emojis agressifs, vocabulaire sensationnel.

Bloc 4 — WhatsApp entrant

#031PLANIFIÉ
Message vocal de 5 min au lieu de texte
Transcription ASR (z-ai-web-dev-sdk) → sentiment sur le transcript.
#032PLANIFIÉ
Photo d'un article papier
OCR par VLM + extraction de structure.
#033ARCHITECTURAL
Spam — 50 messages en 10s
Rate limit par conversation, le bot ne répond qu'une fois.
#034PLANIFIÉ
Timeout de webhook Twilio
Acquittement asynchrone + motif Twilio StatusCallback.
#035PLANIFIÉ
Lien cassé ou paywallé
Sonde HEAD + détecteur de paywall + message de repli gracieux.
#036ARCHITECTURAL
Numéro WhatsApp inconnu
Parcours d'onboarding + mode démo pour les expéditeurs non reconnus.
#037PLANIFIÉ
Contexte persistant — « Et la BMCE ? »
État de conversation avec report des références d'entités.
#038FEUILLE DE ROUTE
Blocage par politique Twilio
Classifieur de politique avant envoi + repli sur template.
#039ARCHITECTURAL
vCard / contact entrant
Parsing + accusé de réception, sans appel LLM.
#040ARCHITECTURAL
Désinscription RGPD via « Stop »
Honorer immédiatement les mots-clés Stop/Unsubscribe, journaliser le retrait de consentement.

Bloc 5 — Risk Radar & alerting

#041PLANIFIÉ
Alerte critique contournant le Ne pas déranger
Routage conditionné par sévérité — la sévérité Critique contourne le Ne pas déranger de l'utilisateur.
#042DÉMO EN DIRECT
Tempête — 1000 mentions → 1 macro-alerte
Regroupement basé sur la vélocité en une seule notification avec titre représentatif.
#043DÉMO EN DIRECT
Homonyme faux positif OFAC
Correspondance de nom + corroboration date de naissance/nationalité/profession → distinguer l'homonyme de l'individu sanctionné.
#044DÉMO EN DIRECT
Correspondance floue — Mohammed Al-Fayed vs Mohamed El Fayed
Jaro-Winkler sur des noms normalisés par translittération.
#045ARCHITECTURAL
Règle booléenne paradoxale (A AND NOT A)
Le validateur de règles rejette les requêtes insatisfaisables à l'enregistrement.
#046FEUILLE DE ROUTE
Traçabilité d'audit d'une chute ESG de 50 pts
Chaque changement de score embarque un diff des facteurs contributeurs.
#047PLANIFIÉ
Suppression d'alerte en cours de distribution
Marqueur tombstone — les notifications en vol embarquent un jeton de rappel.
#048DÉMO EN DIRECT
Escalade après 30min de silence L1
Minuteur SLA à deux niveaux avec escalade automatique vers le Comex.
#049FEUILLE DE ROUTE
Détection automatique de fin de crise
Décroissance de vélocité + normalisation du sentiment → résolution automatique de l'alerte.
#050FEUILLE DE ROUTE
Matrice de risque avec données manquantes
Imputation bayésienne avec bande de confiance.

Bloc 6 — Recherche & indexation

#051FEUILLE DE ROUTE
1B docs en <200ms
Index inversé + ranking avec arrêt précoce.
#052PLANIFIÉ
Expansion de requête à 50 synonymes
Graphe de synonymes avec élagage vers les top-k expansions.
#053PLANIFIÉ
Pertinence vs fraîcheur sur requêtes génériques
Un routeur par classe de requête choisit le bon mélange de signaux.
#054ARCHITECTURAL
Surlignage dans un texte de 10k mots
Surlignage par extrait, pas sur tout le document.
#055ARCHITECTURAL
Divergence de mapping
Schéma explicite + rejet en cas de conflit.
#056FEUILLE DE ROUTE
Réindexation sans downtime
Bascule d'index blue/green avec double écriture.
#057PLANIFIÉ
Filtre géo polygonal (carte du Maroc)
Requête d'appartenance à un polygone GeoJSON.
#058PLANIFIÉ
Agrégation multi-niveaux
Agrégation composite avec cache.
#059ARCHITECTURAL
Pagination profonde (page 50k)
Curseur search-after, pas d'offset.
#060ARCHITECTURAL
Censure de terme légalement bloqué
Blocklist appliquée au parsing de la requête.

Bloc 7 — Frontend & UX

#061PLANIFIÉ
Gel de graphique à 50k points
Downsampling + rendu canvas WebGL + virtualisation.
#062PLANIFIÉ
Déconnexion WS silencieuse
Reconnexion par backoff exponentiel avec jitter.
#063ARCHITECTURAL
20 clics sur « Generate Report »
Clé d'idempotence + verrouillage du bouton.
#064ARCHITECTURAL
Changement de thème en cours d'animation
L'animation respecte prefers-color-scheme + annulation RAF.
#065ARCHITECTURAL
Quota LocalStorage dépassé
Éviction LRU + repli try/catch.
#066ARCHITECTURAL
Resize violent de fenêtre sur le dashboard
Debounce ResizeObserver + reflow responsive.
#067PLANIFIÉ
Désynchronisation d'état avec la base
Clés d'invalidation TanStack Query + rollback optimiste.
#068PLANIFIÉ
Navigation clavier complète sur la matrice de données
Rôles ARIA de grille + roving tabindex.
#069PLANIFIÉ
Connexion 3G instable
Compression des réponses + skeleton + retry.
#070ARCHITECTURAL
Décalage d'hydration SSR
IDs stables + suppressHydrationWarning si nécessaire.

Bloc 8 — Reporting & export

#071PLANIFIÉ
PDF vectoriel de 500 pages
Rendu React-PDF en streaming, sans matérialisation complète du DOM.
#072PLANIFIÉ
Timeout Chromium headless
Rendu page par page + retry en cas d'échec.
#073ARCHITECTURAL
CSV avec virgules/guillemets/retours ligne
Échappage conforme RFC-4180.
#074PLANIFIÉ
Filigrane dynamique pour traçabilité
Filigrane par destinataire avec ID utilisateur + horodatage.
#075FEUILLE DE ROUTE
Le LLM hallucine des statistiques financières
Ancrage par citation — chaque chiffre doit remonter à une ligne source.
#076PLANIFIÉ
Échec du cron vendredi → reprise samedi
Job idempotent avec reprise par checkpoint.
#077ARCHITECTURAL
Pièce jointe e-mail de 25MB+
Bascule automatique vers un lien signé sécurisé.
#078FEUILLE DE ROUTE
Export API de 1TB
Streaming NDJSON + pagination par curseur.
#079ARCHITECTURAL
Révocation d'un lien de rapport public
URL signée à TTL court + kill-switch.
#080ARCHITECTURAL
Changement de template en cours de rendu
Snapshot de la version du template dans la payload du job.

Bloc 9 — Infrastructure & facturation

#081PLANIFIÉ
Quota API dépassé (429 + overage)
Bucket par tenant + hook de facturation d'overage.
#082FEUILLE DE ROUTE
Échec de mise à jour de carte Stripe
Période de grâce + e-mails de dunning.
#083PLANIFIÉ
Downgrade Enterprise → Basic
Gating des fonctionnalités par plan, sans perte de données.
#084FEUILLE DE ROUTE
Redis en panne — l'API survit via Postgres
Repli cache-aside vers la base avec circuit breaker.
#085ARCHITECTURAL
Changement d'API cassant
Versionnement d'URL /v1/ → /v2/ avec fenêtre de dépréciation.
#086PLANIFIÉ
Webhook Stripe dupliqué ou désordonné
Clé d'idempotence sur l'ID d'événement + tri par date de création.
#087FEUILLE DE ROUTE
Split-brain de base de données
Quorum + jetons de fencing.
#088FEUILLE DE ROUTE
Pod OOMKilled en cours de tâche
Checkpoint de job + replanification sur un autre nœud.
#089FEUILLE DE ROUTE
Changement de structure tarifaire LLM
Registre de coûts abstrait par fournisseur.
#090PLANIFIÉ
Anonymisation RGPD à 3 ans
Job planifié de hachage des PII.

Bloc 10 — Cas limites métier

#091FEUILLE DE ROUTE
Fusion d'entités M&A sans casser l'historique
Graphe d'entités avec arêtes successor-of, historique préservé.
#092PLANIFIÉ
Pondération 10000x pour influenceur vérifié
Pondération d'autorité dynamique dans le score réputationnel.
#093ARCHITECTURAL
0 mention pendant 3 mois → ligne plate
Les séries creuses rendent un zéro plat, sans plantage.
#094ARCHITECTURAL
Client demandant de bloquer des articles le concernant
La politique d'intégrité refuse — les données sont immuables.
#095PLANIFIÉ
Détection de vélocité de bad-buzz un dimanche à 3h du matin
Anomalie en z-score sur la vélocité glissante, sans seuil de volume.
#096FEUILLE DE ROUTE
Article multilingue imbriqué (FR citant de l'AR avec des termes EN)
Détection de langue par segment + lexique routé.
#097DÉMO EN DIRECT
Homonyme de CEO (actuel vs ancien)
Résolution par fenêtre de mandat selon la date de l'article.
#098DÉMO EN DIRECT
Article supprimé 5min après publication
Archive légale immuable avec tag « Retiré » + chaîne de hash.
#099DÉMO EN DIRECT
Astroturfing — comptes récents
Heuristiques d'âge de compte + vélocité en rafale + contenu quasi identique.
#100FEUILLE DE ROUTE
Cygne noir — toutes les entités flambent simultanément
Auto-calibration : l'anomalie systémique supprime les alertes de tempête par entité.

La résilience est une fonctionnalité produit, pas une checklist.

Chaque cas présenté ici correspond à un mode de défaillance réel qu'un client marocain de veille médiatique rencontrera. Nous publions ce catalogue ouvertement — comme nous publions d'où viennent nos données et comment fonctionne notre scoring — parce que la confiance dans une plateforme d'intelligence se gagne en montrant les coutures, pas en les cachant.

Vérification…
Initialisation…
HARCH|Atelier

Intelligence de Réputation IA — Afrique et monde francophone.

atelier@harchcorp.com·+212 684 440 682
→ harchcorp.com
Navigation
ProduitsSolutionsRenforcement DécisionnelTarifsDemander une démoÀ propos
Produits
Plateforme d'Intelligence RéputationnelleIntégrations API & MCPRapports d'AnalyseDashboards AvancésNewsletters & Briefings
Outils
★ Rapport Phare 2026Classement Harch 100Risk TrackerConsoleModèles de RapportsAudit Institutionnel
Ressources
Toutes les ressourcesRapport Phare 2026Rapport Médias 2026Études de casMéthodologieFAQ
Entreprise
À propos de nousCarrièresPartenairesContactCentre de ConfianceMatrice de RésilienceMentions légales
8 marchés francophones couverts
FR
France
Paris · Lyon · Marseille
MA
Maroc
Casablanca · Rabat · Marrakech
BE
Belgique
Bruxelles · Anvers
CH
Suisse
Genève · Lausanne · Zurich
QC
Québec
Montréal · Québec
TN
Tunisie
Tunis · Sfax
LB
Liban
Beyrouth
SN
Sénégal
Dakar
Building in Public, depuis 2026 · Casablanca, Maroc
Harch Atelier est une activité de Harch Corp · Virement bancaire