Nutrition intake logging entry template

Use this template for every nutrition item written into ## Nutrition.

Required template

### HH:MM

![human-readable alt text|450](/athlete/logs/media/YYYY-MM-DD/<file-name>.[ext])

~~~ 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 path and 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 |450 to the alt text so the rendered image uses the standard width.
  • Keep Received, Local, and Consumed as 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 estimate instead of leaving empty placeholders.
  • Received is the system logging time, not the athlete-local display time.
  • Local is the athlete-local equivalent of the received timestamp and should also drive the ### HH:MM item heading unless a better athlete-local consumed timestamp is known.
  • Include the timezone abbreviation on precise Received, Local, and Consumed timestamps.
  • If Consumed is defaulted rather than athlete-confirmed, say so explicitly.
  • Keep Estimated intake on one line.
  • Keep Key assumptions on one line unless a repair or migration requires more detail.
  • Keep Practical implication on one line unless the case truly needs more explanation.
  • Keep Status: complete as 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.