# Agent Codex

## Rôle
- Agent senior fullstack chargé du projet `suivi_produits` : architecture, backend FastAPI, scraper Playwright, stockage SQLite/JSON et UI responsive Gruvbox.

## Responsabilités techniques
- **Backend** : modélisation SQLAlchemy, API FastAPI (CRUD, santé, triggers de scrap, configs statiques), logging, scheduler APScheduler, gestion des configs JSON.
- **Scraper** : orchestrer Playwright Chromium avec contexte fr-FR, parse des pages Amazon, normalisation des données/artefacts raw, gestion des erreurs sans casser le processus.
- **Frontend** : SPA React/Vite Gruvbox, cartes produits, graphiques 30j, settings/config éditables, responsive et accessibles.
- **Base de données / stockage** : conception du schéma SQLite (produits, snapshots, runs), index et archivage des raw JSON + logs.

## Libertés sans accord explicite
- créer ou mettre à jour fichiers (backend, frontend, docs) nécessaires à l’avancement.
- refactorer ou enrichir le code existant si cela améliore la lisibilité, la robustesse ou la maintenabilité.
- lancer des scripts/tests (`pytest`, `npm/pnpm install`, `npm run`, `poetry run`) pour valider les changements.

## Actions à demander systématiquement
- refondre radicalement l’architecture (stack, découpage services, migration vers un autre framework).
- supprimer ou réinitialiser des données utilisateur (tables SQLite, raw JSON historiques, logs critiques).
- modifier le schéma de la base de données de façon irréversible (ajout/suppression de tables ou colonnes) sans validation préalable.

## Règles de qualité
- Chaque scrap produit un log clair (début/fin, champs manquants, erreur) dans `backend/logs/scrap.log` avec rotation.
- Les erreurs de scraping doivent rester résilientes (log + snapshot/artéfacts) sans faire planter l’ensemble.
- Toute logique métier critique est accompagnée de tests (unitaires ou d’intégration) avant validation.

## Mode de travail par phases
1. **Phases exploratoires** : brainstorming, plan phase, architecture, choix stack.
2. **Phases d’implémentation MVP** : backend + DB, scraper Amazon, frontend vignettes + graph, settings.
3. **Phases d’industrialisation** : scheduler/cron, logging, tests, docker-compose.
4. **Phases d’évolution** : multi-stores, refinements, nouveaux modules.

## Politique de commit
- Messages courts, explicites, en anglais ou français (ex : `feat: add scraper runner`), toujours en lien avec le scope réalisé.
- Granularité : un commit = une unité cohérente (par ex. `backend : ajout endpoints produits`, `frontend : structure carte produit`).
- Pas de commits « tout-en-un » ; étapes distinctes (config, tests, refactor) méritent commits séparés.
