fokan/docs/pilier-contrats.md
Gautier Stefanini 1d902b21b0 Le garde-fou du rejeu comptait les jours, pas les rejeux
Un rejeu par mois était une carence de 30 jours : elle refusait le second
passage à qui déménage la veille d'acheter une voiture, et ne bornait
jamais le total, qui restait de douze par an. Cinq rejeux par période
d'abonnement (D-060) permettent les deux corrections le même jour et
font attendre le sixième.

`quiz_rejoue_le` devient `quiz_rejeux` : on garde la liste des dates,
jamais le verdict. Le quota se recompte à chaque lecture contre la
période payée en cours, donc la reconduction annuelle le relève sans
qu'aucun code ne tourne à cette date. Repli sur une année glissante pour
les foyers sans période connue, et aucune date de reprise annoncée à un
abonnement résilié en fin de période.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 11:43:23 +00:00

12 KiB

Contrats — un chantier transverse, pas un pilier

Document de référence des contrats. Ce n'est pas un pilier : le § 5.6 du cadrage l'interdit explicitement — « pas de pilier Contrats dans l'interface, chaque contrat vit dans le pilier qu'il sert ». Ce document existe parce que les contrats traversent les piliers — cinq depuis D-019 —, portent le gisement d'affiliation (§ 10.4), et sont la seule saisie que le produit s'autorise à demander.

Statut : rédigé le 28 juillet 2026, à l'occasion de l'audit complet. Les faits juridiques cités portent leur source ; les items marqués n'ont pas été vérifiés.


État d'avancement (28 juillet 2026)

Livré, et fermé par décision. Huit types de contrats, huit fiches, un écran de quiz dédié.

Type déclarable Fiche Pilier de rattachement
assurance_habitation assurance-habitation-echeance maison
assurance_auto assurance-auto-echeance véhicules
assurance_animale assurance-animale-echeance animaux
assurance_emprunteur assurance-emprunteur-echeance papiers
mutuelle mutuelle-sante-echeance papiers
box box-internet-echeance papiers
mobile forfait-mobile-echeance papiers
salle_de_sport salle-de-sport-echeance papiers

Correspondance vérifiée à l'audit : aucun type déclarable sans fiche, aucune fiche sans type déclarable.

Trois décisions successives ont façonné ce chantier (decisions.md) :

  • D-005 — le mur e-mail post-quiz est retiré ; le contrat n'est plus une monnaie d'échange.
  • D-006 — les contrats rejoignent le quiz, dans un écran dédié à la suite des papiers, filtré par pertinence.
  • D-007 — l'opt-in post-quiz est retiré. C'est aujourd'hui le seul moment de déclaration. Un contrat ignoré à l'écran 8, ou devenu pertinent après coup (nouveau véhicule, nouvel animal), n'est plus déclarable du tout. La redite perçue a pesé plus lourd que la couverture perdue.

1. Ce qu'on demande, et ce qu'on refuse de demander

Un seul champ par contrat sélectionné : « Échéance approximative ? » (un mois, « je ne sais pas » servi par défaut).

L'assureur n'est pas demandé. C'est la règle qui tient tout l'écran : il ne sert aucune inférence, et le quiz ne demande jamais ce qui ne déclenche pas une échéance. C'est aussi ce qui rend l'écran tenable en dix secondes.

Conséquence à assumer : sans l'assureur, on ne peut ni pré-remplir une lettre de résiliation, ni personnaliser un lien d'affiliation, ni détecter un doublon. La détection par transfert de PDF (phase 2) est ce qui rattrape cette limite — pas une question de plus.

C'est la seule exception à « aucune saisie obligatoire » du § 4.2, et elle reste facultative dans les faits : ignorer l'écran entier est un parcours valide.


2. Le socle juridique — pourquoi une échéance de contrat est une vraie échéance

Ce n'est pas du confort déguisé : le droit français crée des fenêtres que presque personne ne connaît, et une fenêtre manquée coûte une année pleine au tarif non renégocié.

