- 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%)
17 KiB
VEZA Complete MVP Audit & Todolist Generator
🎯 Mission
Tu es un agent d'audit exhaustif. Ta mission est de scanner l'intégralité du codebase Veza et générer une todolist de 200+ tâches couvrant tout ce qui est nécessaire pour atteindre un MVP stable prêt pour la production à petite échelle.
RÈGLE ABSOLUE : Ne JAMAIS ignorer, skipper ou supprimer une feature/route/fonction. Si quelque chose existe côté frontend mais pas backend (ou inversement), AJOUTE UNE TÂCHE pour l'implémenter. L'objectif est la progression, pas la régression ni la stagnation.
📁 Répertoires à Scanner
veza/
├── apps/web/ # Frontend React/TypeScript (SCAN COMPLET)
│ ├── src/
│ │ ├── components/ # Composants UI
│ │ ├── features/ # Features par domaine
│ │ ├── hooks/ # Custom hooks
│ │ ├── pages/ # Pages/routes
│ │ ├── services/ # Services API
│ │ ├── stores/ # State management
│ │ ├── types/ # Types TypeScript
│ │ ├── utils/ # Utilitaires
│ │ └── schemas/ # Validation Zod
│ ├── public/
│ └── tests/
│
├── veza-backend-api/ # Backend Go/Gin (SCAN COMPLET)
│ ├── cmd/ # Entry points
│ ├── internal/
│ │ ├── api/ # Routes & handlers
│ │ ├── config/ # Configuration
│ │ ├── dto/ # Data Transfer Objects
│ │ ├── middleware/ # Middlewares
│ │ ├── models/ # Database models
│ │ ├── repository/ # Data access
│ │ ├── services/ # Business logic
│ │ └── errors/ # Error handling
│ └── migrations/
│
├── veza-common/ # Shared code (SI EXISTE)
├── veza-chat-server/ # Chat server Rust (SI EXISTE)
├── veza-stream-server/ # Streaming server (SI EXISTE)
├── docker-compose*.yml # Infrastructure
└── docs/ # Documentation
🔍 Protocole d'Audit Exhaustif
ÉTAPE 1 : Cartographie du Frontend (apps/web/)
# 1.1 Lister TOUTES les routes/pages
find apps/web/src/pages apps/web/src/features/*/pages -name "*.tsx" 2>/dev/null
# 1.2 Lister TOUS les services API
find apps/web/src/services apps/web/src/features/*/services -name "*.ts" 2>/dev/null
# 1.3 Lister TOUS les appels API
grep -rn "apiClient\.\|axios\.\|fetch(" apps/web/src/ --include="*.ts" --include="*.tsx"
# 1.4 Lister TOUS les types/interfaces
find apps/web/src/types apps/web/src/features/*/types -name "*.ts" 2>/dev/null
# 1.5 Lister TOUS les stores (state management)
find apps/web/src/stores apps/web/src/features/*/stores -name "*.ts" 2>/dev/null
# 1.6 Lister TOUS les hooks custom
find apps/web/src/hooks apps/web/src/features/*/hooks -name "*.ts" 2>/dev/null
# 1.7 Lister TOUS les composants
find apps/web/src/components apps/web/src/features/*/components -name "*.tsx" 2>/dev/null
# 1.8 Lister TOUS les schemas de validation
find apps/web/src/schemas apps/web/src/features/*/schemas -name "*.ts" 2>/dev/null
# 1.9 Lister les tests existants
find apps/web/src -name "*.test.ts" -o -name "*.test.tsx" -o -name "*.spec.ts" 2>/dev/null
ÉTAPE 2 : Cartographie du Backend (veza-backend-api/)
# 2.1 Lister TOUTES les routes définies
grep -rn "router\.\(GET\|POST\|PUT\|DELETE\|PATCH\)" veza-backend-api/internal/api/
# 2.2 Lister TOUS les handlers
find veza-backend-api/internal/handlers veza-backend-api/internal/api -name "*.go" 2>/dev/null
# 2.3 Lister TOUS les models
find veza-backend-api/internal/models -name "*.go" 2>/dev/null
# 2.4 Lister TOUS les DTOs
find veza-backend-api/internal/dto -name "*.go" 2>/dev/null
# 2.5 Lister TOUS les services
find veza-backend-api/internal/services -name "*.go" 2>/dev/null
# 2.6 Lister TOUS les repositories
find veza-backend-api/internal/repository -name "*.go" 2>/dev/null
# 2.7 Lister TOUS les middlewares
find veza-backend-api/internal/middleware -name "*.go" 2>/dev/null
# 2.8 Lister les migrations
find veza-backend-api/migrations -name "*.sql" 2>/dev/null
# 2.9 Lister les tests existants
find veza-backend-api -name "*_test.go" 2>/dev/null
ÉTAPE 3 : Analyse de l'Intégration
# 3.1 Extraire TOUS les endpoints appelés par le frontend
grep -rohn "apiClient\.[a-z]*\s*(\s*['\"\`][^'\"\`]*" apps/web/src/ | sort | uniq
# 3.2 Extraire TOUTES les routes backend
grep -rn "router\.\(GET\|POST\|PUT\|DELETE\|PATCH\)" veza-backend-api/internal/api/ | grep -o '"[^"]*"' | sort | uniq
# 3.3 Comparer les deux listes pour trouver les gaps
# 3.4 Vérifier la cohérence des types
# Frontend types vs Backend DTOs
# 3.5 Vérifier les variables d'environnement
grep -rn "VITE_" apps/web/src/
grep -rn "os.Getenv" veza-backend-api/
ÉTAPE 4 : Scanner les Autres Services (si présents)
# veza-common
ls -la veza-common/ 2>/dev/null
# veza-chat-server
ls -la veza-chat-server/ 2>/dev/null
grep -rn "route\|endpoint\|handler" veza-chat-server/src/ 2>/dev/null
# veza-stream-server
ls -la veza-stream-server/ 2>/dev/null
📋 Catégories de Tâches à Générer
Pour chaque élément trouvé, génère des tâches dans ces catégories :
1. BACKEND - Routes API (BE-API-XXX)
- Routes manquantes appelées par le frontend
- Routes existantes mais incomplètes
- Validation des inputs manquante
- Gestion des erreurs insuffisante
- Documentation OpenAPI manquante
2. BACKEND - Models & Database (BE-DB-XXX)
- Models manquants ou incomplets
- Migrations manquantes
- Index manquants
- Relations mal définies
- Soft delete non implémenté
3. BACKEND - Services & Logic (BE-SVC-XXX)
- Business logic manquante
- Validation métier manquante
- Transactions non gérées
- Caching non implémenté
4. BACKEND - Security (BE-SEC-XXX)
- Authentication gaps
- Authorization gaps
- Rate limiting manquant
- Input sanitization
- CORS issues
5. BACKEND - Tests (BE-TEST-XXX)
- Tests unitaires manquants
- Tests d'intégration manquants
- Coverage insuffisante
6. FRONTEND - Pages & Routes (FE-PAGE-XXX)
- Pages incomplètes
- Routes mal configurées
- Layouts manquants
- Navigation broken
7. FRONTEND - Components (FE-COMP-XXX)
- Composants manquants
- Props non typées
- Accessibilité (a11y)
- Responsive design
- Error boundaries
8. FRONTEND - Services & API (FE-API-XXX)
- Services API incomplets
- Error handling manquant
- Loading states manquants
- Retry logic manquant
9. FRONTEND - State Management (FE-STATE-XXX)
- Stores incomplets
- State sync issues
- Cache invalidation
- Optimistic updates
10. FRONTEND - Types & Validation (FE-TYPE-XXX)
- Types manquants ou incorrects
- Zod schemas manquants
- Runtime validation
11. FRONTEND - Tests (FE-TEST-XXX)
- Tests unitaires manquants
- Tests de composants manquants
- Tests E2E manquants
12. INTEGRATION (INT-XXX)
- Contract mismatches
- Type inconsistencies
- Missing endpoints
- Response format issues
13. INFRASTRUCTURE (INFRA-XXX)
- Docker configuration
- Environment variables
- CI/CD pipeline
- Monitoring/Logging
14. DOCUMENTATION (DOC-XXX)
- API documentation
- README updates
- Architecture docs
- Deployment guide
15. SECURITY (SEC-XXX)
- Authentication issues
- Authorization issues
- Data exposure risks
- Dependency vulnerabilities
📊 Format de Sortie JSON
Génère le fichier VEZA_COMPLETE_MVP_TODOLIST.json avec cette structure :
{
"meta": {
"title": "Veza Complete MVP Todolist",
"description": "Exhaustive todolist for production-ready MVP",
"generated_at": "ISO_TIMESTAMP",
"total_tasks": 200,
"target": "Production-ready MVP at small scale",
"scanned_directories": [
"apps/web/",
"veza-backend-api/",
"veza-common/",
"..."
],
"audit_methodology": "Full codebase scan + integration analysis"
},
"summary": {
"by_priority": {
"P0_critical": 0,
"P1_high": 0,
"P2_medium": 0,
"P3_low": 0
},
"by_category": {
"BE-API": 0,
"BE-DB": 0,
"BE-SVC": 0,
"BE-SEC": 0,
"BE-TEST": 0,
"FE-PAGE": 0,
"FE-COMP": 0,
"FE-API": 0,
"FE-STATE": 0,
"FE-TYPE": 0,
"FE-TEST": 0,
"INT": 0,
"INFRA": 0,
"DOC": 0,
"SEC": 0
},
"by_owner": {
"backend": 0,
"frontend": 0,
"fullstack": 0,
"devops": 0
},
"estimated_total_hours": 0
},
"phases": [
{
"id": "PHASE-1",
"name": "Critical Foundation",
"description": "Must fix before any other work",
"priority": "P0",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-2",
"name": "Core Features Completion",
"description": "Complete essential user-facing features",
"priority": "P1",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-3",
"name": "Integration & Consistency",
"description": "Ensure frontend/backend work seamlessly",
"priority": "P1",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-4",
"name": "Security Hardening",
"description": "Security measures for production",
"priority": "P1",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-5",
"name": "Testing & Quality",
"description": "Test coverage and code quality",
"priority": "P2",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-6",
"name": "Performance & Optimization",
"description": "Optimize for production load",
"priority": "P2",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-7",
"name": "Documentation & DevOps",
"description": "Documentation and deployment readiness",
"priority": "P2",
"estimated_days": 0,
"tasks": []
},
{
"id": "PHASE-8",
"name": "Polish & UX",
"description": "UI/UX improvements and polish",
"priority": "P3",
"estimated_days": 0,
"tasks": []
}
],
"tasks": [
{
"id": "BE-API-001",
"phase": "PHASE-2",
"priority": "P1",
"priority_rank": 1,
"category": "backend-api",
"title": "Task title",
"description": "Detailed description",
"owner": "backend",
"estimated_hours": 2,
"status": "todo",
"files_involved": [
{
"path": "veza-backend-api/internal/...",
"action": "create|modify|delete",
"reason": "Why this file"
}
],
"implementation_steps": [
{
"step": 1,
"action": "What to do",
"details": "How to do it"
}
],
"acceptance_criteria": [
"Criterion 1",
"Criterion 2"
],
"dependencies": ["OTHER-TASK-ID"],
"related_frontend": "FE-XXX-YYY",
"related_backend": "BE-XXX-YYY",
"test_requirements": [
"Unit test for...",
"Integration test for..."
],
"notes": "Additional context"
}
],
"gap_analysis": {
"frontend_calls_without_backend": [
{
"frontend_location": "apps/web/src/services/xxx.ts:42",
"endpoint_called": "GET /api/v1/something",
"backend_status": "NOT_FOUND",
"task_created": "BE-API-XXX"
}
],
"backend_routes_without_frontend": [
{
"backend_location": "veza-backend-api/internal/api/router.go:123",
"endpoint_defined": "POST /api/v1/something-else",
"frontend_usage": "NOT_FOUND",
"task_created": "FE-API-XXX"
}
],
"type_mismatches": [
{
"frontend_type": "apps/web/src/types/user.ts - id: number",
"backend_type": "veza-backend-api/internal/dto/user.go - ID: uuid.UUID",
"task_created": "INT-XXX"
}
]
},
"risk_register": [
{
"risk": "Description of risk",
"severity": "high|medium|low",
"mitigation_tasks": ["TASK-ID-1", "TASK-ID-2"],
"owner": "backend|frontend|devops"
}
],
"mvp_definition": {
"must_have_features": [
{
"feature": "User Authentication",
"status": "complete|partial|missing",
"tasks_required": ["BE-API-001", "FE-PAGE-001"]
}
],
"nice_to_have": [
{
"feature": "Advanced Search",
"tasks_if_included": ["BE-API-050", "FE-COMP-030"]
}
],
"out_of_scope": [
"Feature X - reason"
]
},
"progress_tracking": {
"completed": 0,
"in_progress": 0,
"todo": 200,
"blocked": 0,
"last_updated": null,
"completion_percentage": 0
}
}
🔢 Règles de Priorisation
P0 - Critical (Blocker)
- L'app ne démarre pas
- Crash systématique
- Faille de sécurité majeure
- Perte de données possible
- Authentication cassée
P1 - High (Core Feature)
- Feature essentielle non fonctionnelle
- Intégration frontend/backend cassée
- UX bloquante pour l'utilisateur
- Performance inacceptable
P2 - Medium (Important)
- Feature secondaire non fonctionnelle
- Inconsistances visuelles
- Tests manquants pour code critique
- Documentation manquante
P3 - Low (Nice to Have)
- Améliorations UX mineures
- Refactoring non urgent
- Tests pour code non critique
- Optimisations mineures
⚠️ Règles Absolues
NE JAMAIS :
- ❌ Ignorer une route/feature parce qu'elle n'est pas implémentée
- ❌ Recommander de supprimer du code qui appelle des endpoints manquants
- ❌ Sauter des fichiers "parce qu'ils semblent obsolètes"
- ❌ Limiter l'audit à certains dossiers seulement
- ❌ Générer moins de 200 tâches
TOUJOURS :
- ✅ Créer une tâche pour implémenter ce qui manque
- ✅ Documenter les deux côtés (frontend + backend) pour chaque gap
- ✅ Lier les tâches entre elles (dependencies, related_*)
- ✅ Inclure des critères d'acceptation testables
- ✅ Estimer les heures de travail
🚀 Séquence d'Exécution
1. SCAN FRONTEND
└── Lister tous les fichiers
└── Extraire tous les appels API
└── Identifier tous les types
└── Trouver tous les composants/pages
└── Détecter les tests manquants
2. SCAN BACKEND
└── Lister toutes les routes
└── Extraire tous les handlers
└── Identifier tous les models/DTOs
└── Trouver tous les services
└── Détecter les tests manquants
3. ANALYSE D'INTÉGRATION
└── Comparer endpoints frontend vs backend
└── Comparer types frontend vs DTOs backend
└── Identifier TOUS les gaps
└── Créer tâches pour chaque gap
4. SCAN SERVICES ANNEXES
└── veza-common
└── veza-chat-server
└── veza-stream-server
└── Autres...
5. ANALYSE SÉCURITÉ
└── Auth/AuthZ gaps
└── Input validation
└── CORS/CSRF
└── Secrets exposure
6. ANALYSE INFRA
└── Docker configs
└── Environment vars
└── CI/CD gaps
7. GÉNÉRATION TODOLIST
└── Créer toutes les tâches
└── Assigner les priorités
└── Calculer les estimations
└── Organiser en phases
└── Générer le JSON final
📤 Output Attendu
À la fin de l'audit, tu dois produire :
VEZA_COMPLETE_MVP_TODOLIST.json— Le fichier JSON avec 200+ tâches- Résumé dans la conversation :
══════════════════════════════════════════════════════ 📊 AUDIT COMPLET VEZA - RÉSUMÉ ══════════════════════════════════════════════════════ Total tâches générées: XXX Par priorité: • P0 (Critical): XX tâches • P1 (High): XX tâches • P2 (Medium): XX tâches • P3 (Low): XX tâches Par catégorie: • Backend API: XX • Backend DB: XX • Backend Services: XX • Frontend Pages: XX • Frontend Components: XX • Integration: XX • Security: XX • Tests: XX • Infrastructure: XX • Documentation: XX Gaps critiques détectés: • XX endpoints appelés par frontend mais non implémentés • XX routes backend sans utilisation frontend • XX type mismatches Estimation totale: XXX heures (~XX semaines) Fichier généré: VEZA_COMPLETE_MVP_TODOLIST.json ══════════════════════════════════════════════════════
🎯 COMMENCE MAINTENANT
-
Lis la structure du projet :
ls -la find . -type d -name "src" | head -20 -
Scanne le frontend (apps/web/)
-
Scanne le backend (veza-backend-api/)
-
Identifie les gaps d'intégration
-
Génère les 200+ tâches
-
Produis le fichier JSON final
Première action : Lister la structure racine du projet et identifier tous les répertoires à scanner.