Add on-demand meal-log health/calorie analyzer + git-sync README trap pitfall
- scripts/analyze_history.py: read-only per-meal/per-day kcal+protein+micronutrient review of meal-history.json, unit-aware via references/nutrition-db.json (g_per_unit conversion so veg logged in g vs count both resolve correctly) - references/nutrition-db.json: estimate per-item nutrition DB (ESTIMATE-grade; condiments/oil not logged => ~+80-120 kcal/meal real) - SKILL.md: 'Health / calorie review (on-demand)' section; 'Git-sync README trap' pitfall (live README may be a stub while repo README is the real doc -- safe-sync procedure); scripts + references pointers
This commit is contained in:
43
references/nutrition-db.json
Normal file
43
references/nutrition-db.json
Normal file
@ -0,0 +1,43 @@
|
||||
{
|
||||
"_meta": "Estimate nutrition DB for scripts/analyze_history.py. Values are ESTIMATE-grade (high-level review, not lab-accurate). Each item has: unit (canonical unit the VALUES are given per) and g_per_unit (grams in that canonical unit). The script converts the LOGGED qty+unit to grams, then scales. Condiments/oils/cooking fat are NOT logged, so real meals run ~80-120 kcal higher per cooked meal.",
|
||||
"items": {
|
||||
"Tinned tuna in veg oil": {"unit": "can", "g_per_unit": 120, "kcal": 190, "protein": 25, "fibre": 0, "satfat": 3, "vitC": 0, "vitA": 5, "calcium": 10},
|
||||
"Baked beans": {"unit": "can", "g_per_unit": 400, "kcal": 200, "protein": 18, "fibre": 14, "satfat": 0, "vitC": 6, "vitA": 20, "calcium": 80},
|
||||
"Dried red lentils": {"unit": "g", "g_per_unit": 100, "kcal": 350, "protein": 25, "fibre": 11, "satfat": 0, "vitC": 0, "vitA": 0, "calcium": 0},
|
||||
"Cheese": {"unit": "g", "g_per_unit": 100, "kcal": 400, "protein": 25, "fibre": 0, "satfat": 21, "vitC": 0, "vitA": 0, "calcium": 70},
|
||||
"Microwave rice": {"unit": "portion", "g_per_unit": 250, "kcal": 220, "protein": 3, "fibre": 1, "satfat": 0, "vitC": 0, "vitA": 0, "calcium": 0},
|
||||
"Frozen mixed veg": {"unit": "g", "g_per_unit": 100, "kcal": 73, "protein": 2, "fibre": 3, "satfat": 0, "vitC": 8, "vitA": 27, "calcium": 13},
|
||||
"Salad tomatoes": {"unit": "count", "g_per_unit": 50, "kcal": 15, "protein": 1, "fibre": 1, "satfat": 0, "vitC": 5, "vitA": 7, "calcium": 2},
|
||||
"Small white onions": {"unit": "count", "g_per_unit": 60, "kcal": 15, "protein": 1, "fibre": 1, "satfat": 0, "vitC": 1.5, "vitA": 0, "calcium": 2},
|
||||
"Chicken breast": {"unit": "count", "g_per_unit": 150, "kcal": 165, "protein": 33, "fibre": 0, "satfat": 1, "vitC": 0, "vitA": 5, "calcium": 15},
|
||||
"Eggs": {"unit": "count", "g_per_unit": 50, "kcal": 70, "protein": 6, "fibre": 0, "satfat": 1.5,"vitC": 0, "vitA": 40, "calcium": 12},
|
||||
"Halloumi": {"unit": "g", "g_per_unit": 100, "kcal": 320, "protein": 19, "fibre": 0, "satfat": 26, "vitC": 0, "vitA": 0, "calcium": 60},
|
||||
"Courgette": {"unit": "count", "g_per_unit": 150, "kcal": 20, "protein": 1, "fibre": 1, "satfat": 0, "vitC": 6, "vitA": 7, "calcium": 4},
|
||||
"Carrots": {"unit": "g", "g_per_unit": 100, "kcal": 41, "protein": 1, "fibre": 3, "satfat": 0, "vitC": 2, "vitA": 300, "calcium": 10},
|
||||
"Broccoli": {"unit": "count", "g_per_unit": 150, "kcal": 35, "protein": 3, "fibre": 3, "satfat": 0, "vitC": 65, "vitA": 55, "calcium": 40},
|
||||
"Sweet potatoes": {"unit": "count", "g_per_unit": 150, "kcal": 130, "protein": 2, "fibre": 4, "satfat": 0, "vitC": 1.5, "vitA": 350, "calcium": 10},
|
||||
"Aubergine": {"unit": "count", "g_per_unit": 300, "kcal": 40, "protein": 1, "fibre": 3, "satfat": 0, "vitC": 1.5, "vitA": 2.5, "calcium": 2.5},
|
||||
"Red cabbage": {"unit": "g", "g_per_unit": 100, "kcal": 8, "protein": 0.2,"fibre": 0.8,"satfat": 0, "vitC": 4, "vitA": 3, "calcium": 3},
|
||||
"Peeled plum tomatoes": {"unit": "can", "g_per_unit": 400, "kcal": 90, "protein": 2, "fibre": 2, "satfat": 0, "vitC": 6, "vitA": 20, "calcium": 7.5},
|
||||
"Tinned green lentils": {"unit": "can", "g_per_unit": 400, "kcal": 230, "protein": 18, "fibre": 14, "satfat": 0, "vitC": 0, "vitA": 0, "calcium": 20},
|
||||
"Orange bell pepper": {"unit": "count", "g_per_unit": 120, "kcal": 30, "protein": 1, "fibre": 2, "satfat": 0, "vitC": 130, "vitA": 20, "calcium": 3},
|
||||
"Lettuce": {"unit": "count", "g_per_unit": 120, "kcal": 15, "protein": 1, "fibre": 1, "satfat": 0, "vitC": 4, "vitA": 15, "calcium": 7.5},
|
||||
"Whey protein powder": {"unit": "g", "g_per_unit": 100, "kcal": 400, "protein": 80, "fibre": 0, "satfat": 0, "vitC": 0, "vitA": 0, "calcium": 300},
|
||||
"Cumberland sausages": {"unit": "count", "g_per_unit": 50, "kcal": 55, "protein": 11, "fibre": 0, "satfat": 3.6,"vitC": 0, "vitA": 0, "calcium": 8},
|
||||
"Cauliflower": {"unit": "count", "g_per_unit": 500, "kcal": 30, "protein": 3, "fibre": 3, "satfat": 0, "vitC": 25, "vitA": 0, "calcium": 10},
|
||||
"Leeks": {"unit": "count", "g_per_unit": 100, "kcal": 55, "protein": 1, "fibre": 3, "satfat": 0, "vitC": 4, "vitA": 0, "calcium": 15},
|
||||
"Mushrooms": {"unit": "g", "g_per_unit": 100, "kcal": 23, "protein": 2, "fibre": 2, "satfat": 0, "vitC": 1, "vitA": 0, "calcium": 3},
|
||||
"Wholemeal pasta": {"unit": "serving", "g_per_unit": 75, "kcal": 350, "protein": 7, "fibre": 5, "satfat": 0, "vitC": 0, "vitA": 0, "calcium": 5},
|
||||
"Lamb mince": {"unit": "g", "g_per_unit": 100, "kcal": 250, "protein": 18, "fibre": 0, "satfat": 9, "vitC": 0, "vitA": 0, "calcium": 8}
|
||||
},
|
||||
"veg_names": ["Broccoli","Carrots","Courgette","Sweet potatoes","Aubergine","Red cabbage","Peeled plum tomatoes","Frozen mixed veg","Salad tomatoes","Orange bell pepper","Lettuce","Cauliflower","Leeks","Mushrooms","Small white onions"],
|
||||
"targets": {
|
||||
"protein_per_day_g": 165,
|
||||
"protein_min_ok_g": 165,
|
||||
"fibre_per_day_g": 30,
|
||||
"satfat_per_day_g": 30,
|
||||
"vitC_mg": 40,
|
||||
"vitA_mcg": 700,
|
||||
"calcium_mg": 700
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user