mzt-76

nutrition-calculating

Calculs nutritionnels (BMR, TDEE, macros) avec inference automatique des objectifs. Utiliser quand l'utilisateur demande ses besoins caloriques ou nutritionnels.

mzt-76 1 Updated 3mo ago

Resources

2
GitHub

Install

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

  1. Verifie si les donnees biometriques sont dans le profil (via fetch_my_profile)
  2. Si donnees manquantes ET utilisateur les fournit dans son message : Appelle update_my_profile pour sauvegarder
  3. Gestion des Objectifs :
    • Si objectifs definis dans le profil (champ goals non-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 !"
  4. Utilise calculate_nutritional_needs avec 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_profile pour les cibles nutritionnelles.
  5. Explique les resultats (BMR, TDEE, cible calorique, macros)
  6. Fournis des conseils pratiques d'application
  7. 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 existantes
  • update_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 - 500

Paramètres :

  • age (int, requis) : 18-100
  • gender (str, requis) : "male" ou "female"
  • weight_kg (float, requis)
  • height_cm (int, requis)
  • activity_level (str, requis) : sedentary, light, moderate, active, very_active
  • goals (dict, optionnel) : Scores 0-10 → weight_loss, muscle_gain, performance, maintenance
  • activities (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