docs: add RETROSPECTIVE_V0702, placeholder V0_703, update SCOPE_CONTROL
This commit is contained in:
parent
6293a88476
commit
f4f5f32c2d
4 changed files with 65 additions and 27 deletions
|
|
@ -1,10 +1,10 @@
|
||||||
# Règles de Développement UI - Projet SaaS
|
# Règles de Développement UI - Projet SaaS
|
||||||
|
|
||||||
## 0. Scope v0.702 (priorité absolue)
|
## 0. Scope v0.703 (priorité absolue)
|
||||||
|
|
||||||
- **Référence** : `docs/V0_702_RELEASE_SCOPE.md` et `docs/SCOPE_CONTROL.md`
|
- **Référence** : `docs/V0_703_RELEASE_SCOPE.md` et `docs/SCOPE_CONTROL.md`
|
||||||
- Avant toute modification : vérifier si le changement est **dans le scope v0.702**
|
- Avant toute modification : vérifier si le changement est **dans le scope v0.703**
|
||||||
- **Autorisé v0.702** : À définir (voir V0_702_RELEASE_SCOPE.md)
|
- **Autorisé v0.703** : À définir (voir V0_703_RELEASE_SCOPE.md)
|
||||||
- **Interdit** : nouvelles routes/pages hors scope, nouvelles dépendances (sauf correctif sécurité)
|
- **Interdit** : nouvelles routes/pages hors scope, nouvelles dépendances (sauf correctif sécurité)
|
||||||
- En cas de doute : ne pas ajouter. Créer une issue pour une version ultérieure.
|
- En cas de doute : ne pas ajouter. Créer une issue pour une version ultérieure.
|
||||||
|
|
||||||
|
|
|
||||||
19
docs/RETROSPECTIVE_V0702.md
Normal file
19
docs/RETROSPECTIVE_V0702.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Rétrospective v0.702 — Reviews, Factures, Remboursements & Product Detail
|
||||||
|
|
||||||
|
## Ce qui a bien fonctionné
|
||||||
|
|
||||||
|
- **ProductDetailPage** : Route /marketplace/products/:id avec lazy loading, intégration cartStore.addItem(product, license)
|
||||||
|
- **MSW handlers** : Reviews (GET list, POST create) et invoice PDF mockés pour Storybook
|
||||||
|
- **Tests backend** : review_test.go (6 cas), invoice_test.go (4 cas), refund_test.go (6 cas) avec SQLite in-memory
|
||||||
|
- **API Reference** : Sections Reviews, Invoices, Refunds documentées avec exemples curl
|
||||||
|
- **Error story** : ProductDetailView.stories.tsx avec Error state (ErrorDisplay)
|
||||||
|
|
||||||
|
## Points d'attention
|
||||||
|
|
||||||
|
- **cartStore.addItem** : Signature (product, license?) — ProductDetailPage transmet correctement via onAddToCart
|
||||||
|
- **ListReviews pagination** : Ordre created_at DESC — tests vérifient l'ordre
|
||||||
|
|
||||||
|
## Prochaines étapes (v0.703)
|
||||||
|
|
||||||
|
- À définir selon V0_703_RELEASE_SCOPE.md
|
||||||
|
- Pistes : Go Live (streaming vidéo), promotions dynamiques
|
||||||
|
|
@ -1,23 +1,23 @@
|
||||||
# Contrôle du scope — Anti-scope-creep
|
# Contrôle du scope — Anti-scope-creep
|
||||||
|
|
||||||
**Objectif** : Éviter toute dérive de scope. Chaque modification doit être intentionnelle et traçable.
|
**Objectif** : Éviter toute dérive de scope. Chaque modification doit être intentionnelle et traçable.
|
||||||
**Référence active** : [V0_702_RELEASE_SCOPE.md](V0_702_RELEASE_SCOPE.md)
|
**Référence active** : [V0_703_RELEASE_SCOPE.md](V0_703_RELEASE_SCOPE.md)
|
||||||
**Version précédente** : [V0_701_RELEASE_SCOPE.md](archive/V0_701_RELEASE_SCOPE.md)
|
**Version précédente** : [V0_702_RELEASE_SCOPE.md](archive/V0_702_RELEASE_SCOPE.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. Règle d'or
|
## 1. Règle d'or
|
||||||
|
|
||||||
> **Avant d'ajouter quoi que ce soit : vérifier si c'est dans le scope v0.702.**
|
> **Avant d'ajouter quoi que ce soit : vérifier si c'est dans le scope v0.703.**
|
||||||
> Si non → ne pas ajouter. Créer un ticket pour une version ultérieure.
|
> Si non → ne pas ajouter. Créer un ticket pour une version ultérieure.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 2. Pendant la phase v0.702 (jusqu'au tag)
|
## 2. Pendant la phase v0.703 (jusqu'au tag)
|
||||||
|
|
||||||
### 2.1 Autorisé
|
### 2.1 Autorisé
|
||||||
|
|
||||||
- **Corrections de bugs** sur les features IN SCOPE v0.702
|
- **Corrections de bugs** sur les features IN SCOPE v0.703
|
||||||
- **Stabilisation** : tests, refactoring sans changement de comportement
|
- **Stabilisation** : tests, refactoring sans changement de comportement
|
||||||
- **Nettoyage** : suppression de code mort, consolidation
|
- **Nettoyage** : suppression de code mort, consolidation
|
||||||
- **Documentation** : mise à jour des docs existantes
|
- **Documentation** : mise à jour des docs existantes
|
||||||
|
|
@ -26,20 +26,20 @@
|
||||||
|
|
||||||
### 2.2 Interdit
|
### 2.2 Interdit
|
||||||
|
|
||||||
- **Nouvelles features** hors scope v0.702
|
- **Nouvelles features** hors scope v0.703
|
||||||
- **Nouvelles routes** ou pages hors scope
|
- **Nouvelles routes** ou pages hors scope
|
||||||
- **Nouvelles dépendances** (sauf correctif sécurité)
|
- **Nouvelles dépendances** (sauf correctif sécurité)
|
||||||
- **Changements de comportement** sur les features HORS SCOPE
|
- **Changements de comportement** sur les features HORS SCOPE
|
||||||
- **"Améliorations"** non liées à un bug identifié ou une feature IN SCOPE v0.702
|
- **"Améliorations"** non liées à un bug identifié ou une feature IN SCOPE v0.703
|
||||||
|
|
||||||
### 2.3 Cas limite
|
### 2.3 Cas limite
|
||||||
|
|
||||||
| Situation | Action |
|
| Situation | Action |
|
||||||
|-----------|--------|
|
|-----------|--------|
|
||||||
| Bug dans une feature HORS SCOPE | Corriger si blocant pour une feature IN SCOPE v0.702. Sinon : ticket pour plus tard. |
|
| Bug dans une feature HORS SCOPE | Corriger si blocant pour une feature IN SCOPE v0.703. Sinon : ticket pour plus tard. |
|
||||||
| Dépendance obsolète/vulnérable | Mettre à jour. Documenter dans la PR. |
|
| Dépendance obsolète/vulnérable | Mettre à jour. Documenter dans la PR. |
|
||||||
| Refactoring qui change une API interne | Autorisé si 0 impact sur le contrat public et tests passent. |
|
| Refactoring qui change une API interne | Autorisé si 0 impact sur le contrat public et tests passent. |
|
||||||
| "Petite amélioration UX" | **Non.** Créer un ticket pour v0.703+. |
|
| "Petite amélioration UX" | **Non.** Créer un ticket pour v0.704+. |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -47,13 +47,13 @@
|
||||||
|
|
||||||
### 3.1 Checklist pré-commit (dans la tête)
|
### 3.1 Checklist pré-commit (dans la tête)
|
||||||
|
|
||||||
1. **Mon changement modifie-t-il une feature IN SCOPE v0.702 ?**
|
1. **Mon changement modifie-t-il une feature IN SCOPE v0.703 ?**
|
||||||
- Oui → Continuer. S'assurer qu'il n'y a pas de régression.
|
- Oui → Continuer. S'assurer qu'il n'y a pas de régression.
|
||||||
- Non → **STOP.** Est-ce une correction de bug ? Si oui, la feature est-elle IN SCOPE ?
|
- Non → **STOP.** Est-ce une correction de bug ? Si oui, la feature est-elle IN SCOPE ?
|
||||||
|
|
||||||
2. **Mon changement ajoute-t-il du code ?**
|
2. **Mon changement ajoute-t-il du code ?**
|
||||||
- Nouvelle route, nouveau composant, nouveau service → Vérifier V0_702_RELEASE_SCOPE. Si hors scope → **STOP.**
|
- Nouvelle route, nouveau composant, nouveau service → Vérifier V0_703_RELEASE_SCOPE. Si hors scope → **STOP.**
|
||||||
- Correction, refactoring, test → OK si lié à une feature IN SCOPE v0.702.
|
- Correction, refactoring, test → OK si lié à une feature IN SCOPE v0.703.
|
||||||
|
|
||||||
3. **Mes tests passent-ils ?**
|
3. **Mes tests passent-ils ?**
|
||||||
- `npm test -- --run` (frontend)
|
- `npm test -- --run` (frontend)
|
||||||
|
|
@ -81,7 +81,7 @@ Format : `type(scope): description`
|
||||||
|
|
||||||
Dans chaque PR, le relecteur doit valider :
|
Dans chaque PR, le relecteur doit valider :
|
||||||
|
|
||||||
- [ ] Le changement est dans le scope v0.702 (voir [V0_702_RELEASE_SCOPE.md](V0_702_RELEASE_SCOPE.md))
|
- [ ] Le changement est dans le scope v0.703 (voir [V0_703_RELEASE_SCOPE.md](V0_703_RELEASE_SCOPE.md))
|
||||||
- [ ] Aucune nouvelle feature ajoutée
|
- [ ] Aucune nouvelle feature ajoutée
|
||||||
- [ ] Aucune régression sur les flows critiques
|
- [ ] Aucune régression sur les flows critiques
|
||||||
- [ ] Les tests passent
|
- [ ] Les tests passent
|
||||||
|
|
@ -92,28 +92,28 @@ Dans chaque PR, le relecteur doit valider :
|
||||||
Une PR sera rejetée si :
|
Une PR sera rejetée si :
|
||||||
|
|
||||||
- Elle ajoute une nouvelle route, page ou feature
|
- Elle ajoute une nouvelle route, page ou feature
|
||||||
- Elle modifie le comportement d'une feature HORS SCOPE v0.702 (sauf correctif bug critique)
|
- Elle modifie le comportement d'une feature HORS SCOPE v0.703 (sauf correctif bug critique)
|
||||||
- Les tests échouent
|
- Les tests échouent
|
||||||
- Elle introduit une dépendance non justifiée
|
- Elle introduit une dépendance non justifiée
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. Proposer une feature pour APRÈS v0.701
|
## 5. Proposer une feature pour APRÈS v0.702
|
||||||
|
|
||||||
### 5.1 Template
|
### 5.1 Template
|
||||||
|
|
||||||
Utiliser le template [Feature request](.github/ISSUE_TEMPLATE/feature_request.md) avec :
|
Utiliser le template [Feature request](.github/ISSUE_TEMPLATE/feature_request.md) avec :
|
||||||
|
|
||||||
- **Alignement scope** : cocher "Hors scope v0.702 — pour v0.703+"
|
- **Alignement scope** : cocher "Hors scope v0.703 — pour v0.704+"
|
||||||
- **Justification** : pourquoi cette feature est nécessaire
|
- **Justification** : pourquoi cette feature est nécessaire
|
||||||
- **Effort estimé** : S / M / L / XL
|
- **Effort estimé** : S / M / L / XL
|
||||||
- **Dépendances** : quelles features v0.701 doivent être stables avant
|
- **Dépendances** : quelles features v0.702 doivent être stables avant
|
||||||
|
|
||||||
### 5.2 Workflow
|
### 5.2 Workflow
|
||||||
|
|
||||||
1. Créer une issue avec le template
|
1. Créer une issue avec le template
|
||||||
2. **Ne pas implémenter** tant que v0.702 n'est pas taguée
|
2. **Ne pas implémenter** tant que v0.703 n'est pas taguée
|
||||||
3. Une fois v0.702 stable, prioriser les issues post-v0.702 dans le scope suivant
|
3. Une fois v0.703 stable, prioriser les issues post-v0.703 dans le scope suivant
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -125,14 +125,14 @@ Si une vulnérabilité critique est identifiée :
|
||||||
|
|
||||||
- Correctif autorisé **immédiatement**
|
- Correctif autorisé **immédiatement**
|
||||||
- Documenter dans la PR
|
- Documenter dans la PR
|
||||||
- Pas besoin d'être dans le scope v0.701
|
- Pas besoin d'être dans le scope v0.703
|
||||||
|
|
||||||
### 6.2 Blocage production
|
### 6.2 Blocage production
|
||||||
|
|
||||||
Si un bug bloque un déploiement ou un flow critique :
|
Si un bug bloque un déploiement ou un flow critique :
|
||||||
|
|
||||||
- Correctif autorisé
|
- Correctif autorisé
|
||||||
- La feature concernée doit être IN SCOPE v0.702 ou dépendance directe d'une feature IN SCOPE
|
- La feature concernée doit être IN SCOPE v0.703 ou dépendance directe d'une feature IN SCOPE
|
||||||
|
|
||||||
### 6.3 Décision collégiale
|
### 6.3 Décision collégiale
|
||||||
|
|
||||||
|
|
@ -140,7 +140,7 @@ Pour tout cas ambigu :
|
||||||
|
|
||||||
- Ouvrir une issue "Scope clarification"
|
- Ouvrir une issue "Scope clarification"
|
||||||
- Décision documentée dans l'issue
|
- Décision documentée dans l'issue
|
||||||
- Mise à jour de V0_702_RELEASE_SCOPE.md si le scope est étendu (exception rare)
|
- Mise à jour de V0_703_RELEASE_SCOPE.md si le scope est étendu (exception rare)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
@ -174,11 +174,12 @@ Pour tout cas ambigu :
|
||||||
- v0.603 : Phase 6+ — Transfer automatique Stripe Connect, Commission plateforme, Dette technique — taguée
|
- v0.603 : Phase 6+ — Transfer automatique Stripe Connect, Commission plateforme, Dette technique — taguée
|
||||||
- v0.604 : Phase 6+ — absorbé par v0.701
|
- v0.604 : Phase 6+ — absorbé par v0.701
|
||||||
- v0.701 : Phase 7 — Retry Transfers, Admin Dashboard, Deep Health — taguée
|
- v0.701 : Phase 7 — Retry Transfers, Admin Dashboard, Deep Health — taguée
|
||||||
|
- v0.702 : Phase 7 — Reviews, Factures, Remboursements & Product Detail — taguée
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 8. Rappel pour les contributeurs
|
## 8. Rappel pour les contributeurs
|
||||||
|
|
||||||
- **Cursor / IA** : Les règles dans `.cursorrules` rappellent de vérifier le scope avant toute modification.
|
- **Cursor / IA** : Les règles dans `.cursorrules` rappellent de vérifier le scope avant toute modification.
|
||||||
- **Humains** : Lire [V0_702_RELEASE_SCOPE.md](V0_702_RELEASE_SCOPE.md) avant de coder.
|
- **Humains** : Lire [V0_703_RELEASE_SCOPE.md](V0_703_RELEASE_SCOPE.md) avant de coder.
|
||||||
- **En doute ?** Ouvrir une issue "Scope clarification" plutôt que de coder.
|
- **En doute ?** Ouvrir une issue "Scope clarification" plutôt que de coder.
|
||||||
|
|
|
||||||
18
docs/V0_703_RELEASE_SCOPE.md
Normal file
18
docs/V0_703_RELEASE_SCOPE.md
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Scope v0.703 — Placeholder
|
||||||
|
|
||||||
|
**Statut** : Placeholder — à définir
|
||||||
|
|
||||||
|
**Version précédente** : [V0_702_RELEASE_SCOPE.md](archive/V0_702_RELEASE_SCOPE.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lots prévus (à valider)
|
||||||
|
|
||||||
|
- À définir selon priorisation produit
|
||||||
|
- Pistes : Go Live (streaming vidéo), promotions dynamiques
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Référence
|
||||||
|
|
||||||
|
Voir [SCOPE_CONTROL.md](SCOPE_CONTROL.md) pour les règles de scope.
|
||||||
Loading…
Reference in a new issue