- Archiver 131 .md dans docs/archive/root-md/ - Archiver 22 .json dans docs/archive/root-json/ - Conserver 7 .md utiles (README, CONTRIBUTING, CHANGELOG, etc.) - Conserver package.json, package-lock.json, turbo.json - Ajouter README d'index dans chaque archive
406 lines
13 KiB
Markdown
406 lines
13 KiB
Markdown
# VEZA MVP Implementation Agent — Infinite Loop Protocol
|
|
|
|
## 🎯 Mission
|
|
|
|
Tu es un agent d'implémentation autonome. Ta mission est d'implémenter **toutes les 267 tâches** du fichier `VEZA_COMPLETE_MVP_TODOLIST.json` jusqu'à atteindre un MVP stable prêt pour la production.
|
|
|
|
Tu travailles sur une **branche dédiée** et tu **commits après chaque tâche**.
|
|
|
|
---
|
|
|
|
## 📁 Fichier Source de Vérité
|
|
|
|
```
|
|
VEZA_COMPLETE_MVP_TODOLIST.json ← Todolist complète (267 tâches)
|
|
```
|
|
|
|
Ce fichier DOIT être maintenu à jour après chaque tâche terminée.
|
|
|
|
---
|
|
|
|
## 🌿 Gestion de Branche Git
|
|
|
|
### Au Début de la Première Session
|
|
|
|
```bash
|
|
# Vérifier la branche actuelle
|
|
git branch --show-current
|
|
|
|
# Si pas sur la branche MVP, la créer ou y aller
|
|
git checkout -b feature/mvp-complete 2>/dev/null || git checkout feature/mvp-complete
|
|
|
|
# S'assurer d'être à jour
|
|
git pull origin feature/mvp-complete 2>/dev/null || echo "Nouvelle branche"
|
|
```
|
|
|
|
### Au Début de Chaque Session Suivante
|
|
|
|
```bash
|
|
# Revenir sur la branche MVP
|
|
git checkout feature/mvp-complete
|
|
|
|
# Récupérer les derniers changements
|
|
git pull origin feature/mvp-complete 2>/dev/null || echo "OK"
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 Cycle d'Implémentation (Boucle Infinie)
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 1. LOAD & FIND │
|
|
│ → Lire VEZA_COMPLETE_MVP_TODOLIST.json │
|
|
│ → Trouver la tâche avec: │
|
|
│ • status = "todo" │
|
|
│ • Le plus petit priority_rank │
|
|
│ → Si toutes complétées → MISSION ACCOMPLIE 🎉 │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ 2. ANNOUNCE │
|
|
│ → Afficher: "🚀 [X/267] Tâche ID: TITRE" │
|
|
│ → Lister les fichiers à modifier │
|
|
│ → Vérifier les dépendances │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ 3. IMPLEMENT │
|
|
│ → Suivre les implementation_steps │
|
|
│ → Modifier/créer les fichiers listés │
|
|
│ → Respecter les acceptance_criteria │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ 4. VALIDATE │
|
|
│ → Compiler: TypeScript (npx tsc --noEmit) │
|
|
│ → Compiler: Go (go build ./...) │
|
|
│ → Vérifier les acceptance_criteria │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ 5. UPDATE JSON │
|
|
│ → Mettre status = "completed" │
|
|
│ → Ajouter bloc "completion" avec détails │
|
|
│ → Mettre à jour progress_tracking │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ 6. COMMIT │
|
|
│ → git add -A │
|
|
│ → git commit avec message formaté │
|
|
├─────────────────────────────────────────────────────────────┤
|
|
│ 7. REPORT & CONTINUE │
|
|
│ → Afficher le résumé │
|
|
│ → Retour à l'étape 1 │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 📋 Format de Mise à Jour du JSON
|
|
|
|
### Quand une Tâche est Complétée
|
|
|
|
```json
|
|
{
|
|
"id": "BE-SEC-001",
|
|
"status": "completed",
|
|
"completion": {
|
|
"completed_at": "2025-01-28T14:30:00Z",
|
|
"actual_hours": 2.5,
|
|
"commits": ["abc1234"],
|
|
"files_changed": [
|
|
"veza-backend-api/internal/api/router.go",
|
|
"veza-backend-api/internal/handlers/profile_handler.go"
|
|
],
|
|
"notes": "Added ownership middleware, all tests pass",
|
|
"issues_encountered": []
|
|
},
|
|
// ... reste inchangé
|
|
}
|
|
```
|
|
|
|
### Mise à Jour de progress_tracking
|
|
|
|
```json
|
|
{
|
|
"progress_tracking": {
|
|
"completed": 1,
|
|
"in_progress": 0,
|
|
"todo": 266,
|
|
"blocked": 0,
|
|
"last_updated": "2025-01-28T14:30:00Z",
|
|
"completion_percentage": 0.37
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 📝 Format de Commit
|
|
|
|
```bash
|
|
git commit -m "[TASK-ID] CATEGORY: Title
|
|
|
|
- Change 1
|
|
- Change 2
|
|
- Change 3
|
|
|
|
Phase: PHASE-X
|
|
Priority: PX
|
|
Progress: Y/267 (Z%)"
|
|
```
|
|
|
|
### Exemples
|
|
|
|
```bash
|
|
git commit -m "[BE-SEC-001] security: Fix ownership verification for user profile updates
|
|
|
|
- Added userOwnerResolver function in router.go
|
|
- Applied RequireOwnershipOrAdmin middleware to PUT /users/:id
|
|
- Added unit tests for ownership verification
|
|
|
|
Phase: PHASE-1
|
|
Priority: P0
|
|
Progress: 1/267 (0.4%)"
|
|
```
|
|
|
|
```bash
|
|
git commit -m "[FE-COMP-015] component: Add loading skeleton for track list
|
|
|
|
- Created TrackListSkeleton component
|
|
- Integrated with useTrackList hook
|
|
- Added storybook story
|
|
|
|
Phase: PHASE-2
|
|
Priority: P1
|
|
Progress: 45/267 (16.9%)"
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 Séquence de Démarrage (À Chaque Session)
|
|
|
|
```markdown
|
|
## DÉMARRAGE SESSION
|
|
|
|
1. [ ] Vérifier/créer la branche
|
|
git checkout feature/mvp-complete 2>/dev/null || git checkout -b feature/mvp-complete
|
|
|
|
2. [ ] Lire VEZA_COMPLETE_MVP_TODOLIST.json
|
|
→ Noter progress_tracking.completed
|
|
→ Calculer: X tâches restantes
|
|
|
|
3. [ ] Trouver la prochaine tâche
|
|
→ status = "todo"
|
|
→ Plus petit priority_rank
|
|
|
|
4. [ ] Annoncer:
|
|
"📍 Session démarrée
|
|
Progression: X/267 (Y%)
|
|
Prochaine tâche: [ID] - [TITLE]
|
|
Phase: PHASE-Z (Priority: PW)"
|
|
|
|
5. [ ] Commencer l'implémentation
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Format de Rapport Après Chaque Tâche
|
|
|
|
```
|
|
═══════════════════════════════════════════════════════════════
|
|
✅ COMPLÉTÉ: [TASK-ID] — [Title]
|
|
═══════════════════════════════════════════════════════════════
|
|
|
|
Phase: PHASE-X | Priorité: PY | Durée: Zh XXmin
|
|
|
|
Fichiers modifiés:
|
|
✓ path/to/file1.go
|
|
✓ path/to/file2.ts
|
|
|
|
Validation:
|
|
✓ TypeScript compile
|
|
✓ Go build OK
|
|
✓ Critères d'acceptation respectés
|
|
|
|
Commit: abc1234
|
|
|
|
───────────────────────────────────────────────────────────────
|
|
📊 PROGRESSION
|
|
───────────────────────────────────────────────────────────────
|
|
|
|
Complétées: X/267 (Y%)
|
|
[████████░░░░░░░░░░░░░░░░░░░░░░] Y%
|
|
|
|
Par phase:
|
|
PHASE-1 (P0): X/12
|
|
PHASE-2 (P1): X/XX
|
|
PHASE-3 (P1): X/XX
|
|
...
|
|
|
|
Prochaine tâche: [NEXT-ID] — [Next Title]
|
|
|
|
═══════════════════════════════════════════════════════════════
|
|
```
|
|
|
|
---
|
|
|
|
## ⚠️ Gestion des Blocages
|
|
|
|
### Si une Dépendance n'est pas Satisfaite
|
|
|
|
```json
|
|
{
|
|
"id": "TASK-ID",
|
|
"status": "blocked",
|
|
"blocked_info": {
|
|
"blocked_at": "2025-01-28T14:30:00Z",
|
|
"blocked_by": ["DEPENDENCY-ID"],
|
|
"reason": "Dependency task not completed"
|
|
}
|
|
}
|
|
```
|
|
|
|
→ Passer à la tâche suivante avec priority_rank le plus bas qui n'est pas bloquée.
|
|
|
|
### Si l'Implémentation Échoue
|
|
|
|
```bash
|
|
# Annuler les changements
|
|
git checkout -- .
|
|
|
|
# Marquer comme bloquée avec raison
|
|
# Passer à la tâche suivante
|
|
```
|
|
|
|
### Si TypeScript/Go ne Compile Pas
|
|
|
|
1. Identifier l'erreur
|
|
2. Corriger si possible
|
|
3. Si non corrigeable immédiatement → marquer comme blocked avec la raison
|
|
4. Passer à la tâche suivante
|
|
|
|
---
|
|
|
|
## 🔧 Commandes Utiles
|
|
|
|
```bash
|
|
# === GIT ===
|
|
git checkout feature/mvp-complete
|
|
git add -A
|
|
git commit -m "MESSAGE"
|
|
git push origin feature/mvp-complete
|
|
|
|
# === VALIDATION ===
|
|
cd apps/web && npx tsc --noEmit
|
|
cd veza-backend-api && go build ./...
|
|
cd apps/web && npm test -- --watchAll=false
|
|
cd veza-backend-api && go test ./...
|
|
|
|
# === RECHERCHE ===
|
|
grep -rn "PATTERN" apps/web/src/
|
|
grep -rn "PATTERN" veza-backend-api/
|
|
|
|
# === STRUCTURE ===
|
|
find apps/web/src -name "*.ts" -o -name "*.tsx" | head -20
|
|
find veza-backend-api/internal -name "*.go" | head -20
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Règles d'Implémentation
|
|
|
|
### DO ✅
|
|
- Suivre exactement les `implementation_steps`
|
|
- Modifier uniquement les fichiers listés dans `files_involved`
|
|
- Respecter tous les `acceptance_criteria`
|
|
- Compiler après chaque modification
|
|
- Committer après chaque tâche complète
|
|
- Mettre à jour le JSON immédiatement
|
|
|
|
### DON'T ❌
|
|
- Sauter des étapes d'implémentation
|
|
- Modifier des fichiers non listés
|
|
- Ignorer les erreurs de compilation
|
|
- Oublier de committer
|
|
- Oublier de mettre à jour le JSON
|
|
- Changer de branche sans committer
|
|
|
|
---
|
|
|
|
## 📈 Milestones
|
|
|
|
```
|
|
PHASE-1 (P0): 12 tâches → Fondation sécurisée
|
|
PHASE-2 (P1): ~64 tâches → Features core complètes
|
|
PHASE-3 (P1): ~35 tâches → Intégration parfaite
|
|
PHASE-4 (P1): 15 tâches → Sécurité renforcée
|
|
PHASE-5 (P2): ~43 tâches → Tests complets
|
|
PHASE-6 (P2): ~34 tâches → Services optimisés
|
|
PHASE-7 (P2): 19 tâches → Docs & DevOps
|
|
PHASE-8 (P3): ~17 tâches → Polish final
|
|
|
|
TOTAL: 267 tâches → MVP Production-Ready 🚀
|
|
```
|
|
|
|
---
|
|
|
|
## 🏁 Condition de Fin
|
|
|
|
La mission est terminée quand:
|
|
|
|
```json
|
|
{
|
|
"progress_tracking": {
|
|
"completed": 267,
|
|
"in_progress": 0,
|
|
"todo": 0,
|
|
"blocked": 0,
|
|
"completion_percentage": 100
|
|
}
|
|
}
|
|
```
|
|
|
|
À ce moment, afficher:
|
|
|
|
```
|
|
╔═══════════════════════════════════════════════════════════════╗
|
|
║ ║
|
|
║ 🎉 MISSION ACCOMPLIE — MVP VEZA STABLE 🎉 ║
|
|
║ ║
|
|
║ 267/267 tâches complétées (100%) ║
|
|
║ ║
|
|
║ Prochaines étapes: ║
|
|
║ 1. Merge feature/mvp-complete → main ║
|
|
║ 2. Tag version v1.0.0-mvp ║
|
|
║ 3. Déploiement production ║
|
|
║ ║
|
|
╚═══════════════════════════════════════════════════════════════╝
|
|
```
|
|
|
|
---
|
|
|
|
## 🚀 COMMENCE MAINTENANT
|
|
|
|
```bash
|
|
# 1. Créer/checkout la branche
|
|
git checkout -b feature/mvp-complete 2>/dev/null || git checkout feature/mvp-complete
|
|
|
|
# 2. Lire le JSON et trouver la première tâche todo
|
|
```
|
|
|
|
**Première action**:
|
|
1. Lis `VEZA_COMPLETE_MVP_TODOLIST.json`
|
|
2. Trouve la tâche avec `status: "todo"` et le plus petit `priority_rank`
|
|
3. Annonce-la et commence l'implémentation
|
|
|
|
---
|
|
|
|
## 💡 PROMPT ULTRA-COURT (réutilisable)
|
|
|
|
Si tu veux relancer l'agent rapidement, utilise ce prompt minimal:
|
|
|
|
```
|
|
Continue l'implémentation du MVP Veza.
|
|
|
|
Fichier: @VEZA_COMPLETE_MVP_TODOLIST.json
|
|
Branche: feature/mvp-complete
|
|
|
|
Trouve la prochaine tâche (status: todo, plus petit priority_rank).
|
|
Implémente-la.
|
|
Mets à jour le JSON.
|
|
Commit.
|
|
Continue.
|
|
```
|