Règle Ce qu'elle ouvre Source
Résiliation infra-annuelle (dite loi Hamon) Auto, habitation, affinitaire : résiliation à tout moment après 1 an de contrat, sans frais Code des assurances art. L113-15-2 ; economie.gouv.fr
Obligation d'information de l'échéance (dite loi Chatel) L'assureur doit rappeler la date de résiliation ; à défaut, le contrat devient résiliable Code des assurances art. L113-15-1
Loi Lemoine Assurance emprunteur : résiliation à tout moment dès la signature de l'offre de prêt Loi n° 2022-270 du 28 février 2022 ; economie.gouv.fr
Résiliation « en 3 clics » Depuis le 1er juin 2023, tout contrat souscriptible en ligne doit être résiliable en quelques clics — même s'il a été souscrit en agence ou par téléphone service-public.gouv.fr A16455 et A16599
Complémentaire santé Résiliation infra-annuelle également ouverte après 1 an economie.gouv.fr
Services financiers à distance De nouvelles règles de protection s'appliquent à compter du 19 juin 2026 aux souscriptions à distance de services financiers, assurance comprise signalé par economie.gouv.frà instruire, portée exacte non vérifiée

L'assurance emprunteur reste le premier gisement (§ 10.4), pour une raison arithmétique : c'est le seul contrat où l'économie se compte en milliers d'euros sur la durée d'un prêt, et le seul résiliable à tout moment — donc le seul dont l'échéance n'est pas une contrainte mais un prétexte.


3. Ce qui manque

3.1 Le trou ouvert par D-007 · comblé le 28/07/2026 par le rejeu du quiz

Mise à jour du 28/07/2026 : plutôt que de rouvrir la déclaration uniquement dans le récap annuel (la piste envisagée ci-dessous, conservée pour la trace du raisonnement), le porteur de projet a préféré une réponse plus générale — le quiz reste la référence unique pour mettre à jour les déclarations d'un foyer. Un abonné peut désormais le rejouer à la demande (/quiz?rejouer=<id>, garde-fou de cinq rejeux par période d'abonnement depuis D-060 — un par mois jusqu'au 07/08/2026), ses réponses précédentes préremplies et modifiables. Un contrat oublié, ou devenu pertinent après coup, se déclare donc de nouveau à l'écran 7 lors d'un rejeu — le trou de D-007 est comblé sans usage ponctuel du récap annuel. Implémentation : src/engine/quiz-rejeu.ts, POST /api/quiz (paramètre householdId), GET /api/foyer/[id]/quiz (préremplissage). Voir l'audit § 0 pour la réserve sur les assets remplacés (véhicules, animaux, contrats perdent leur état d'échéance à chaque rejeu).

D-007 a fermé le rattrapage post-quiz en connaissance de cause. Le prix est explicite : un foyer qui achète une voiture six mois après son quiz ne pouvait plus déclarer son assurance auto. Jamais — jusqu'au rejeu ci-dessus.

C'était le bon arbitrage face à une redite perçue. Mais deux choses ont changé depuis :

  1. le hub payant existe et se visite (§ 10.2) ;
  2. le récap annuel est prévu comme organe de rétention (§ 9.4, § 10.2).

Le récap annuel est le bon endroit pour rouvrir la déclaration : une fois par an, au moment où le foyer regarde déjà son année, sans redite possible puisque douze mois ont passé. Ce n'est ni un opt-in post-quiz ni un formulaire à tenir — c'est une ligne dans un document qu'il ouvre de toute façon.

À trancher, et cela demande une décision de cadrage, pas seulement du code.

3.2 Le rangement dans les piliers · tranché le 28/07/2026

Cinq fiches sur huit sont classées pilier: papiers faute de pilier « foyer » (§ 5.6 : « rattachés au foyer »). Le pilier Papiers devient un fourre-tout dont l'intitulé ne prépare personne à y trouver son forfait mobile.

Trois sorties étaient possibles :

  • assumer et renommer dans la copie du hub (« Papiers & contrats »), sans toucher aux fiches ;
  • redistribuer ce qui a un rattachement naturel : la box internet est un équipement du logement (→ maison), la salle de sport et la mutuelle n'en ont aucun ;
  • ne rien faire et attendre les données d'usage.

Décision du porteur de projet (28/07/2026) : les contrats restent dans le pilier Papiers. Aucune fiche déplacée, aucun changement de copie demandé pour l'instant.

La première est la moins coûteuse et ne casse aucun identifiant stable (invariant n° 1).

3.3 La fenêtre est un mois, pas une date · limite structurelle

computeWindow traite echeance_mois avec confidence: "connue" (src/engine/windows.ts:312). C'est généreux : le foyer a donné un mois approximatif, pas une date. La conséquence n'est pas cosmétique — connue donne 21 jours d'avance au scheduler et, pour un enjeu legal+assurance, ouvre le passe-droit hors budget (horsBudget, src/engine/notifications.ts:120).

Concrètement, aucune fiche de contrat n'est classée legal+assurance aujourd'hui, donc le passe-droit ne se déclenche pas. Mais la marche est là, et elle se franchirait par une simple modification de fiche.

À arbitrer : soit echeance_mois produit une fenêtre estimee (ce qu'elle est réellement), soit on documente pourquoi connue est le bon choix ici. La première réponse semble plus juste — le foyer a lui-même répondu « approximativement ».

Relevé le 30/07/2026 — l'arbitrage a un revers qu'il faut peser (audit-2026-07-30.md § 1.3) : sans mois déclaré, une fiche de contrat retombe en fenêtre libre, et une fenêtre libre ne déclenche jamais de mail (AVANCE_JOURS.libre === null). Les huit fiches de contrats figurent donc parmi les 16 fiches du produit qui se taisent faute d'ancre — et c'est le seul groupe dont le foyer détient déjà la clé, en une réponse à l'écran 7.

Ce qui veut dire deux choses. D'une part, passer echeance_mois en estimee ne coûte pas de couverture (les 21 jours d'avance de connue deviennent 0, mais 0 reste très au-dessus de « jamais »). D'autre part, l'écart de valeur entre un contrat déclaré et un contrat passé est total, pas graduel — ce qui rend l'écran 7 plus décisif que sa place dans le quiz ne le suggère.

3.4 La détection par transfert de PDF · phase 2, inchangé

Le § 5.6 le pose : « en phase 2, transférer le PDF du contrat = le renseigner ». C'est ce qui rend l'assureur connaissable sans l'avoir demandé, donc ce qui débloque la personnalisation d'affiliation et la lettre de résiliation pré-remplie. Rien à faire avant la bannette.


4. Affiliation — l'état des lieux

Le § 10.4 fixe trois règles non négociables : uniquement dans les rappels où l'action sert le foyer, toujours affichée (« lien partenaire — c'est ce qui finance la veille »), proportionnelle à la confiance donnée.

