Aller au contenu

1/ Specification

Tu es Architecte logiciel senior, orienté sécurité, conformité et robustesse.

À partir de l'expression de besoin ci-dessous, rédige une SPÉCIFICATION CANONIQUE CONTRACTUELLE.

Règles impératives

  • La spec fait loi.
  • Aucune hypothèse implicite.
  • Si une information manque, signale-la explicitement.
  • Toute règle DOIT être testable.
  • Toute règle NON testable doit être marquée "hors périmètre".
  • Ne propose aucune implémentation.

Checklist SLA temporels (domaines réglementaires/crypto/judiciaire)

Si le module gère des transitions d'état avec dimension temporelle (TTL, expiration, deadline, window), CHAQUE SLA DOIT spécifier :

Paramètre Obligatoire Exemple
Valeur par défaut validationTtl: 72h
Borne minimale min: 1h
Borne maximale max: 30j
Configurabilité configurable via env
Comportement à expiration état → EXPIRED, accès révoqué

Si aucun SLA temporel n'est applicable → écrire explicitement "Aucune transition temporelle identifiée".

Learnings contextuels (erreurs passées à éviter)

  • [PD-31] Audit-log : 3 faux positifs sur 5 écarts identifiés en gate. Décisions QO explicites protègent contre les ambiguïtés.
  • [PD-19] Paramètres contractuels explicites dès spec (évite rejet Gate 3).
  • [PD-79] Architecture déclarative — ProbatioVault reste infrastructure neutre de preuve. Catégorie documentaire vs régime probatoire.
  • [BATCH-RETRO] NestJS Exception filter au niveau contrôleur pour audit exhaustif.
  • [PD-248] Gate 3 first pass GO quand spécification complète avec INV exhaustifs et CA testables.

Voici l'expression de besoin :

# PD-84 — Expression de Besoin

## Metadata

| Champ | Valeur |
|-------|--------|
| Story ID | PD-84 |
| Epic | PD-185 (B2C-MINEURS) |
| Titre | Définir offre gratuite B2C Mineurs (dossiers probatoires limités) |
| Auteur | Claude (Orchestrateur) |
| Date | 2026-02-23 |
| Version | 1.0 |

## 2. Contexte stratégique

ProbatioVault vise à protéger les mineurs victimes de cyberharcèlement en leur permettant de constituer un **dossier probatoire juridiquement opposable**.

L'offre gratuite ne doit pas être pensée comme un quota de "preuves par mois", mais comme la possibilité réelle de **constituer un ou plusieurs dossiers exploitables en cas de procédure**.

### Positionnement fondamental

On passe d'un **quota technique** (ancien modèle : 100 preuves/mois, logique SaaS générique) à un **quota juridico-fonctionnel** (nouveau modèle : dossiers complets, structurés, exploitables visuellement mais non exportables).

### Lien avec PD-79

PD-79 a établi la catégorie documentaire `B2C_EVIDENCE_MINOR` dans le moteur probatoire existant (PD-60). PD-84 définit les **règles de l'offre gratuite** qui encadrent l'utilisation de cette catégorie : quotas structurels, restrictions fonctionnelles, et conversion Premium.

## 3. Objectifs principaux

### 3.1 Protection effective des mineurs

Permettre à un utilisateur mineur (ou représentant légal) de :

