ADR-0183 : Navin Enterprise Agent Gestion des Sinistres, couche produit d'assurance au-dessus du Control Plane
- Statut : proposé le 2026-11-04, en attente de validation de l'utilisateur (voir « Points à valider »)
- Date : 2026-11-04
- Portée : nouveau projet
navin-enterprise-assurance-sinistres/(backend FastAPInavin_sinistres, workers, intégration Navin, pas de frontend propre : le socle frontend partagé de l'ADR-0180 porte l'interface), types additifs du modèle OpenFGA (deploy/policies/openfga/model.fga, typeclaims_instanceet objetsclaim,settlement_version,payment_request,expert_mission,claim_closure,claim_document), paquet OPAeai.assurance_sinistres(deploy/policies/opa/assurance_sinistres.rego, cléeai.config.assurance_sinistresdedata.json), contratscontracts/v1/assurance-sinistres-action-request.schema.jsonetcontracts/v1/assurance-sinistres-copilot-event.schema.json, gabarit d'agent du Navin Manager préparé mais non publié (navin-assurance-sinistres-agent) - Documents liés : ADR-0101 (politique de licences), ADR-0103 (vLLM et LiteLLM), ADR-0108 (Opik), ADR-0166 (ClamAV et
YARA-X), ADR-0173 (séparation du Manager et d'Enterprise), ADR-0174 (mémoire Mem0 et Cognee), ADR-0175 (Navin
Enterprise RAG Agent), ADR-0176 (Banking Back-Office, implémentation de référence dont les modules génériques sont
copiés), ADR-0180 (socle frontend des agents sectoriels), décision du 2026-11-04 (
.navin/continuity/DECISIONS.md, un seul frontend, backend dérivé par copie), cahier des chargesagent_uses_cases/01_Assurance_Gestion_des_Sinistres.md
Contexte
Le client demande un agent de gestion des sinistres de bout en bout : déclaration et constitution du dossier, triage et segmentation, vérification des garanties à la date du fait générateur contre le système de gestion des polices, expertise et justificatifs, signaux de fraude, provisions et propositions d'indemnisation, ordres de paiement, recours et clôture, communications aux assurés, copilote IA pour le gestionnaire. Le cahier des charges impose que l'IA ne règle, ne paie, ne refuse, n'accepte et ne clôture jamais un sinistre : chaque effet passe par la passerelle d'actions avec un humain dans la boucle et la confirmation du système source.
La plateforme fournit déjà sous gouvernance : l'identité et le contexte tenant et projet, la passerelle d'outils avec décision OPA, les approbations avec séparation des tâches et clé d'idempotence, les délégations datées et révocables, l'analyse obligatoire des fichiers (quarantaine, ClamAV, YARA-X), la mémoire Mem0 et Cognee, les bases de connaissance et l'audit chaîné. Le produit UC-00 (ADR-0176) a montré comment une couche produit s'appuie sur ces briques : modules génériques (config, erreurs, i18n, authz, audit, jobs, worker, Control Plane client, session RLS, passerelle d'actions, connecteurs, observabilité, pipeline documentaire, runtime du copilote) copiés tels quels, modules métier propres au domaine.
Décision
- Backend dérivé par copie : le paquet
navin_sinistresreprend sans modification (hors nom de paquet) les modules génériques denavin_backoffice; seuls les modules métier (sinistres, garanties, expertises, règlements, paiements, recours, clôtures, communications) et leur machine à états sont écrits pour ce produit. Aucun frontend :product.manifest.jsondécrit menus, entités, colonnes, actions d'écriture et invites du copilote au socle partagé de l'ADR-0180. - Identité fixe :
product_idassurance-sinistres, préfixe/api/v1/assurance-sinistres, ports de développement web 3473, API 8472, Redis 6393, schéma PostgreSQLsinistres, rôlesnavin_sinistres_appetnavin_sinistres_workersans BYPASSRLS. - Projection, jamais référentiel :
sinistres.policy_versionsest une projection datée du système de gestion des polices (COMMENT ON TABLE) ; le moteur de garanties ne cite qu'une clause présente dans la version importée et conclutundeterminedquand la version à la date du fait générateur manque. - Argent :
numeric(20, 6)et chaînes décimales partout, un flottant est refusé à la liaison ; une devise par ligne ; aucune somme entre devises ; ordre contractuel des opérations (dommage retenu, franchise, plafond, acomptes confirmés, déjà payé) enregistré dans chaque version de règlement aveccalculation_ref. - Paiements :
payment_requestsne passe àconfirmedoupartially_confirmedque sur relecture du système de paiement (external_payment_ref,confirmed_at,confirmed_amountobligatoires par contrainte) ; une réponse absente donneunknown_pending_confirmation, jamais un échec ni un succès local ; les acomptes ne sont déduits que s'ils sont confirmés (payment_allocations). - Maker-checker en données : OPA
eai.assurance_sinistreslit la matrice de délégation de la section 15 depuisdata.json(opérations, rôles préparateurs et approbateurs, paliers par devise, quorum, urgence) ; OpenFGA portecan_approve ... but not makeretcan_review ... but not uploader; les contraintesapprover_not_makerdes tables doublent la règle. Le paquet exposedecision.appliesvrai pour ses seules actions. - Signaux de fraude : des indicateurs horodatés qui ouvrent une revue humaine, jamais une décision ; ils ne sont jamais exposés au déclarant ni à l'expert.
- Documents : même pipeline que UC-00 (quarantaine, ClamAV et YARA-X obligatoires, Docling, revue manuelle quand
l'extraction est ambiguë) ; une estimation visuelle n'est jamais retenue comme montant indemnisable (contrainte
visual_estimate_never_retained). - Copilote : runtime copié (SSE, Last-Event-ID, gouvernance injection, DLP, budget, chiffres) ; outils de lecture
sous RLS, outils de préparation via la passerelle, outils à effet de bord après approbation par un autre humain
que le propriétaire du run ; contrat d'événement dérivé de
banking-copilot-eventavec la même enveloppe. - Connecteurs : contrats de capacités déclarés, bac à sable déterministe
navin-sandboxrefusé en mode production, jamais une confirmation simulée présentée comme celle de la source.
Conséquences
- Positives : réutilisation intégrale des briques gouvernées, isolation tenant par RLS sur toutes les tables, matrice de délégation modifiable sans redéploiement, traçabilité complète des calculs et des décisions.
- Négatives : la copie des modules génériques crée une dette de synchronisation avec UC-00 (consignée dans
KNOWN_LIMITATIONS.md) ; les connecteurs réels (gestion des polices, paiement, réseau d'experts) restent à configurer par le client ; le gabarit n'est pas publié tant que le pipeline d'artefacts n'a pas tourné.
Points à valider
- Paliers de montants et quorums par devise de
eai.config.assurance_sinistres(valeurs de départ, à ajuster par le client). - Liste des branches activées par instance et règles par branche.
- Délai de réconciliation des paiements
unknown_pending_confirmationavant alerte.
Alternatives écartées
- Un frontend par produit : refusé par la décision du 2026-11-04.
- Un statut
paidposé localement à la soumission : refusé, seule la source confirme. - Un moteur de garanties à base de LLM : refusé, le moteur est déterministe et versionné, le LLM explique.
Plan de réalisation
Sous-plan de la tâche t-806252bc (S1 audit et ADR, S2 contrats et politiques, S3 fondation, S4 et S5 modules métier, S6 machine à états, S7 documents, S8 copilote, S9 sécurité, S10 recette, S11 manifeste et gabarit, S12 docs).