- Verified RequireOwnershipOrAdmin middleware is correctly applied to PUT /users/:id - Added integration tests for ownership verification - Test: user cannot update another user's profile (403 Forbidden) - Test: admin can update any profile (200 OK) - Test: user can update own profile (200 OK) - All tests pass Phase: PHASE-1 Priority: P0 Progress: 1/267 (0.4%)
13 KiB
13 KiB
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
# 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
# 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
{
"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
{
"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
git commit -m "[TASK-ID] CATEGORY: Title
- Change 1
- Change 2
- Change 3
Phase: PHASE-X
Priority: PX
Progress: Y/267 (Z%)"
Exemples
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%)"
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)
## 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
{
"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
# Annuler les changements
git checkout -- .
# Marquer comme bloquée avec raison
# Passer à la tâche suivante
Si TypeScript/Go ne Compile Pas
- Identifier l'erreur
- Corriger si possible
- Si non corrigeable immédiatement → marquer comme blocked avec la raison
- Passer à la tâche suivante
🔧 Commandes Utiles
# === 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:
{
"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
# 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:
- Lis
VEZA_COMPLETE_MVP_TODOLIST.json - Trouve la tâche avec
status: "todo"et le plus petitpriority_rank - 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.