Aujourd'hui : les huit fiches portent des actions avec des slot_affiliation nommés (assurance_animale, chauffagiste, veterinaire…), et ce sont des liens neutres, comme prévu « dès le jour 1 ». Aucun contrat commercial n'existe, aucun lien commissionné n'est posé. La bascule est triviale par construction : les slots sont dans les fiches, pas dans le code.

Ce qui manque avant de basculer : la mention obligatoire dans la copie du mail (elle n'est écrite nulle part), et la structure juridique — c'est une décision ouverte du § 17, sans échéance.

Un point de vigilance qui n'est écrit nulle part : le § 5 de l'audit relève que les liens sortants fuiteraient l'URL du foyer en Referer faute d'en-tête Referrer-Policy. Sur des liens partenaires, une URL-capacité qui fuit vers un tiers commercial n'est pas un détail de configuration.


5. Ce qui reste ouvert

  1. Rouvrir la déclaration (§ 3.1) — fait le 28/07/2026, via le rejeu du quiz plutôt que le récap annuel.
  2. Le rangement dans les piliers (§ 3.2) — tranché le 28/07/2026 : les contrats restent dans le pilier Papiers, aucune fiche déplacée.
  3. echeance_mois : connue ou estimee ? (§ 3.3) — une ligne de code, une vraie question de fond. Toujours ouvert.
  4. La mention d'affiliation dans la copy des mails (§ 4) — à écrire avant toute bascule commissionnée. Toujours ouvert.
  5. Referrer-Policy sur les liens d'action (§ 4) — fait le 28/07/2026 (next.config.ts, audit S6).
  6. Les règles du 19 juin 2026 sur les services financiers à distance (§ 2) — portée à instruire ; elles peuvent créer de nouvelles fenêtres à surveiller.