Refonte Structure

This commit is contained in:
MaksTinyWorkshop
2026-03-25 08:32:13 +01:00
parent d8a947eb79
commit 9b7af9f1b0
55 changed files with 4743 additions and 4906 deletions

View File

@@ -0,0 +1,11 @@
# Product — Patterns validés — Index
Patterns de cadrage produit, priorisation et analyse fonctionnelle validés sur des projets réels.
Avant toute proposition produit, identifie le fichier dont le nom et la description matchent le domaine traité, puis lis-le.
---
| Fichier | Domaine | Entrées clés |
|---------|---------|--------------|
| `general.md` | Cadrage, roadmap, architecture fonctionnelle V1 | Epic UI Fondation prérequis bloquant, Progression V1 sans module dédié |

View File

@@ -0,0 +1,72 @@
# Product — Patterns validés : Général
> Extrait de la base de connaissance Lead_tech. Voir `knowledge/product/patterns/README.md` pour l'index complet.
---
<a id="pattern-epic-ui-fondation"></a>
## Pattern : Epic UI Fondation — prérequis bloquant avant Epic 1
- Objectif : éviter les régressions et la dette de migration générées par l'insertion tardive d'un epic de fondation UI.
- Contexte : app mobile ou SPA avec un design system à créer (design tokens + composants primitifs).
- Quand l'utiliser : dès qu'un epic design tokens / composants de base existe dans la roadmap.
- Quand l'éviter : si le design ad-hoc est un choix délibéré assumé (prototype jetable, MVP ultra-contraint).
- Avantage :
- les screens livrés ultérieurement utilisent d'emblée les bons tokens et composants
- pas de double système d'espacement ni de migration de composants partagés en cours de route
- les composants primitifs (Button, FilterChip...) sont stables avant d'être utilisés partout
- Limites / vigilance :
- si l'insertion tardive est inévitable, prévoir une story de smoke test explicite sur tous les parcours critiques refactorisés
- Validé le : 19-03-2026
- Contexte produit : App mobile / early stage — app-alexandrie rétrospective Epic 0
### Description
Un Epic "UI Fondation" inséré après Epic 1 (ou plus tard) génère trois risques spécifiques :
1. **Régression sur screens livrés** : les fichiers refactorisés avaient déjà une logique métier validée — toute modification structurelle rouvre un risque de régression.
2. **Composants partagés modifiés** : migrer `Button`, `FilterChip` de `TouchableOpacity` vers `Pressable` après utilisation partout est un breaking change API silencieux.
3. **Double système de tokens** : les screens livrés avaient adopté les anciennes constantes — la migration est une dette qui s'accumule à chaque epic.
**Règle** : L'Epic UI Fondation (tokens + composants primitifs) est un **prérequis bloquant de Epic 1**. Il doit être fait en tout premier, avant toute logique métier — ou ne pas être fait du tout (accepter le design ad-hoc).
### Checklist (insertion tardive inévitable)
- [ ] Story de smoke test explicite sur tous les parcours critiques touchés
- [ ] Grep systématique des usages des composants modifiés avant merge
- [ ] Vérification que l'ancien système de tokens est entièrement purgé (`grep from '@/constants/theme'`)
---
<a id="pattern-progression-v1-sans-module"></a>
## Pattern : Progression V1 sans module dédié — calcul depuis la source de vérité
- Objectif : exposer une feature de progression/gamification sans créer prématurément un domaine `achievements` ou `analytics`.
- Contexte : produit early-stage avec une source de vérité existante (`content`, `billing`, `posts`...) et un besoin de progression MVP.
- Quand l'utiliser : première itération d'une feature de progression, objectifs, stats utilisateur.
- Quand l'éviter : si les compteurs sont déjà complexes, multi-sources ou nécessitent une persistance d'état (ex : streaks, badges conditionnels).
- Avantage :
- zéro scope creep — pas de tables `achievements` ni de service dédié en avance de phase
- logique explicite et testable en code, pas en DB
- couture propre vers un module `achievements` réel si le besoin se confirme
- Limites / vigilance :
- ne convient pas si les calculs de période sont coûteux à chaque appel — à surveiller sur le volume
- la couture vers les sources futures doit être prévue dès le départ (pas de calcul hardcodé sur une seule table)
- Validé le : 10-03-2026
- Contexte produit : App mobile / early stage — app-alexandrie
### Description
Plutôt que d'ouvrir un domaine `achievements` ou `analytics` dès la V1 :
1. **Garder l'agrégat dans le domaine métier source de vérité** (`content`, `billing`, etc.)
2. **Calculer les compteurs de période** (`thisWeek`, `thisMonth`) directement en base via `count` / agrégations filtrées
3. **Centraliser le catalogue d'objectifs en code** — explicite, versionné, testable
4. **Prévoir des coutures zéro-safe** pour les sources futures (`contributions`, `posts`...) sans inventer les tables en avance
### Checklist
- [ ] Aucune table `achievements` / `progress` créée sans besoin confirmé
- [ ] Compteurs calculés depuis la source de vérité existante
- [ ] Catalogue d'objectifs en code (pas en DB)
- [ ] Interface de sortie stable même si les sources de données évoluent