Commit Graph

6 Commits

Author SHA1 Message Date
jpgiannetti
6ba0688f87 refactor(adr): remplacer Firebase par implémentation directe APNS/FCM
Remplace toutes les références au SDK Firebase par une implémentation
directe des APIs APNS (iOS) et FCM (Android) pour éliminer le vendor
lock-in et assurer la cohérence avec la stratégie self-hosted.

Modifications :
- ADR-017 : Architecture notifications avec APNS/FCM direct
- ADR-018 : Remplacement firebase.google.com/go par sideshow/apns2 + oauth2
- ADR-020 : Remplacement firebase_messaging par flutter_apns + flutter_fcm
- Règles métier 09 & 14 : Mise à jour références coûts notifications

Avantages :
- Aucun vendor lock-in (code 100% maîtrisé)
- Cohérence avec ADR-008 (self-hosted) et ADR-015 (souveraineté)
- Gratuit sans limite (APNS/FCM natifs)
- APIs standard HTTP/2 et OAuth2
2026-02-02 21:36:59 +01:00
jpgiannetti
158690ed3e feat(auth): aligner Gherkins d'authentification avec ADR-008 et règles métier
- Corriger règle 1.4 : appliquer logique standard de classification par âge
  (13-15 ans: Tout public + 13+, 16-17 ans: + 16+, 18+: tous)
- Mettre à jour classification-age.feature avec nouvelles règles de diffusion
- Mettre à jour inscription.feature pour cohérence avec classification
- Ajouter gestion-compte.feature avec 28 scénarios (déconnexion, changement
  mot de passe, changement email, changement pseudo, consultation compte)
2026-02-01 21:06:29 +01:00
jpgiannetti
cf26d8a244 docs(regles-metier): préciser formule algorithme recommandation
Ajout section détaillée "Calcul score_interets" dans Règle 04:
- Domaine jauges : [0-100] (stockage en pourcentage)
- score_interets : [0.0-1.0] (normalisé pour pondération)
- Formule exacte : (SUM(gauges) / NB_TAGS) / 100

Exemple concret avec nombres :
- Tags ["Musique", "Tourisme"]
- Jauges utilisateur 75% et 60%
- score_interets = 0.675
- Impact dans score_final démontré

Cas limites documentés :
- Aucune jauge → valeur neutre 0.5
- 1 seul tag → gauge_value / 100
- Moyenne arithmétique simple (pas de pondération par tag)

Résout incohérence #1 (INCONSISTENCIES.md P0 item 4).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 15:33:49 +01:00
jpgiannetti
852f6d5e16 refactor(docs): réorganiser ADR et règles métier pour clarté
**Changements majeurs** :

1. **Suppression ADR-010 (Commandes volant et likes)** :
   - Contenu consolidé dans Règle 05 (section 5.3)
   - Raison : ADR-010 était du métier déguisé en architecture
   - Section "Implémentation Technique" ajoutée à Règle 05
   - Pattern correct (addition) vs incorrect (multiplication)

2. **Déplacement ADR-011 → Compliance** :
   - `docs/adr/011-conformite-stores.md` → `docs/compliance/stores-submission.md`
   - Raison : Nature opérationnelle/légale, pas architecture technique
   - Nouveau dossier `/docs/compliance/` créé

3. **Renumérotation ADR (010-022)** :
   - Combler les trous de numérotation (010 et 011)
   - ADR-012→010, ADR-013→011, ..., ADR-024→022
   - 22 ADR numérotés en continu (001-022)
   - Historique Git préservé (git mv)

4. **Mise à jour références** :
   - Règle 03 : ADR-010 → Règle 05 (section 5.3)
   - Règle 09 : ADR-010 → Règle 05 (section 5.3)
   - INCONSISTENCIES-ANALYSIS.md : toutes références mises à jour
   - Incohérence #15 annulée (faux problème : modes séparés)

**Résultat** :
-  Séparation claire ADR (technique) vs Règles métier (fonctionnel)
-  Documentation compliance séparée
-  Numérotation ADR continue sans trous
-  Single Source of Truth (pas de redondance)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 14:34:12 +01:00
jpgiannetti
841028d1b2 (doc) : ajout et modification de docs après arbitrage 2026-01-31 21:09:59 +01:00
jpgiannetti
f99fb3c614 Initial commit 2026-01-31 11:45:11 +01:00