ajout capitalisation dans workflows

This commit is contained in:
MaksTinyWorkshop
2026-03-10 13:30:32 +01:00
parent f7a55b1113
commit 1b2ed6ff4e
2 changed files with 174 additions and 3 deletions

View File

@@ -7,7 +7,7 @@ damélioration de la base de connaissance globale (`Lead_tech`).
Le contenu de ce fichier **n'est pas encore validé**.
Une fois relues et confirmées, les propositions doivent être déplacées
Une fois relues et confirmées, les propositions doivent être **déplacées**
vers les fichiers appropriés :
- `10_backend_patterns_valides.md`
@@ -76,11 +76,76 @@ Sinon `request.user` peut être undefined dans les guards suivants.
2. Les propositions doivent rester **courtes et factuelles**.
3. La validation et l'intégration finale dans `Lead_tech`
sont faites **manuellement**.
4. Une fois intégrée, la proposition doit être **supprimée
de ce fichier**.
4. Une fois intégrée, la proposition doit être **supprimée de ce fichier**.
5. La structure de ce fichier est **restaurée à son état initial** (voir `70_templates/template_a_capitaliser.md`).
2026-03-10 — app-alexandrie
FILE_UPDATE_PROPOSAL
Fichier cible : 10_backend_patterns_valides.md
Pourquoi :
Pattern réutilisable pour exposer une progression V1 sans ouvrir trop tôt un domaine `achievements` ou `analytics`, tout en gardant une couture propre vers des contributions futures.
Proposition :
## Progression V1 calculée sans persistance dédiée
Pour une feature de progression minimum viable :
- garder l'agrégat dans le domaine métier déjà source de vérité (`content`, `billing`, etc.)
- calculer les compteurs période (`thisWeek`, `thisMonth`) côté base avec `count`/agrégations filtrées
- centraliser le catalogue d'objectifs en code explicite et testable
- prévoir une couture zéro-safe pour les sources futures (`contributions`, `posts`, etc.) au lieu d'inventer les tables en avance
Évite le scope creep vers un module `achievements` prématuré et garde un contrat stable.
2026-03-10 — app-alexandrie
FILE_UPDATE_PROPOSAL
Fichier cible : 10_frontend_patterns_valides.md
Pourquoi :
Pattern frontend/mobile utile pour brancher un écran récapitulatif serveur sans dupliquer la logique réseau dans l'écran et sans navigation impérative via `store.getState()`.
Proposition :
## Écran récapitulatif branché sur store de domaine existant
Quand une vue récapitulative dépend d'un domaine déjà présent :
- étendre le `service` et le `store` existants au lieu de créer un nouveau domaine artificiel
- laisser l'écran purement déclaratif avec états `loading / error / empty / nominal`
- déclencher le chargement via `useEffect` et actions du store
- réserver `refresh` à une action idempotente du store
- ajouter le point d'entrée depuis l'écran parent naturel (`library`, `profile`, etc.) au lieu de refondre la navigation globale
Réduit les régressions et garde le comportement async testable.
---
2026-03-10 — app-alexandrie
FILE_UPDATE_PROPOSAL
Fichier cible : 10_frontend_patterns_valides.md
Pourquoi :
Le pull-to-refresh mobile sur listes paginées a besoin dune vraie idempotence côté store, sinon on crée des doublons et des courses réseau invisibles. Le pattern a été validé ici avec Zustand sans introduire de lib de cache serveur.
Proposition :
Pattern "Refresh idempotent sur store de liste paginée" : conserver une promesse de refresh en vol partagée, refuser les refresh concurrents, remplacer atomiquement la liste à la fin du refresh, et dédupliquer les items par identifiant au merge des pages suivantes.
---
2026-03-10 — app-alexandrie
FILE_UPDATE_PROPOSAL
Fichier cible : 10_frontend_risques_et_vigilance.md
Pourquoi :
Un écran gated par des droits distants peut tomber dans un faux état `loading` infini si lerreur de chargement des entitlements laisse les données à `null` et relance automatiquement leffet. Le défaut a été détecté en review sur la Bibliothèque mobile.
Proposition :
Risque "Loading infini sur écran gated" : si un écran dépend dun store dentitlements ou dautorisations, distinguer explicitement `loading`, `error`, `ready`, et bloquer les retries automatiques en boucle après erreur tant quun retry utilisateur ou une nouvelle condition dentrée na pas eu lieu.
# Rôle dans l'architecture
```