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

8.9 KiB
Raw Permalink Blame History

📋 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