Evening Summary Skill

Governs the evening athlete message and next-day stabilization
  • Purpose: Governs the evening athlete message and next-day stabilization
  • Output: Athlete-facing evening note + canonical daily-log updates + rolling 7-day update + durable file saves

Hard gate: do not send any intermediate progress update, draft note, internal reasoning, or partial composition to the athlete. If the final evening message is not ready, send nothing and continue internal work.

Before writing into the canonical daily log, read and apply skills/athlete-daily-log/SKILL.md.

Use that skill as the source of truth for section placement, message storage under ## Messages, and event logging under ## System.


Required Read Order

Before writing the evening note, read these files in this exact order. Do not skip any step.

  1. Today's morning plan — athlete/logs/daily/YYYY-MM-DD.md for the saved ## Messages -> ### Morning plan block, readiness state, and any current-day coordinator notes. If the canonical morning artifact is missing, do not stop the evening pass: note the gap internally, use today's rolling 7-day entry as the fallback record of what was supposed to happen, and keep certainty conservative.
  2. Inbound athlete messages since the morning note — any mid-day check-ins, session reports, nutrition items, health updates, or questions.
  3. TrainingPeaks evidence — attempt to retrieve today's activity data. Follow the evidence path defined in team/coach-luca/synthesis/tp-evidence-protocol.md. Prefer the TrainingPeaks MCP server; fall back to legacy scripts; then to athlete confirmation; then to Unconfirmed.
  4. Recovery specialist input — today's canonical daily log ## Recovery, or the most recent prior canonical daily log when current-day input is absent. During migration, fall back to athlete/team/recovery/logs/daily/ only if the canonical day file is missing.
  5. Nutrition input — today's canonical daily log ## Nutrition. During migration, fall back to athlete/team/nutrition/logs/daily/ only if the canonical day file is missing.
  6. Endurance specialist input — today's canonical daily log ## Endurance, or the most recent prior canonical daily log when current-day input is absent. During migration, fall back to athlete/team/endurance/logs/daily/ only if the canonical day file is missing.
  7. Today's rolling 7-day entry — the current athlete's athlete/rolling-7-day.md for what was planned.
  8. Tomorrow's rolling 7-day entry — for the session that needs to be stabilized.
  9. Current 3-week block context — the current athlete's athlete/rolling-3-week.md for the week's intent.

Before using any athlete-specific file path, greeting, or delivery target, resolve the current athlete's first name, username, and messaging target from the current task context and routing inputs. Do not hard-code athlete identity details in this skill.


Specialist participation gate

Before drafting any athlete-facing evening note, Coach Luca must explicitly decide which specialists need to participate in that specific message.

This is a required gate, not an optional judgment call after drafting. Do not compose the athlete-facing message first and rationalize missing consultation afterward.

Default participation rules for evening summaries:

  • Recovery: consult whenever session outcome, fatigue carry-forward, soreness, illness risk, injury risk, sleep implications, or tomorrow-readiness stabilization is materially relevant. In practice, this is most evening summaries.
  • Nutrition: consult whenever recovery fueling, hydration, carbohydrate replacement, incomplete intake, or next-day fueling implications materially affect the message. In practice, this is most training days and especially longer or harder sessions.
  • Endurance: consult whenever session execution, TrainingPeaks evidence interpretation, workout quality, load implications, or tomorrow's ride stabilization is non-trivial. In practice, this is most ride days.
  • Strength: consult whenever the completed or planned day includes gym work, post-gym carry-forward effects, orthopedic loading implications, or movement constraints that materially affect the evening assessment or tomorrow preview.

If a specialist is consulted and materially informs the message, include that specialist in the attribution footer. If a specialist is not consulted, do not attribute them. If there is genuine uncertainty about whether a specialist should participate, consult them.

Session-Outcome Certainty Classification

Every evening note must classify today's session outcome using one of these states:

State Meaning Evidence required
Confirmed completed Session was done as planned TP data matches plan, or athlete reports completion
Confirmed modified, minor Session was done with minor adjustments TP data shows minor deviation, or athlete reports small changes
Confirmed modified, significant Session was meaningfully different from planned TP data shows major deviation, or athlete reports significant change
Confirmed not completed Session was skipped or abandoned Athlete explicitly confirms skip/abandonment, or another reliable current-day source confirms no session occurred
Unconfirmed Cannot determine session outcome No TP data, no athlete report, or evidence is ambiguous

Critical rule

Missing TP evidence maps to Unconfirmed, not to Confirmed completed. Do not assume a session was completed just because it was planned.

Evening Note Structure — Standard Training Day

Evening Summary

[Session outcome summary — what was done, how it went]
[Certainty: Confirmed completed | Confirmed modified, minor | Confirmed modified, significant | Confirmed not completed | Unconfirmed]

**Feedback:**
[Brief assessment of the session quality — effort, execution, sensations if reported. Be specific, not generic. If Unconfirmed, state what is unknown.]

**Recovery:**
[Specific recovery priorities for tonight — sleep, nutrition, hydration, mobility. Concrete guidance.]

