ADR-0178 : Navin Enterprise Agent Détection de Fraude à l'Assurance, couche produit d'investigation au-dessus du Control Plane
- Statut : proposé (2026-11-04)
- Décideurs : lead architecture, UC-03 (agent sous-traitant de la session parallèle UC-01 à UC-05)
- Références :
agent_uses_cases/03_Assurance_Detection_de_Fraude.md, décision du 2026-11-04 « Agents UC-01 à UC-05 développés en parallèle » (.navin/continuity/DECISIONS.md), ADR-0175 (produit RAG), ADR-0176 (Banking Back-Office, motif des modules génériques copiés), auditnavin-enterprise-assurance-fraude/docs/NAVIN_INTEGRATION_AUDIT.md, contratcontracts/v1/agent-product-manifest.schema.json, paquet OPAeai.assurance_fraude(deploy/policies/opa/assurance_fraude.rego), contratscontracts/v1/assurance-fraude-copilot-event.schema.jsonetcontracts/v1/assurance-fraude-action-request.schema.json, gabarit Managernavin-assurance-fraude-agent(published: false).
Contexte
L'assureur veut détecter des incohérences, des déclarations suspectes et des relations entre dossiers, puis préparer des investigations documentées pour des enquêteurs habilités, sans jamais présenter une suspicion comme une fraude établie. Le cahier des charges impose huit modules (signaux, résolution d'entités, doublons documentaires, règles de détection, réseaux de dossiers, triage d'alertes, investigation et chaîne de preuves, suites et retour d'expérience), une machine à états explicite côté serveur, un copilote borné aux faits sourcés et une interdiction absolue : aucune accusation, aucun refus d'indemnisation, aucun blocage financier et aucune dénonciation à partir d'un score.
La plateforme fournit déjà l'identité, OpenFGA, OPA, l'Action Gateway avec maker-checker, les travaux durables, le pipeline documentaire (ClamAV, YARA-X, Docling derrière le Control Plane), le RAG, la mémoire et l'observabilité (ADR-0176). Un produit générique « Fraud & Anomaly » est planifié au board mais n'existe pas dans le dépôt : ce produit n'en dépend pas.
Décision
1. Un score est un indicateur de priorité de revue, jamais une décision
Les résultats de détection (fraud_signals, detection_runs) portent un indicateur numérique, une explication par
signal (règle, version, données d'entrée, contribution) et un statut de couverture (sufficient, insufficient). Le
backend ne connaît aucune transition automatique vers un état défavorable pour un assuré, un prestataire ou un sinistre.
Les seules conséquences sont des objets internes (alerte, investigation, hypothèse, brouillon de suite) créés ou
transformés par un humain à travers l'Action Gateway. Le mot « fraude confirmée » n'apparaît qu'en
investigation_conclusions.outcome = confirmed_by_procedure, accessible uniquement par une conclusion humaine
qualifiée, revue par un second humain (maker-checker), avec sa portée exacte.
2. Modules génériques copiés, modules métier écrits
Le backend navin_fraude reprend sans modification autre que le nom du paquet, du schéma (fraude), du préfixe
(/api/v1/assurance-fraude) et du paquet OPA les modules génériques d'UC-00 : configuration, erreurs, i18n fr/en/ar,
authz, audit, jobs, worker, Control Plane, session RLS, Action Gateway (registre, contrats), connecteurs (contrats,
registre, résilience, bac à sable déterministe), observabilité, pipeline documentaire, runtime du copilote, ops. Les
modules métier signals, entities, docchecks, detection, graphs, alerts, investigations, outcomes et la
machine à états workflow sont propres au produit.
3. Machine à états versionnée et maker-checker
Alerte : new, triaged, assigned, investigating, review_pending, closed_explained, closed_inconclusive,
escalated. Investigation : opened, evidence_collection, analysis, review, decision_recorded, closed,
reopened. Le registre des transitions (navin_fraude/workflow/machine.py) porte état source, état cible, événement,
rôles autorisés, préconditions et exigence d'approbation ; une transition absente du registre répond 409
transition_not_allowed ; une version attendue différente répond 412. Les clôtures, conclusions, références SIU,
propositions de déclaration réglementaire et fusions d'entités ambiguës exigent un second humain par le même workflow
d'approbation que le back-office bancaire (OPA fraude.action.approve, jamais l'initiateur, jamais une identité
technique).
4. Dépendance des signaux et absence de triple comptage
Chaque signal porte un dependency_group dérivé de sa source (source_object_ref, document ou lot). La priorité d'une
alerte ne compte qu'une fois les signaux d'un même groupe ; l'explication affiche la dépendance. Une corrélation entre
alertes issues de la même source n'est jamais présentée comme des preuves indépendantes.
5. Données personnelles et mémoire
Les notes d'hypothèse (investigation_notes, classification restricted) ne quittent jamais le schéma : elles ne sont
ni indexées, ni envoyées en mémoire, ni exportées autrement que par un export pseudonymisé soumis à OPA
fraude.export. Les exports csv et json remplacent les identifiants de personnes par des pseudonymes dérivés d'un
hachage par tenant. Nationalité, religion, origine et caractéristiques sensibles ne sont jamais des entrées de règle :
le moteur refuse une règle qui référence un attribut hors de la liste autorisée.
6. Évaluation sans modèle appris
Aucun modèle statistique n'est entraîné ni appelé : les indicateurs sont des règles versionnées comme données et des
statistiques robustes calculées sur des lignes réelles (médiane et écart absolu médian d'un groupe comparable). La
précision et le rappel ne sont calculés que sur un jeu synthétique étiqueté et marqué comme tel
(backend/tests/datasets), jamais présentés comme performance de production.
Conséquences
- Positives : aucune automatisation d'accusation ; chaîne audit, approbation et effet séparés ; extraction future des
modules génériques en bibliothèque commune mécanique ; frontend commun piloté par
product.manifest.json. - Négatives : duplication temporaire des modules génériques entre cinq produits ; les connecteurs réels (sinistres, polices, règlements, listes externes) ne sont exercés qu'en bac à sable déterministe tant qu'un système source n'est pas raccordé ; les formats pdf, docx, xlsx restent indisponibles.
- Le gabarit
navin-assurance-fraude-agentrestepublished: falsejusqu'à validation explicite.