Ce panneau reflète en direct les décisions de l'arbre projet.
Changements v3 vs v2
Flow reco : bouton → page dédiée en 5 étapes (QUOI/COMMENT) — d13.
Ranking repensé : tiers S/A/B au lieu de verdict ; option « mon fart actuel » ; zones, pas sentence — arch-l1-efficacy-ranking v2.
Inventaire pro : checkboxes 7 catégories (Base/Race/Training/Propulseur/Liquid/Spray/Remover) + alternative si stock incomplet — arch-l2-pro-inventory.
Plan A acté (d11) : freemium à quotas, compteur 10 recos/mois côté gratuit.
Brossage : nouvelle branche R&D, protocole étape-par-étape dans le flow, whitepaper dans Publications, module Éducation.
Bug Vola corrigé dans selectionEngine.ts (s.disc → s.discipline) — td-disc-bug shipped.
SDK Anthropic retiré de package.json + app.json — td-remove-sdk.
v3.1 Couplage thermique : sliders Air↔Neige liés (-2 °C par défaut, biais IFSC), humidité auto/manuel, chips d'avertissement R-T03 (soleil), R-T07 (écart > 8 °C), R-T08 (Air > +5 °C) — voir docs/RD_Couplage_Thermique_v1.md.
v3.2 Catalogue XLSX 25/26 : ouverture du CATALOG à 160 produits réels (Holmenkol 20 · Swix 37 · Vola 45 · Maplus 36 · Toko 22), 5 catégories (FART DUR, LIQUIDE/GEL, TOP FINISH, PROPULSEUR, NETTOYANT), snowC/ironC en °C natifs, tags PB auto-dérivés (race, abrasion, humid, cold, base_prep…) — source constants/waxCatalog.json.
v3.2 Résultat « comme un jeu » (arch-l1-detailed-flow) : refonte 5 cartes → 3 cartes — (1) Régime + conditions simple avec sous-page « analyse complète », (2) Le fart choisi en gros (ribbon, nom 22px, tags fer/snowC/score) + toggle « Afficher zone de compatibilité », (3) Protocole numéroté gamifié fartage→brossage→structure/topcoat avec règles R-B inline.
v3.2 PB chips inventaire pro (arch-l2-pro-bestinstock) : barre de filtres en tête du tab Inventaire, par tag PB (Humide/Froide/Race/Abrasion…), comptes en direct, tags mini sur chaque ligne. Ferme la boucle XLSX → tags auto → UX filtrable.
v3.3 Couches d'application (RD_Fartage §4) : Carte 2 refondue en stack base → course → fini avec ses propres règles d'activation (base si FIS/WC ou régime extrême, fini si WC/FIS-race/sunny/wet). Chaque couche pickByRole sur le score régime, badge couleur (violet base · vert course · ambre fini), explication "pourquoi cette couche" sous chaque pick. Carte 3 protocole réorganisé en chapitres par couche, chacun avec son cycle fer/refroidir/racler dérivé du wax.iron de la couche choisie ; brossage R-B et structure unifiés à la fin.
v3.4 Micro-scoring + filtre marque strict + ConditionAnalyzer (arch-l1-efficacy-ranking) : (a) microScoreBoost(w,a,state) discrimine les variantes du même brand par lecture de codes du nom (HM/HC=froid · LM/LC/W=chaud · HF=race · LF=training · WC/Worldcup=premium) — Vola HM ≠ Vola LM désormais ; (b) filtre marque strict : si une marque est cochée, computeTiers ne retient que ses farts (avec fallback explicite si rôle absent) ; (c) bandeau ANALYSE PHYSIQUE · ConditionAnalyzer restauré dans Carte 1 (4 chips Régime/Classe/Dureté/Structure + ligne Additif/Topcoat) — clin d'œil Preview v2.
v3.4 Inventaire pro drill-down (arch-l2-pro-inventory) : refonte du long scroll en 3 niveaux navigables — marque → catégorie → couleur/sous-cat. Breadcrumb cliquable, compteur "owned/total" à chaque niveau, retour direct vers Pro. Plus besoin de scroller 160 lignes pour cocher une référence.
v3.5 R&D différenciation farts (multi-axes) — réponse au feedback "X-Hard Base 100 / HMrace Blue 100 / HMrace Blue Moly 100 / MX-E Blue 100 / HMrace Blue Liquid 100 / LMrace Blue 99". Cause racine identifiée : le score de fit régime saturait à 100, ne laissant aucune marge pour les différenciateurs. Fix : plafond fit régime baissé à 78 + 6 axes de différenciation dans microScoreBoost — (1) thermique formulation HM/LM uniquement (pas la couleur, déjà gérée par targetRegime) · (2) gamme tier top/race/mid-race/perf/entry via detectGammeRank · (3) format solid/liquid/spray/powder/paste via detectFormat (liquide ≠ session) · (4) additifs Moly utile uniquement si pb=dirty, graphite spring/dirty, fluoro race · (5) rôle vs contexte base wax non primaire en course (-10), cleaner -25, finish hors course -4 · (6) niveau coureur top gamme malus pour amateur, entry malus pour WC. Validé sur les 6 farts du user (Cold dry / Vola / FIS race-day) : HMrace Blue 87 · HMrace Blue Moly 84 · HMrace Blue Liquid 84 · MX-E Blue 78 · X-Hard Base 74 · LMrace Blue 71 — spread 16 pts, classement physiquement cohérent. En conditions sales (pb=dirty), Moly remonte à 94 et passe en tête. Source : RD_Fartage_Alpin §3-4-6, nomenclature constructeurs.
v3.7 Vue Desktop preview — toggle 📱 Mobile / 🖥️ Desktop en tête de panneau (mémo localStorage). En mode Desktop, le wrapper devient une fenêtre browser-style 1280×820 avec 3 dots Mac et titlebar « WaxAdvisor — fart du jour », le contenu se centre à 980px max avec un padding 60px, les titres montent à 32px et la nav du bas s'épaissit. Préparation de la V1 web (waxadvisors.com / .vercel.app) : on peut désormais itérer le layout desktop sans casser la version mobile. Suivants : (a) hide dev-panel en prod, (b) responsive media queries natives (sans toggle), (c) layout 2-col résultats, (d) PWA manifest pour installation iPad/Mac.
v3.6 R&D approfondie — physique fine du fart (extension du modèle v3.5, en réponse à "améliore encore ta compréhension des farts"). 5 axes physiques supplémentaires dans microScoreBoost — (7) iron-temp matching : w.ironC sert de proxy direct du modulus de la cire ; on calcule expectedIron = 160 − regimeScore×0.5 (cold = 160°C, mid = 145°C, warm = 110°C) et on dock −4 si l'écart > 30°C, −2 si > 20°C, +2 si < 8°C sur du top/race. Conséquence concrète : MX-E Blue passe de 78 à 74 car son fer (120°C) est à 34°C de l'optimum cold ; HMrace Blue (150°C) reste à 89 · (8) couplage cristal de neige : si crystals=pp/df (cristaux frais/décomposés) → bonus HM/HC, malus LM/LC en cold ; si crystals=mf/if (transformée/glace) → bonus Moly/Graphite (+3) et mid-race · (9) humidité × format × fluor : en humide, liquide-finish race-day +3, fluoré race-day +2, graphite +1 ; en cold sec, liquide hors course −2 · (10) pb=cold explicite : bonus HM (+2), Moly (+1), top gamme (+1) — pb='cold' n'est plus un tag mort · (11) discipline : DH/SG → poudre race-day haut niveau +2, top gamme +1 ; SL → poudre −2 (vitesse moins critique). cross-brand detectGammeRank étendu : Vola (MX901/HMrace/LMrace/MCrace/MX-E), Swix (TS/PS/HS/PF/TST/PSP/HFX/CH/F4), Toko (JetStream/JET/WC/HF/LF/NF), Maplus (Xcelerate Pro/GM/BP10/FP4), Holmenkol (Syntec FF1/FF21/Speedfinish/Ultramix/Betamix/Alphamix). Régression 4 scénarios × 5 marques = 20/20 PASS ; sanity ✓ (aucun cleaner en top10 race-day, top1 cold = wax cold-targeted). Doc : docs/RD_Differenciation_Farts_v1.md §7-11.
Règles R-T* couplage thermique actives
R-T01 par défaut T_neige = T_air − 2 °C (biais IFSC, manteau 10 cm)
R-T02 humidité auto = f(spread) : ≥4°C → 50% / ≥2°C → 65% / sinon → 80%
R-T03 ☀️ T_air > 0 °C ET spread > 4 °C → warn « névé soleil »
R-T04 toggle 🔓 brise le lien air↔neige (forcé si neige modifiée à la main)
R-T05 toggle « manuel » brise le calcul auto humidité
R-T06 retour à « auto » → recalcule l'humidité depuis le spread courant
R-T07 ⚠️ |spread| > 8 °C → warn « incohérence physique »
R-T08 🌡 T_air > +5 °C → info « hors domaine alpin classique »