sourcefinder/TODO.md
Alexis Trouvé a7bd6115b7
Some checks failed
SourceFinder CI/CD Pipeline / Code Quality & Linting (push) Has been cancelled
SourceFinder CI/CD Pipeline / Unit Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Security Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Integration Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Performance Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Code Coverage Report (push) Has been cancelled
SourceFinder CI/CD Pipeline / Build & Deployment Validation (16.x) (push) Has been cancelled
SourceFinder CI/CD Pipeline / Build & Deployment Validation (18.x) (push) Has been cancelled
SourceFinder CI/CD Pipeline / Build & Deployment Validation (20.x) (push) Has been cancelled
SourceFinder CI/CD Pipeline / Regression Tests (push) Has been cancelled
SourceFinder CI/CD Pipeline / Security Audit (push) Has been cancelled
SourceFinder CI/CD Pipeline / Notify Results (push) Has been cancelled
feat: Implémentation complète du système SourceFinder avec tests
- Architecture modulaire avec injection de dépendances
- Système de scoring intelligent multi-facteurs (spécificité, fraîcheur, qualité, réutilisation)
- Moteur anti-injection 4 couches (preprocessing, patterns, sémantique, pénalités)
- API REST complète avec validation et rate limiting
- Repository JSON avec index mémoire et backup automatique
- Provider LLM modulaire pour génération de contenu
- Suite de tests complète (Jest) :
  * Tests unitaires pour sécurité et scoring
  * Tests d'intégration API end-to-end
  * Tests de sécurité avec simulation d'attaques
  * Tests de performance et charge
- Pipeline CI/CD avec GitHub Actions
- Logging structuré et monitoring
- Configuration ESLint et environnement de test

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-15 23:06:10 +08:00

