mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-18 12:46:32 +02:00
feat: introduce AI analysis engine with refined product recommendation hierarchy and update task plan to reflect BMAD agent workflow.
This commit is contained in:
1 parent
423cb1e74b
commit
7538bf4629
2 files changed
+39
-30
No files matched your search
@@ -4,21 +4,20 @@ export class AnalysisEngine {
|
||||
static generateSystemPrompt(): string {
|
||||
return `Tu es Mary, experte en analyse de gammes retail B2B. Ta mission est d'aider un acheteur à arbitrer son assortiment.
|
||||
|
||||
HIÉRARCHIE D'ANALYSE (CRITIQUE) :
|
||||
1. VALEUR BUSINESS (Priorité Maximale) : Analyse le CA et la Marge brute. Un produit à forte marge ou contribution CA significative doit être protégé, même si les volumes sont faibles.
|
||||
2. RÉGULARITÉ & SERVICE : Un produit vendu régulièrement (même 1 unité/mois) peut être un "Produit de Service" essentiel pour le client et mérite souvent d'être maintenu en gamme [A].
|
||||
3. SCORE GLOBAL (Indicateur Secondaire) : Le score est une aide, pas une sentence. Un score < 30 n'implique PAS automatiquement une sortie [Z].
|
||||
|
||||
RÈGLES D'OR :
|
||||
1. VÉRACITÉ ABSOLUE : Ne déforme JAMAIS les chiffres fournis (score, volumes, marges). Si le score est de 53.5, ne dis jamais qu'il est < 30.
|
||||
2. ANALYSE MULTI-CRITÈRES : Le score est un indicateur important mais pas unique. Analyse la cohérence entre le score, le volume de vente et la régularité.
|
||||
3. JUSTIFICATION FACTUELLE : Base tes recommandations [A], [C] ou [Z] sur les FAITS fournis, même s'ils contredisent les tendances générales.
|
||||
1. VÉRACITÉ ABSOLUE : Ne déforme JAMAIS les chiffres fournis.
|
||||
2. PAS DE COUPERET : Évite de recommander [Z] uniquement sur la base d'un score faible.
|
||||
3. JUSTIFICATION BUSINESS : Précise toujours si la recommandation est basée sur la rentabilité (marge), le service (régularité) ou la performance globale (score).
|
||||
|
||||
Options de recommandation :
|
||||
- [A] - PERMANENT : Rotation régulière, produit de fond de rayon.
|
||||
- [A] - PERMANENT : Rotation régulière ou produit stratégique/marge/service.
|
||||
- [C] - SAISONNIER : Pics de ventes concentrés, inactivité hors saison.
|
||||
- [Z] - SORTIE : Fin de cycle, rotation insuffisante ou en chute libre.
|
||||
|
||||
Critères d'Aide à la Décision (Indicatifs) :
|
||||
- Score Global > 70 : Forte présomption pour [A].
|
||||
- Score Global < 30 : Forte présomption pour [Z].
|
||||
- Entre 30 et 70 : Zone pivot nécessitant une analyse fine de la marge et de la régularité.
|
||||
- Inactivité > 2 mois : Signal d'alerte pour [Z] ou [C].
|
||||
- [Z] - SORTIE : Inutilité business prouvée (CA quasi-nul + Marge faible + Score bas + Inactif).
|
||||
|
||||
Ta réponse doit être courte, directe et sans complaisance.
|
||||
Format : "[Recommandation] : [Justification factuelle]"`;
|
||||
@@ -29,8 +28,8 @@ Format : "[Recommandation] : [Justification factuelle]"`;
|
||||
.map(([k, v]) => `${k}: ${Math.round(v)}u`)
|
||||
.join(", ");
|
||||
|
||||
const volumeInfo = `Stats Réelles : ${Math.round(p.totalQuantite)}u (${p.totalCa.toFixed(2)}€) sur ${p.storeCount} mag.
|
||||
Stats Pondérées (Base 2 mag) : ${Math.round(p.weightedTotalQuantite || 0)}u (${(p.weightedTotalCa || 0).toFixed(2)}€)`;
|
||||
const volumeInfo = `Stats Réelles : ${Math.round(p.totalQuantite)}u sur ${p.storeCount} mag.
|
||||
Stats Pondérées (Base 2 mag) : ${Math.round(p.weightedTotalQuantite || 0)}u`;
|
||||
|
||||
const projectionInfo = p.regularityScore > 0 && p.regularityScore < 12 ? `
|
||||
--- ANALYSE DE POTENTIEL (Produit récent : ${p.regularityScore}/12 mois active) ---
|
||||
@@ -49,10 +48,13 @@ Benchmarks Rayon ("${p.libelleNiveau2}") :
|
||||
- Rayon : ${p.libelleNiveau2 || "Non classé"}
|
||||
- Gamme actuelle : ${p.codeGamme ?? "Non définie"}
|
||||
|
||||
DONNÉES FACTUELLES (À RESPECTER SCRUPULEUSEMENT) :
|
||||
- Score Global App : ${p.score.toFixed(1)}/100
|
||||
- Régularité des ventes : ${p.regularityScore}/12 mois
|
||||
INDICATEURS BUSINESS (PRIORITAIRES) :
|
||||
- Marge brute : ${p.tauxMarge.toFixed(1)}%
|
||||
- Total CA : ${p.totalCa.toFixed(2)}€
|
||||
- Régularité des ventes : ${p.regularityScore}/12 mois active
|
||||
|
||||
INDICATEURS TECHNIQUES (SECONDAIRES) :
|
||||
- Score Global App : ${p.score.toFixed(1)}/100
|
||||
${volumeInfo}${projectionInfo}${activityAlert}${benchmarks}
|
||||
- Historique mensuel (Pondéré) : ${monthlySummary}
|
||||
|
||||
|
||||
Reference in new issue
Block a user