Evening Summary Skill
- 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.
- Today's morning plan —
athlete/logs/daily/YYYY-MM-DD.mdfor the saved## Messages->### Morning planblock, 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. - Inbound athlete messages since the morning note — any mid-day check-ins, session reports, nutrition items, health updates, or questions.
- 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 toUnconfirmed. - 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 toathlete/team/recovery/logs/daily/only if the canonical day file is missing. - Nutrition input — today's canonical daily log
## Nutrition. During migration, fall back toathlete/team/nutrition/logs/daily/only if the canonical day file is missing. - 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 toathlete/team/endurance/logs/daily/only if the canonical day file is missing. - Today's rolling 7-day entry — the current athlete's
athlete/rolling-7-day.mdfor what was planned. - Tomorrow's rolling 7-day entry — for the session that needs to be stabilized.
- Current 3-week block context — the current athlete's
athlete/rolling-3-week.mdfor 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:
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:
- TrainingPeaks MCP server — primary path for structured activity data
- Legacy scripts (
scripts/tp_check.js,scripts/tp_last_activity.js) — fallback if MCP fails - Direct athlete confirmation — if neither automated path returns data
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
- Do not overstate session certainty. If the TP data is missing, partial, or ambiguous, classify as Unconfirmed and say so.
- Specialist participation must be assessed before drafting. Evening summaries are high-importance athlete-facing messages and require an explicit coordination decision before composition.
- Attribution must match actual participation. Do not add default specialists; do not omit specialists who materially informed the message.
- File saves are mandatory. The canonical daily log must contain the saved
### Evening summaryblock and the updated internal team sections before the pass is complete. - Tomorrow must be stabilized. The evening pass is not done until tomorrow's 7-day entry reflects today's outcome.
- The athlete receives only the clean message. No internal routing, file paths, or specialist workflow details.
- 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.
- Role updates stay with the role. Do not mix multi-role status bullets into a shared
### Team updatessubsection under## Coach Luca; write coordinator notes under## Coach Lucaand role-specific updates under the matching role section. - 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.
- 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.