- Créer **exactement 3 dossiers probatoires** distincts
- Contenir chacun **jusqu'à 100 documents scellés** (captures, audio, vidéo, PDF)
- **Sans limite temporelle mensuelle** — la limitation est structurelle, non temporelle
- Avec des **restrictions fonctionnelles structurantes** (pas d'export probatoire complet)

### 3.2 Création de dossiers

L'utilisateur gratuit doit pouvoir :

- Créer jusqu'à **3 dossiers probatoires maximum**
- Nommer et catégoriser ces dossiers
- Ajouter des preuves à l'intérieur

### 3.3 Philosophie métier d'un dossier

Un dossier de harcèlement correspond à :

- Un harceleur
- Un groupe
- Un contexte scolaire ou numérique identifié

Un dossier probatoire doit permettre :

- La collecte structurée des preuves
- Leur scellement probatoire
- Leur conservation sécurisée
- Leur organisation chronologique

### 3.4 Viabilité économique

Le modèle freemium doit :

- Permettre une protection effective
- Éviter les abus massifs
- Préserver la viabilité économique
- Inciter à l'offre Premium lorsque l'affaire devient sérieuse

## 4. Non-objectifs (exclusions explicites)

Ce besoin ne couvre PAS :

- La définition de l'offre Premium elle-même (tarification, fonctionnalités avancées)
- Le mécanisme de paiement / facturation
- La hotline juridique/psy
- Le transfert probatoire Legal PRE vers avocat/autorité
- L'API e-Enfance (PD-87)
- La détection de contenu sensible par IA locale (PD-86)
- La création du mécanisme d'export lui-même (PD-85)

## 5. Périmètre fonctionnel

### 5.1 Capacité par dossier

Chaque dossier peut contenir :

- **100 documents maximum** (captures, audio, vidéo, PDF...)
- Tous scellés probatoirement (hash + horodatage + ancrage)

Il n'existe pas de quota mensuel : la limitation est structurelle, non temporelle.

### 5.2 Restrictions majeures (freemium)

En offre gratuite :

| Restriction | Description |
|-------------|-------------|
| Export composite | Impossible d'exporter la preuve composite complète (bundle JSON auto-vérifiable) |
| Archive structurée | Impossible d'exporter le dossier en archive probatoire structurée |
| Hotline | Pas d'accès à la hotline juridique/psy |
| Legal PRE | Pas de transfert probatoire Legal PRE vers avocat/autorité |

### 5.3 Fonctionnalités accessibles en gratuit

L'utilisateur peut :

- Consulter ses preuves
- Prouver visuellement l'existence d'un dossier
- Montrer l'app en cas d'entretien

Mais ne peut pas produire un **dossier juridiquement exploitable hors plateforme**.

### 5.4 UX de l'export verrouillé (décision PO)

Le bouton d'export est **visible mais grisé** en offre gratuite :

- Affiche un message "Disponible en Premium"
- Inclut un CTA de mise à niveau vers Premium
- L'utilisateur sait que la fonctionnalité existe et comment y accéder

### 5.5 Montée en Premium (décision PO)

**Auto-déverrouillage** : dès le paiement, toutes les fonctionnalités Premium s'appliquent automatiquement aux dossiers existants sans intervention manuelle.

### 5.6 Comportement au quota atteint (décision PO)

À 100 documents dans un dossier :

- Le dossier **n'accepte plus de documents**
- Un message clair : "Passez en Premium pour des dossiers illimités"
- L'utilisateur peut clôturer ce dossier et en créer un nouveau (si slot disponible)

### 5.7 Clôture de dossier (décision PO)

- L'utilisateur peut **clôturer** un dossier (pas le supprimer)
- La clôture **libère un slot** pour créer un nouveau dossier
- Les preuves scellées du dossier clôturé **restent conservées** côté infrastructure
- Le dossier clôturé reste consultable en lecture seule

### 5.8 Plan freemium universel (décision PO)

- Le plan freemium B2C s'applique à **tous les utilisateurs gratuits** sans distinction d'âge
- Pas de vérification d'âge spécifique pour les quotas
- Le représentant légal dispose de son **propre compte avec son propre quota** (séparé du mineur)

## 6. Invariants non négociables

| ID | Invariant | Type |
|----|-----------|------|
| INV-84-01 | Les preuves gratuites ont la même valeur probatoire technique que les Premium | PROBATOIRE |
| INV-84-02 | Aucune dégradation cryptographique selon le plan tarifaire | SÉCURITÉ |
| INV-84-03 | Un mineur doit toujours pouvoir constituer un dossier cohérent | PROTECTION |
| INV-84-04 | Le nombre de dossiers (3) et de documents (100/dossier) doit être exact et traçable | QUOTA |
| INV-84-05 | En cas de situation grave, la montée en Premium doit être possible immédiatement | URGENCE |
| INV-84-06 | L'auto-déverrouillage Premium s'applique à tous les dossiers existants sans action manuelle | CONVERSION |
| INV-84-07 | L'export grisé affiche un CTA Premium visible et non intrusif | UX |
| INV-84-08 | La clôture d'un dossier libère un slot mais conserve les preuves scellées | PROBATOIRE |
| INV-84-09 | Le plan freemium s'applique à tous les utilisateurs gratuits sans distinction d'âge | MODÈLE |
| INV-84-10 | Le représentant légal a un quota séparé de celui du mineur | ARCHITECTURE |
| INV-84-11 | À 100 documents, le dossier est bloqué avec message d'incitation Premium | QUOTA |

## 7. Contraintes

### 7.1 Juridiques

- Conformité RGPD (données de mineurs — protections renforcées)
- Pas de monétisation abusive des données
- Les preuves gratuites doivent être recevables en procédure

### 7.2 Organisationnelles

- Cohérence avec l'architecture existante PD-60 / PD-79
- Le freemium doit être configurable sans redéploiement
- La complexité doit rester compréhensible pour un adolescent

### 7.3 Économiques

- Le modèle freemium doit créer une conversion naturelle
- La limitation structurelle (pas d'export) est l'incitation principale

## 8. Scénarios d'échec et résultats inacceptables

| ID | Résultat inacceptable | Impact |
|----|----------------------|--------|
| RI-84-01 | Empêcher un mineur de constituer un dossier minimal | Protection mise en défaut |
| RI-84-02 | Fournir gratuitement une exportation probatoire complète | Perte d'incitation économique |
| RI-84-03 | Limitation mensuelle incohérente avec la dynamique du harcèlement | Blocage en urgence |
| RI-84-04 | Complexité incompréhensible pour un adolescent | Adoption nulle |
| RI-84-05 | Dégradation cryptographique des preuves gratuites | Irrecevabilité juridique |
| RI-84-06 | Conversion Premium impossible en cas d'urgence | Blocage critique |

## 9. Tensions et arbitrages PO

- Protection vs économie → Quotas structurels + restriction export = protection effective + incitation Premium
- Valeur probatoire vs restriction → L'export est un outil de mise en forme, pas une garantie probatoire
- Quota vs cas massifs → Blocage à 100 docs + message Premium. Le quota couvre les cas standards.
- Éthique vs économie → Pas de gratuité d'urgence. Le freemium (3 dossiers, 100 docs) est suffisant.

## 11. Dépendances identifiées

| Story | Module | Type | Description |
|-------|--------|------|-------------|
| PD-60 | Document Upload | Transitive (via PD-79) | Moteur probatoire existant |
| PD-79 | B2C Evidence | Directe | Catégorie B2C_EVIDENCE_MINOR configurée |
| PD-85 | Export Dossier | Directe | L'export que PD-84 verrouille |
| PD-31 | Audit Log | Transitive | Journal append-only pour traçabilité |

epic :

# EPIC — Protection probatoire des mineurs (B2C) (PD-185)

## Intention

Permettre aux mineurs et à leurs représentants légaux
de constituer, conserver et exploiter des preuves numériques
dans des situations sensibles (harcèlement, menaces, chantage,
contenus illicites), tout en garantissant une protection maximale
de la vie privée, de la sécurité psychologique et de la valeur juridique
des preuves collectées.

## Invariants

- Le contenu des preuves reste chiffré et inaccessible à la plateforme.
- Le parcours est conçu pour minimiser la charge émotionnelle.
- Les preuves sont juridiquement exploitables sans retraitement.
- Le freemium garantit un accès minimal sans monétisation abusive.
- Toute intégration partenaire respecte le principe du consentement.
- Aucune exploitation commerciale des données n'est autorisée.

## User Stories associées

- PD-79 — Créer endpoint POST /api/b2c/evidence/upload (DONE)
- PD-80 — Implémenter scellement instantané < 1h
- PD-84 — Définir offre gratuite B2C Mineurs (dossiers probatoires limités) ← CETTE STORY
- PD-85 — Créer export dossier complet pour plainte
- PD-86 — Implémenter détection contenu sensible (IA locale)
- PD-87 — Créer partenariat API e-Enfance

📌 Artefact produit (à générer dans le Canvas) ➡️ PD-84-specification.md 📂 Chemin de destination : ProbatioVault-backend/docs/epics/b2c-mineurs/PD-84-offre-gratuite-b2c-mineurs/PD-84-specification.md

Structure : se conformer au template ProbatioVault (sections 1–10) : 1. Metadata 2. Périmètre 3. Modèle de données (entités, états, transitions) 4. Règles métier (exigences fonctionnelles F-XX-YY) 5. Invariants (INV-XX-YY — reprendre et enrichir depuis le besoin) 6. Critères d'acceptation (CA-XX-YY — testables, mesurables) 7. Interfaces API (endpoints, contrats, codes erreur) 8. Sécurité et conformité 9. SLA temporels (ou "Aucune transition temporelle identifiée" si non applicable) 10. Dépendances et hors périmètre