**Tomorrow preview:**
[Tomorrow's planned session from the rolling 7-day file. Duration, effort level, key focus. Brief.]

**Monitor:**
[Anything to carry forward — fatigue signals, health concerns, upcoming schedule considerations. "None active" if clear.]

Absence of a TP upload at 20:00 does not, by itself, mean the session was skipped.

Tone and language rules

  • Concise, honest, professional.
  • Do not overstate certainty about session quality when evidence is limited.
  • Use phrases like "based on the data available" or "this is unconfirmed" when appropriate.
  • Do not expose internal workflow, file paths, or specialist details.
  • Keep the total message brief, about 30-60 seconds to read.
  • Do not use em dashes anywhere in the athlete message, canonical daily-log updates, rolling-plan update, routing entry, internal notes, or any related written output. Use commas, colons, semicolons, or spaced hyphens instead.

Day-Type Variants

Rest day

Evening Summary

**Today:**
Rest day — no structured session.

**Recovery:**
[Brief check on how recovery went. Any athlete-reported sensations or concerns.]

**Tomorrow preview:**
[Tomorrow's planned session]

**Monitor:**
[Carry-forward items, if any]

Race day

Evening Summary

**Race result:**
[Result and brief race assessment]
[Any known performance data]

**Recovery:**
[Post-race recovery priorities — nutrition, hydration, sleep, travel if applicable]

**Tomorrow preview:**
[Recovery or next-day plan]

**Monitor:**
[Post-race concerns, if any]

High-fatigue or illness day

  • State what happened clearly
  • Emphasize recovery guidance
  • Do not assign blame or pressure
  • Adjust tomorrow's plan if warranted

Post-Note Actions

After generating the evening note, complete all of the following before the evening pass is considered done.

1. Save evening athlete message in the canonical daily log

Path: athlete/logs/daily/YYYY-MM-DD.md

Format: Save the exact athlete-facing message body under ## Messages -> ### Evening summary inside a ~~~ fenced block, following skills/athlete-daily-log/. Add internal notes outside the code block in the canonical daily log, primarily under ## Coach Luca and ## System. Within ## Coach Luca, write directly under the section using useful metadata lines and direct ### subsections; do not add a redundant dated wrapper such as ### YYYY-MM-DD or - Date: YYYY-MM-DD. Cover:

  • Session-outcome certainty classification and evidence source
  • Whether today's morning note was present or missing, and what fallback source was used if it was missing
  • Specialist input staleness notes
  • Any coaching rationale for tomorrow's plan adjustments

Role placement rule: Do not create a shared cross-role ### Team updates block under ## Coach Luca. Keep coordinator-only notes under ## Coach Luca, and place Endurance, Recovery, Strength, and Nutrition status updates in their respective role sections. If a current-day specialist log is missing, add a clearly labeled coordinator-consolidated status note in that role section rather than summarizing that role under Coach Luca.

2. Stabilize tomorrow's rolling 7-day entry

After assessing today's outcome, review tomorrow's planned session in the current athlete's athlete/rolling-7-day.md.

  • If today's outcome changes tomorrow's appropriateness, update tomorrow's entry.
  • If the readiness state or carried-forward fatigue warrants adjustment, modify tomorrow's session.
  • If no change is needed, leave tomorrow's entry as-is.
  • Do not silently assume today was completed as planned if the outcome is Unconfirmed.

3. Routing and logging

Record the pass outcome in the canonical daily log ## System.


Delivery

This skill's job ends at content. After saving the final evening note body under ## Messages -> ### Evening summary, return the content to Coach Luca.


TrainingPeaks Evidence Handling

Follow the evidence protocol at team/coach-luca/synthesis/tp-evidence-protocol.md.

Fallback chain:

  1. TrainingPeaks MCP server — primary path for structured activity data
  2. Legacy scripts (scripts/tp_check.js, scripts/tp_last_activity.js) — fallback if MCP fails
  3. Direct athlete confirmation — if neither automated path returns data
  4. Unconfirmed — if no evidence is available from any source

Never infer completion from the plan alone. The plan says what should have happened; evidence says what did happen.


Critical Rules

  1. Do not overstate session certainty. If the TP data is missing, partial, or ambiguous, classify as Unconfirmed and say so.
  2. Specialist participation must be assessed before drafting. Evening summaries are high-importance athlete-facing messages and require an explicit coordination decision before composition.
  3. Attribution must match actual participation. Do not add default specialists; do not omit specialists who materially informed the message.
  4. File saves are mandatory. The canonical daily log must contain the saved ### Evening summary block and the updated internal team sections before the pass is complete.
  5. Tomorrow must be stabilized. The evening pass is not done until tomorrow's 7-day entry reflects today's outcome.
  6. The athlete receives only the clean message. No internal routing, file paths, or specialist workflow details.
  7. The canonical daily log captures the reasoning. Anything the athlete should not see but the coaching team needs to know goes in the internal sections of the canonical daily log.
  8. Role updates stay with the role. Do not mix multi-role status bullets into a shared ### Team updates subsection under ## Coach Luca; write coordinator notes under ## Coach Luca and role-specific updates under the matching role section.
  9. Nutrition items received during the day must have been processed through the nutrition intake workflow before the evening pass considers the day complete. If any nutrition items are unprocessed, flag them.
  10. A missing morning note is a workflow gap, not a reason to guess. If the morning artifact is absent, record the gap internally, use fallback sources, and keep the evening certainty conservative.