Calculs nutritionnels (BMR, TDEE, macros) avec inference automatique des objectifs. Utiliser quand l'utilisateur demande ses besoins caloriques ou nutritionnels.
Resources
2Install
npx skillscat add mzt-76/ai-nutrition/nutrition-calculating Install via the SkillsCat registry.
SKILL.md
Nutrition Calculating - Calculs de Besoins
Quand utiliser
- L'utilisateur demande un calcul de besoins nutritionnels
- L'utilisateur fournit des donnees biometriques (age, poids, taille)
- L'utilisateur mentionne un objectif (prise de muscle, perte de poids)
- Apres modification des objectifs dans le profil
Workflow
- Verifie si les donnees biometriques sont dans le profil (via
fetch_my_profile) - Si donnees manquantes ET utilisateur les fournit dans son message : Appelle
update_my_profilepour sauvegarder - Gestion des Objectifs :
- Si objectifs definis dans le profil (champ
goalsnon-null) : Utilise-les - Si l'utilisateur mentionne un objectif dans son message : Infere automatiquement (ex: "je veux prendre du muscle" -> muscle_gain)
- Si AUCUN objectif defini ET aucun contexte : Utilise "Sante/Maintenance" (maintenance: 7) et explique :
- "J'ai utilise un objectif de maintenance (sante generale) par defaut"
- "Si tu as un objectif specifique (perte de poids, prise de muscle, performance), dis-le moi pour recalculer !"
- Si objectifs definis dans le profil (champ
- Utilise
calculate_nutritional_needsavec les donnees (profil OU message utilisateur)- Les résultats (BMR, TDEE, macros) sont auto-sauvegardés dans le profil — pas besoin d'appeler
update_my_profilepour les cibles nutritionnelles.
- Les résultats (BMR, TDEE, macros) sont auto-sauvegardés dans le profil — pas besoin d'appeler
- Explique les resultats (BMR, TDEE, cible calorique, macros)
- Fournis des conseils pratiques d'application
- APRES LE CALCUL :
- Propose TOUJOURS de generer un plan alimentaire : "Veux-tu que je genere un plan de repas hebdomadaire base sur ces cibles ?"
- SI l'utilisateur confirme : NE RECALCULE PAS les macros, PASSE DIRECTEMENT a la generation du plan
RAPPEL : Quand l'utilisateur dit "23 ans, homme, 86kg, 191cm, sedentaire", tu DOIS extraire ces donnees et les sauvegarder avec update_my_profile avant de calculer.
Outils de profil
fetch_my_profile: Recuperer donnees existantesupdate_my_profile: Sauvegarder nouvelles donnees
Exécution
# Prise de masse
run_skill_script("nutrition-calculating", "calculate_nutritional_needs", {
"age": 35, "gender": "male", "weight_kg": 87, "height_cm": 178,
"activity_level": "moderate", "context": "objectif prise de masse"
})
# -> target_calories = TDEE + 300
# Perte de poids
run_skill_script("nutrition-calculating", "calculate_nutritional_needs", {
"age": 28, "gender": "female", "weight_kg": 65, "height_cm": 165,
"activity_level": "moderate", "context": "perdre du poids"
})
# -> target_calories = TDEE - 500Paramètres :
age(int, requis) : 18-100gender(str, requis) : "male" ou "female"weight_kg(float, requis)height_cm(int, requis)activity_level(str, requis) : sedentary, light, moderate, active, very_activegoals(dict, optionnel) : Scores 0-10 → weight_loss, muscle_gain, performance, maintenanceactivities(list[str], optionnel) : Ex: ["musculation", "basket"]context(str, CRITIQUE) : Texte utilisateur pour inférence automatique des objectifs. Sans context → maintenance.
Scripts disponibles :
scripts/calculate_nutritional_needs.py: BMR (Mifflin-St Jeor) → TDEE → inférence objectifs → macros
Affichage OBLIGATOIRE des résultats
Après avoir reçu le JSON de calculate_nutritional_needs, tu DOIS inclure dans ta réponse :
- BMR : valeur exacte en kcal (champ
bmr) - TDEE : valeur exacte en kcal (champ
tdee) - Cible calorique : valeur exacte en kcal (champ
target_calories) - Protéines : valeur exacte en g (champ
target_protein_g) avec la fourchette min-max - Glucides : valeur exacte en g (champ
target_carbs_g) - Lipides : valeur exacte en g (champ
target_fat_g)
Ne jamais arrondir ou paraphraser ces valeurs — les afficher exactement comme retournées.
References
references/formulas.md: Detail des formules Mifflin-St Jeor et recommandations ISSN