Nutrition intake logging entry template
Use this template for every nutrition item written into ## Nutrition.
Required template
### HH:MM

~~~ Message from <athlete-name>:
[original athlete text message]
~~~
{.clean .striped .compact}
| Metric | Value |
| --- | --- |
| Item | [human-readable item description] |
| Received | YYYY-MM-DD HH:MM TZ |
| Local | YYYY-MM-DD HH:MM TZ |
| Consumed | [explicit consumed time, window, or defaulted statement] |
| Macros | Calories: X kcal<br>Carbs: Y g<br>Protein: Z g<br>Fat: A g |
| Assumptions | [concise assumptions line] |
| Implications | [concise coaching interpretation line] |
| Status | Complete |
- Photo description: [short neutral photo description when multi-service analysis exists]
- Analysis services used: local, Claude CLI
#### Macro comparison
| Metric | Local | Claude CLI | Aggregate |
|---|---:|---:|---:|
| Calories (kcal) | | | |
| Protein (g) | | | |
| Carbohydrate (g) | | | |
| Fat (g) | | | |
| Confidence | | | derived |
| Status | | | |
#### Service notes
| Field | Local | Claude CLI |
|---|---|---|
| Food description | | |
| Portion summary | | |
| Assumptions | | |
| Uncertainty notes | | |
| Raw-output reference | | |
#### Aggregate estimate
- Calories: [total] kcal
- Protein: [total] g
- Carbohydrate: [total] g
- Fat: [total] g
- Aggregate method: [simple mean across N successful services]
This file is the single source of truth for the item-level nutrition log format. Do not restate the field list in other nutrition-intake references.
Template notes
- Omit
[original athlete text message]and its fenced code block only when there is no athlete text component for that nutrition item. - If multiple athlete text messages belong to the same nutrition log item, then store each message in its own separate
[original athlete text message]fenced block in chronological order. - When the athlete sends a follow-up text message that materially belongs to the same nutrition item, preserve that follow-up text in its own additional
~~~fenced block rather than paraphrasing it into prose. - Omit
Source media pathand the markdown image only when no media exists. - If text contains a tilde
~character, escape those characters using\~if they are not already escaped. - When a markdown image is included in the daily nutrition log, append
|450to the alt text so the rendered image uses the standard width. - Keep
Received,Local, andConsumedas separate facts. - Use metric units only in nutrition analysis notes, assumptions, portion summaries, uncertainty notes, and any other non-verbatim nutrition logging content. Do not save oz, ounces, lb, lbs, pounds, inches, cups, tbsp, or tsp in those generated fields; convert them to g, kg, mL, cm, or other metric units first.
- The comparison block is required when multi-service analysis was actually run for the item.
- If multi-service analysis was not run for the item, omit
Photo description,Analysis services used,#### Macro comparison,#### Service notes, and#### Aggregate estimateinstead of leaving empty placeholders. Receivedis the system logging time, not the athlete-local display time.Localis the athlete-local equivalent of the received timestamp and should also drive the### HH:MMitem heading unless a better athlete-local consumed timestamp is known.- Include the timezone abbreviation on precise
Received,Local, andConsumedtimestamps. - If
Consumedis defaulted rather than athlete-confirmed, say so explicitly. - Keep
Estimated intakeon one line. - Keep
Key assumptionson one line unless a repair or migration requires more detail. - Keep
Practical implicationon one line unless the case truly needs more explanation. - Keep
Status: completeas the final bullet.
Estimated intake format
Use this order:
- Energy
- Carbs
- Protein
- Fat
Add Fiber only when the active template revision explicitly calls for it.
Alt-text rule
Use a short human-readable alt text that matches the item description closely.