Pipeline IA · V2.0 · Registre transverse

User Beliefs — croyances de l'utilisateur

Le registre complet des catégories, KPI et croyances déclarées : type de donnée, optimum connu, sens (vers le Bien ou vers le Mal), fenêtre d'application comme déclencheur, caractère cumulatif, effets attendus. Ces croyances pilotent l'encodage des facteurs (pilier 0) et sont des hypothèses que le moteur vérifie — jamais des limites à la recherche ouverte.

Statut d'une croyance

Une croyance est un a priori révisable : le moteur l'utilise ET la teste (fenêtre déclarée + fenêtres voisines). Chaque croyance est marquée confirmée / infirmée / affinée au carnet d'hypothèses. Une étape de remise en question des croyances est prévue si le modèle final ne fonctionne pas.

Sens : ↑ Bien / ↑ Mal / optimum central (les deux écarts sont Mal) Fenêtre : délai (effet X j après) / persistance (effet durable X j) / cumul (la répétition aggrave) Valeurs : fixées {liste fermée} ou libres Valeur par défaut : NA = aucune (reste « Non renseigné ») — sinon la valeur posée d'office

🌟North Star — l'hypothèse de base

Chaque utilisateur entre son North Star Statement à la création de son compte (écran dédié, après l'inscription ; visible en lecture seule dans Réglages → II. Moteur → Les données entrées). C'est la boussole des analyses : il définit ce qu'est un jour à cibler.

Statement (Elena, 07/07/2026)

« Lorsque je vais bien, je n'ai pas de douleur, pas de brain fog, j'ai plein d'énergie et je suis de bonne humeur. Lorsque je ne vais pas bien, c'est surtout lorsque je n'ai pas d'énergie, je suis très fatiguée, et j'ai du brain fog. J'aimerais étudier les corrélations entre tous les facteurs de mon quotidien, pour comprendre ce qui amène aux jours où je ne vais pas bien. »

Traduction en indicateurs (format data)Définition
Good DayDouleurs = non ET Brain fog = non ET Fatiguée = non ET Humeur = Bonne
Bad Day (jour à cibler)Brain fog = oui ET Fatiguée = oui

Le Bad Day est un méta-facteur (facteur agrégé : série booléenne « oui » quand la condition North Star est remplie) — la cible du Step 3 : ce sont les corrélations qui précèdent ce méta-facteur qui sont investiguées (regard J−3). Champ non éditable dans cette version (évolution au backlog).

🌙 Sommeil 5 KPI + en vrac · nuit rattachée au matin où elle se termine
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Heure de coucher
heure-horloge
21 h 30 (au repère : 21 h 00 – 22 h 00)optimum central, asymétrique : trop tard PIRE que trop tôtdélai 1 j (via « mauvais sommeil »)nonNASi coucher trop tardif → Brain fog et Fatiguée le lendemain, toute la journée
Heure de réveil
heure-horloge
6 hréveil naturel 5 h 30 – 6 h 30 = Bien · avant 5 h 30 = neutre · 6 h 30 → 8 h = neutre · après 8 h = Maldélai 1 jnonNA
Heures de sommeil
durée h:mm
plage 8 h – 9 hoptimum central : dormir entre 8 h et 9 h = Bien ; en dehors de la plage = Maldélai 1 j — toute la journée suivanteOUINASi la durée sort de la plage 8 h – 9 h → Brain fog et Fatiguée le lendemain, toute la journée
Réveils nocturnes
nombre
0 (monotone)↑ Maldélai 1 jnonNAS'il y a eu des réveils nocturnes → Fatiguée le lendemain
Sommeil réparateur
booléen · fixées {oui, non}
ouioui = BienOUINAsubjectif, jamais dérivable ; toujours sollicité le matin
En vrac
texte · libres
NA« rêves intenses », « ronflements »…
🍽️ Alimentation 4 KPI · occurrence = la prise alimentaire
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Nb de repas / jour
nombre (dérivé)
2 prisesoptimum central : >2 = Mal ; <2 = impact inconnujour mêmeOUINA>2 prises → Fatiguée ; paliers 0 · 1 · 2 · 3+
Heure du dernier repas
heure-horloge (dérivé = heure de la dernière prise du jour)
avant 19 hplus tôt = Bien · après 19 h = Maldélai 0 (le soir même et la nuit qui suit)nonNASi repas après 19 h → perte de poids compliquée (Poids : Δ) · mauvaise nuit (durée / réveils / réparateur) · soif intense (= Bouche sèche : oui, synonyme déclaré)
Litres d'eau / jour
nombre (L)
plage 3 – 4,5 L (minimum 3 L)moins de 3 L = Mal · 3 – 4,5 L = Bien · au-delà de 4,5 L = neutredélai 0 — la journée même (journée = du réveil au réveil suivant)non3 Ldéclaration en fin de journée, non cumulée ; sinon défaut 3 L (MAJ 07/07)
Fadi / Didi (par prise)
étiquette · fixées {Fadi, Didi}
FadiFadi = neutre (aucun impact) ; Didi = Mal — seule Didi est analyséedélai 0 (les heures qui suivent, même journée)OUI — 2 jours Didi consécutifs > 2 jours Didi séparés par un jour FadiNAimmédiat : Douleurs, Sommeil (nuit suivante), Fatiguée · cumulatif : Fatiguée, Poids (Δ, cf. catégorie ⚖️)
Détail des aliments
texte · libres
NAtranscrit si donné ; base des critères Fadi/Didi auto en v3
🏃 Activité 3 KPI · le modèle classe Sport vs Mouvements
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Séances de sport (transpiration)
nombre
↑ Bienpersistance 2 j (effet positif J et J+1)inconnu — le moteur testera0satiété (= Faim : non, synonyme validé) · perte de poids (Poids : Δ ↓) · pas de Brain fog
Mouvements (sans transpiration)
booléen · fixées {oui, non} — danse, yoga, cœur qui monte sans transpirer
oui = Bien (léger)délai 0 (immédiat)nonNonpositif léger sur l'état général : Sommeil · Humeur · satiété (= Faim : non) · DouleursMAJ 07/07 : déclaré jamais effet (§ Paires disqualifiées) → seule la direction Mouvements/Étirements → X est testée
Étirements
booléen · fixées {oui, non}
oui = Bien (léger)délai 0 (immédiat)nonNonpositif léger sur l'état général : Sommeil · Humeur · satiété (= Faim : non) · DouleursMAJ 07/07 : déclaré jamais effet (§ Paires disqualifiées) → seule la direction Mouvements/Étirements → X est testée
👥 Social 1 KPI
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Vu des gens
booléen · fixées {oui, non}
inconnuinconnu — à découvrir2 j (effet possible jusqu'à 2 jours)nonNoneffets à découvrir
🌡️ Climat 1 KPI · déclaratif (v3 : météo auto) · Humidité retirée pour l'instant
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Température ressentie
ordinal · fixées {Chaud, Neutre, Froid}
NeutreChaud = Mal · Froid = neutredélai 0 (immédiat)NON — chaque jour Chaud agit seul ; la répétition n'aggrave pasNAimpact négatif immédiat ; facteurs impactés à découvrir
🩺 Symptômes 9 KPI booléens · principalement des EFFETS (cibles des analyses)
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Douleurs
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNoncible de l'objectif santé
Brain fog
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNoncible de l'objectif santé
Fatiguée (ex-Énergie)
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNAcible de l'objectif santé ; « Énergie » = Fatiguée inversé
Envie de manger entre les repas
booléen · fixées {oui, non}
Nonnon = Bien · oui = Maldélai 0 (immédiat)nonNon
Faim entre les repas
booléen · fixées {oui, non}
Nonnon = Bien · oui = Maldélai 0 (immédiat)nonNonsynonymes gravés : « faim » → oui · « pas faim », « satiété » → non
Paupières irritées
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNon
Oreilles irritées
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNon
Bouche sèche
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNon
Colon irritable le matin
booléen · fixées {oui, non}
nonoui = Maldélai 0 (immédiat)nonNonsollicité le matin
🙂 Humeur 1 KPI · cible de l'objectif santé
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Humeur
étiquette · fixées {Bonne, Pas bonne}
BonneBonne = Bien— (rôle : effet)NAcible de l'objectif santé
⚖️ Poids 1 KPI · nouvelle catégorie v2 · discrétion : variations seulement
KPIOptimumSensFenêtre (déclencheur)CumulatifValeur par défautHypothèse User, à vérifier
Variation de poids (Δ depuis jour 0)
nombre (kg, 2 décimales) · saisie : variation (« perdu 500 grammes » → −0,50) ou chiffre absolu (converti en Δ, l'absolu n'est jamais affiché)
— (objectif : perte)baisse = Bien · hausse = Mal— (rôle : effet)NAcible des hypothèses : Didi cumulatif → prise · Sport → perte · dernier repas après 19 h → perte compliquée

Discrétion (phase de test)

Aucun chiffre absolu affiché : jour 0 = première déclaration = 0,00 ; l'écran Données montre uniquement le Δ cumulé (ex. −1,20 kg). Absent du Récap ; affiché en dernier dans la liste de l'onglet Données. ⚠️ Si un chiffre absolu est saisi, il reste visible dans le texte de l'Entrée (Journal) — préférer les variations pendant cette phase.

🚫Paires disqualifiées

Pour limiter le volume à analyser, l'utilisateur peut disqualifier des paires dirigées : un sens d'une paire qui n'a aucun sens à tester n'est jamais couru par le moteur. La disqualification est dirigée — exclure A → B ne touche pas B → A.

Aucun facteur n'a de rôle figé (précisé le 10/07/2026)

Un même facteur a de fortes chances d'être à la fois déclencheur et effet, selon le contexte : le moteur teste par défaut toutes les paires ordonnées, chaque état des deux côtés. Les raccourcis « jamais EFFET » / « jamais DÉCLENCHEUR » ci-dessous ne sont qu'une écriture compacte d'un paquet de paires dirigées disqualifiées d'un coup — ils n'informent en rien d'un caractère « uniquement déclencheur » ou « uniquement effet » du facteur lui-même.

Exemple

Eau → Vie sociale : disqualifiée — boire plus d'eau n'entraînera jamais une vie sociale, ça n'a pas de sens. Vie sociale → Eau : conservée — voir des gens peut entraîner de boire plus (ou moins) d'eau.

Règles par facteur (remplies le 07/07) — chaque règle disqualifie d'un coup toutes les paires du rôle exclu :

FacteurRôle excluConséquenceRaison déclarée
Heure de coucherjamais EFFETtoutes les paires X → Coucher disqualifiées ; Coucher → X conservéespeut entraîner des facteurs, mais n'est jamais entraîné PAR un autre facteur
Température ressentiejamais EFFETX → Température disqualifiéesrien n'entraîne ni ne bloque la température ressentie
Étirementsjamais EFFETX → Étirements disqualifiéesrien n'entraîne ni ne bloque le fait de faire des étirements
Mouvementsjamais EFFETX → Mouvements disqualifiéesrien n'entraîne ni ne bloque le fait de faire des mouvements
Paupières irritéesjamais DÉCLENCHEURPaupières → X disqualifiées ; reste un effet à expliquern'entraîne rien — conséquence d'un faisceau de facteurs inconnus ; probablement le signal de quelque chose
Oreilles irritéesjamais DÉCLENCHEUROreilles → X disqualifiées ; reste un effet à expliqueridem — conséquence d'un faisceau inconnu, probablement un signal

Paires dirigées disqualifiées (remplies le 10/07/2026) :

Déclencheur(s)Effet excluRaison déclarée
Tous les états Sommeil (sommeil hors plage, 2 nuits hors plage, coucher après 22 h, réveils nocturnes, sommeil non réparateur)Heure du dernier repasle sommeil n'a pas d'impact sur l'heure du dernier repas
Tous les états Alimentation (Repas Didi, Didi 2 j, eau insuffisante, dernier repas après 19 h, plus de 2 prises, moins de 2 prises)Vu des gensl'alimentation n'a pas d'impact sur la vie sociale
Sommeil → Mouvements / Étirements et X → Température ressentie (donnée exogène) : déjà couverts par les règles par facteur du 07/07 ci-dessus. Rappel : Fatiguée reste un déclencheur valide (ex. Fatiguée → prise alimentaire importante) tout en étant l'effet d'autres facteurs — aucun rôle figé.

Paires unitaires disqualifiées :

Paire disqualifiée (sens exclu)Sens inverse (conservé)Raison
Eau → Vu des gensVu des gens → Eaul'eau ne peut pas causer la vie sociale

Effet au Step 3 : les paires disqualifiées sont retirées du périmètre d'éligibilité avant le run (elles n'apparaissent pas non plus au tableau des paires de l'onglet Corrélations automatiques). Comme toute croyance, une disqualification est révisable.

🧭Croyances transverses

CroyanceContenuStatut
Objectif santébonne santé = pas de Douleurs · pas de Brain fog · pas Fatiguée · Humeur Bonne — les 4 « effets » prioritaires des analyses (ce qui est montré Bien / Pas bien). Codé en dur, non éditable en v2.CONFIRMÉ le 06/07
Tolérance « au repère »± 30 min autour d'un optimum horaire pour compter « au repère » — ne s'applique plus qu'au coucher : couché entre 21 h 00 et 22 h 00 = au repère (le réveil a ses zones propres, la durée sa plage 8 h – 9 h)tranché le 06/07
Asymétrie du coucherse coucher trop tard est PIRE que se lever trop tard (tranché 06/07)déclarée
Poids3 croyances le visent : Didi cumulatif → prise de poids · Sport avec transpiration → favorise la perte de poids · dernier repas après 19 h → perte de poids compliquée. Suivi en v2 comme catégorie ⚖️, en variation depuis le jour 0 (discrétion, jamais de chiffre absolu affiché)catégorie créée le 06/07
Satiétésynonyme validé : « satiété » = Faim : non (règle de vocabulaire d'extraction — le KPI reste le booléen Faim)validée le 06/07

Où ces croyances sont utilisées — formalisation

1. Encodage d'un facteur (Step 1 → Step 3, pilier 0)

Pour un KPI numérique x_t (jour t) d'optimum o et de tolérance τ :

écart : e_t = w⁺·max(x_t − o, 0) + w⁻·max(o − x_t, 0) (asymétrie : w⁺ > w⁻ pour le coucher) au repère : B_t = 1{ |x_t − o| ≤ τ } (booléen « jour idéal ») paliers : P_t ∈ {…} ex. repas {0, 1, 2, 3+} · sommeil {<7 · 7–8 · 8–9 (plage optimale) · >9}

Booléens : b_t ∈ {0,1}, avec troisième état (« Non renseigné ») — jamais imputé. Catégoriels : encodage one-hot par état (Chaud_t, Humide_t…) + score signé si le sens est déclaré. Le sens σ ∈ {+1, −1} oriente tout score vers « Bien » : s_t = σ·z_t (z = valeur normalisée). Fadi/Didi : la variable analysée est D_t = 1{≥ 1 prise Didi le jour t} et la dose D#_t ∈ {0, 1, 2+} ; aucun « effet Fadi » n'est testé (Fadi ≡ référence).

2. Construction temporelle (fenêtres déclarées)

Délai d : on corrèle X_t avec Y_{t+d}. Persistance p (sport) : X̃_t = max(X_t, X_{t−1}, …, X_{t−p+1}). Cumul c (Didi) : X̃_t = Σ_{k=0}^{c−1} X_{t−k} — la somme sur fenêtre glissante, qui distingue « 2 jours consécutifs » (X̃ = 2) de « 2 jours séparés » (X̃ ≤ 1 chaque jour). Non cumulatif (Chaud) : X̃_t = X_t, mémoire nulle au-delà du jour. Paires dirigées (07/07) : pour la direction A→B, la fenêtre testée est celle déclarée pour A (le déclencheur) — ex. Eau→Social à J ; Social→Eau sur J..J+1. Le moteur teste les fenêtres voisines d ∈ {0..3}, c ∈ {1..3} en affinage seulement (jamais le résultat rapporté) ; un déclencheur sans fenêtre déclarée → balayage 0–3 j exploratoire. Complété le 10/07/2026 : tout état corporel utilisé comme déclencheur — Symptômes (Douleurs, Colon irritable, Fatiguée, Brain fog, Bouche sèche…), Humeur, Poids — a une fenêtre immédiate (0 j). Plus aucun état du registre n'est sans fenêtre déclarée ; le balayage 0–3 j reste réservé à d'éventuels futurs facteurs non déclarés.

3. Dépistage (couche 1)

r(d, c) = Pearson( X̃_t , Y_{t+d} ) sur les paires complètes (x ≠ ∅ ET y ≠ ∅) ; n = #paires booléen×booléen → phi = (ad − bc)/√((a+b)(c+d)(a+c)(b+d)) · num×booléen → point-biserial

Régime confirmatoire : le test à la fenêtre déclarée (d*, c*) compte pour 1 seul test pré-enregistré (pas de correction multiple). Régime exploratoire : réservé aux déclencheurs sans fenêtre déclarée (balayage 0–3 j, argmax_d |r| pénalisé pour comparaisons multiples) et à l'affinage des fenêtres voisines — signalé au carnet, jamais substitué au résultat de la fenêtre déclarée.

4. Extraction de corrélations (couche 2)

condition C = conjonction d'états encodés, ex. C = { D#_{t−1} + D#_t ≥ 2 } ∧ { Chaud_t = 1 } support s(C) = #{t : C_t vrai} · confiance conf(C→E) = s(C ∧ E)/s(C) · lift = conf/P(E)

Chaque ligne du registre engendre des candidates pré-enregistrées, ex. « Didi cumulatif → Fatiguée » devient C = {D#_{t−1}+D#_t ≥ 2} → E = {Fatiguée_t = 1}, testée en confirmatoire. Les effets attendus déclarés (colonne du registre) fixent les E prioritaires par déclencheur.

5. Ranking (Step 4) & carnet

L'objectif santé définit l'ensemble cible O = {Douleurs = 0, BrainFog = 0, Fatiguée = 0, Humeur = Bonne} : les corrélations dont E ⊆ O (ou son complément) sont priorisées au classement. Chaque croyance du registre vit au carnet d'hypothèses avec un cycle : déclarée → testée (r, n, fenêtre retenue) → confirmée | infirmée | affinée ; une croyance infirmée n'est pas supprimée, elle est marquée — et la remise en question des croyances (re-encodage sans l'a priori) est déclenchée si le modèle final sous-performe.