308 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📋 TODO EXHAUSTIF - SourceFinder
*Basé sur le CDC complet - 25 composants majeurs à développer*
## 🏗️ PHASE 1 - ARCHITECTURE & CORE (2 semaines)
### 🔧 Infrastructure de base
- [ ] **Architecture ultra-modulaire Node.js + Express**
- Structure avec interfaces strictes (INewsProvider, IStockRepository, IScoringEngine)
- Dependency Injection Container
- Configuration environment (.env)
- Scripts package.json
- Middleware de base
- [ ] **Système de stockage JSON modulaire**
- Interface Repository abstraite (IStockRepository)
- Implémentation JSON par défaut (JSONStockRepository)
- Adaptateurs MongoDB/PostgreSQL (futurs, plug-and-play)
- Index en mémoire pour performance
- Migration path documenté
### 🧮 Système de scoring intelligent
- [ ] **Algorithme de scoring principal**
- Formule: (Spécificité×0.4) + (Fraîcheur×0.3) + (Qualité×0.2) + (Anti-dup×0.1)
- Classes ScoreCalculator avec breakdown détaillé
- Tests unitaires sur calculs de scores
- [ ] **Scoring spécificité race (40%)**
- Race exacte: 100pts
- Groupe/famille: 70pts
- Taille similaire: 50pts
- Usage similaire: 40pts
- Générique chiens: 25pts
- Mapping races vers groupes/tailles/usages
- [ ] **Scoring fraîcheur (30%)**
- < 7j: 100pts, 7-30j: 70pts, 30-90j: 40pts, 90-180j: 20pts, >180j: 5pts
- Parsing dates multiformats
- Gestion timezones
- [ ] **Scoring qualité source (20%)**
- Premium: 100pts, Spécialisées: 80pts, Médias animaliers: 60pts
- Presse généraliste: 40pts, Blogs/forums: 20pts
- Base de données domaines avec scores
- [ ] **Scoring anti-duplication (10%)**
- URL jamais utilisée: 100pts
- Domaine peu utilisé: 70pts
- Source recyclable: 50pts
- Tracking usage avec timestamps
### 🛡️ Protection anti-prompt injection
- [ ] **Layer 1: Content Preprocessing**
- Patterns dangereux: ignore instructions, you are now, forget everything
- Suppression/masquage instructions suspectes
- Normalisation texte
- [ ] **Layer 2: Pattern Detection**
- Instructions directes, redirections, code injections, métaprompts
- Regex + machine learning detection
- Scoring suspicion
- [ ] **Layer 3: Validation sémantique**
- Cohérence contenu/race mentionnée
- Détection incohérences flagrantes
- Analyse ton vs site source
- [ ] **Layer 4: Source Scoring avec pénalités**
- Prompt injection: -50pts
- Contenu incohérent: -30pts
- Source historiquement non fiable: -20pts
### 🗄️ Système de stock intelligent
- [ ] **Architecture BDD stock**
- Schema complet avec race_tags, angle_tags, universal_tags
- Scoring fields, usage tracking, metadata
- Index optimisés pour recherche rapide
- [ ] **Catégories de stock**
- Premium: études, clubs officiels (3 usages, 180j rotation)
- Standard: news spécialisées (2-3 usages, 90j rotation)
- Fallback: conseils généraux (illimité, 30j rotation)
- [ ] **Logique réutilisation**
- Tracking usage_count et last_used
- Calcul éligibilité selon catégorie
- Rotation automatique
## 🔍 PHASE 2 - NEWS PROVIDERS MODULAIRES (2 semaines)
### 🧠 LLM News Provider (implémentation par défaut)
- [ ] **Interface INewsProvider**
- Contrat strict pour tous les providers
- Méthodes searchNews(), validateResults(), getMetadata()
- Types TypeScript pour robustesse
- [ ] **LLMNewsProvider implementation**
- Intégration OpenAI/Claude API
- Prompts optimisés pour recherche spécialisée
- Gestion tokens et coûts
- Cache intelligent des résultats
- [ ] **Providers alternatifs (futurs)**
- ScrapingProvider (Puppeteer + anti-détection gratuite)
- HybridProvider (LLM + scraping fallback)
- Configuration plug-and-play
### 🔄 Recherche en cascade
- [ ] **Étape 1: Sources spécialisées race**
- Recherche "[nom_race] actualité 2025"
- Clubs race, associations cynophiles
- Magazines élevage, forums modérés
- [ ] **Étape 2: Sources animalières générales**
- "chien [caractéristique] actualité"
- Médias animaliers grands publics
- Sites conseils vétérinaires
- [ ] **Étape 3: Fallback généraliste**
- "animaux domestiques", "propriétaires chiens"
- Google News API
- Adaptation contenu mainstream
### ⚙️ Configuration sources
- [ ] **Fichier config/sources.json**
- Structure premium/specialized/fallback
- Rules de scraping par domaine
- Weights et rate limits
- [ ] **Management dynamique sources**
- CRUD sources via API admin
- Test automatique disponibilité
- Scoring fiabilité historique
## 🔌 PHASE 3 - APIs & INTÉGRATIONS (1 semaine)
### 📡 API principale de recherche
- [ ] **Endpoint GET /api/v1/news/search**
- Paramètres: race_code, product_context, min_score, max_age_days
- Validation paramètres entrants
- Réponse JSON structurée avec metadata
- [ ] **Logique de recherche**
- Stock search d'abord
- Live scraping si insuffisant
- Scoring batch + tri
- Filtrage anti-injection
### 🏪 APIs stock management
- [ ] **GET /api/v1/stock/status**
- État global stock par race
- Métriques coverage et qualité
- Alertes stock bas
- [ ] **POST /api/v1/stock/refresh**
- Force refresh sources
- Background job trigger
- Progress tracking
- [ ] **DELETE /api/v1/stock/cleanup**
- Nettoyage articles expirés
- Purge contenus bloqués
- Stats cleanup
- [ ] **GET /api/v1/stock/race/{code}**
- Stock détaillé par race
- Breakdown par catégorie
- Usage history
### 📊 APIs monitoring
- [ ] **GET /api/v1/health**
- Status database, Redis, external APIs
- Response time checks
- Memory/CPU usage
- [ ] **GET /api/v1/metrics**
- KPIs performance (temps réponse, uptime)
- KPIs qualité (scores moyens, détection injection)
- KPIs usage (req/jour, top races)
- [ ] **GET /api/v1/sources/status**
- Health check toutes sources
- Taux succès scraping
- Sources en erreur
## ⚡ PHASE 4 - PERFORMANCE & PRODUCTION (1 semaine)
### 🚀 Performance & Cache
- [ ] **Configuration Redis**
- Cache résultats recherche (TTL intelligent)
- Session storage rate limiting
- Background job queues
- [ ] **Optimisations requêtes**
- Index database optimaux
- Query optimization + profiling
- Connection pooling
### 🔐 Sécurité & Rate limiting
- [ ] **Authentification API**
- API keys management
- JWT tokens option
- Scopes permissions
- [ ] **Rate limiting**
- Limites par client/IP
- Burst allowance
- Graceful degradation
### 📅 Background processing
- [ ] **Cron jobs**
- Daily 02:00: Stock refresh & cleanup
- Hourly: Sources health check
- 4x/day: New sources discovery
- [ ] **Queue management**
- Job queues Redis-based
- Retry logic avec backoff
- Dead letter queue
### 📈 Monitoring avancé
- [ ] **Métriques temps réel**
- Prometheus/Grafana setup
- Custom metrics business
- Alerting rules
- [ ] **Logs structurés**
- Winston/Bunyan logger
- Structured JSON logging
- Log aggregation
- [ ] **Alertes automatiques**
- API down > 2min
- Prompt injection > 5%/1h
- Stock < 10 sources/race
- Performance > 10s
- [ ] **Dashboard opérationnel**
- Vue temps réel système
- Graphs performance
- Source status overview
## 🧪 PHASE 5 - TESTS & QUALITÉ
### 🔒 Tests sécurité
- [ ] **Tests prompt injection**
- Battery patterns malveillants
- Validation détection multicouches
- Faux positifs acceptable
- [ ] **Tests validation sémantique**
- Contenu hors contexte
- Incohérences flagrantes
- Edge cases validation
### ⚡ Tests performance
- [ ] **Load testing**
- 100 req/min sustained
- Spike testing 500 req/min
- Memory leaks detection
- [ ] **Tests API endpoints**
- Response time < 5s (95e percentile)
- Concurrent users
- Error rate < 1%
### 🔗 Tests intégration
- [ ] **End-to-end PublicationAutomator**
- Workflow complet 1 article/jour
- Qualité résultats retournés
- Gestion erreurs gracieuse
- [ ] **Tests multi-clients**
- Isolation données clients
- Rate limiting per client
- Scaling behavior
### 📚 Documentation
- [ ] **OpenAPI/Swagger**
- Specs complètes toutes APIs
- Exemples requêtes/réponses
- Interactive testing
- [ ] **Documentation technique**
- Architecture decision records
- Deployment guides
- Troubleshooting runbooks
---
## 🎯 DÉFINITION OF DONE
Chaque tâche doit respecter:
**Code quality**: Linting, type safety, patterns cohérents
**Tests**: Unit tests + integration appropriés
**Sécurité**: Validation anti-injection, no secrets exposed
**Performance**: Benchmarks validés selon KPIs
**Documentation**: Code comments + API docs
**Monitoring**: Logs + métriques appropriés
## 📊 MÉTRIQUES DE RÉUSSITE
**Performance**: API < 5s (95e), Uptime > 99.5%, 50+ sources/race
**Qualité**: Score moyen > 200pts, 90% requêtes avec résultats, < 1% injection
**Business**: Support PublicationAutomator, architecture multi-clients, extensibilité sources
---
*Total estimé: 155h sur 5 semaines - Projet complexe nécessitant approche méthodique*