Morning Plan Skill

Governs the morning athlete message, including readiness assessment and session prescription.
  • Purpose: Governs the morning athlete message
  • Output: Athlete-facing morning note + durable file save

Hard gate: do not send any intermediate progress update, draft note, internal reasoning, or partial composition to the athlete. If the final morning 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 morning note, read these files in this exact order. Do not skip any step.

  1. Inbound athlete messages since the prior evening note — check for any overnight or early-morning check-ins, questions, complaints, or context that changes today's plan.
  2. Recovery specialist input — athlete/logs/daily/ for the current or most recent canonical daily log, reading ## Recovery. During migration, fall back to athlete/team/recovery/logs/daily/ only if the canonical day file is missing.
  3. Nutrition input — athlete/logs/daily/ for the current or most recent canonical daily log, reading ## Nutrition. During migration, fall back to athlete/team/nutrition/logs/daily/ only if the canonical day file is missing.
  4. Today's rolling 7-day entry — the current athlete's athlete/rolling-7-day.md for the planned session.
  5. Current 3-week block context — the current athlete's athlete/rolling-3-week.md for this week's block purpose and constraints.
  6. Travel schedule — athlete/travel-schedule.md to confirm the athlete's current location and any travel-related constraints.
  7. Previous evening summary — athlete/logs/daily/ for the most recent canonical daily log, reading ## Messages -> ### Evening summary. During migration, fall back to athlete/athlete-notes/daily/ only if the canonical day file is missing.
  8. Weather — fetch current and daytime weather for the current athlete's confirmed location. Do not default to a presumed home base if the travel schedule or current-day messages place the athlete elsewhere.

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 morning 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 morning plans:

  • Recovery: consult whenever readiness, soreness, fatigue, sleep, illness risk, injury risk, back pain, ankle response, or session downscaling is materially relevant. In practice, this is most normal training days.
  • Nutrition: consult whenever the morning note includes fueling guidance beyond a trivial rest-day reminder, or when the prior day created meaningful fueling, glycogen, hydration, or recovery-nutrition implications.
  • Endurance: consult whenever the session prescription, intensity framing, workout interpretation, or on-bike contingency is non-trivial. In practice, this is most ride days.
  • Strength: consult whenever the same-day prescription includes gym work, strength carry-forward, orthopedic loading implications from recent gym work, or movement constraints that materially affect the day.

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.

Readiness Assessment

Apply the readiness protocol at team/coach-luca/synthesis/readiness-protocol.md.

Evaluate all readiness factors and classify the day as one of:

  • Green — planned session proceeds
  • Amber — reduce, simplify, or add contingency
  • Red — replace with rest or very light recovery
  • Unconfirmed — keep conservative, do not escalate

Record the readiness state and trigger(s) in the morning note.


Morning Note Structure — Standard Training Day

The morning athlete note uses a fixed core structure for a standard training day. The Monitor: section is optional and should be included only when there are athlete-actionable items to monitor that day.

Today's Plan

**Readiness:** 
[Green | Amber | Red | Unconfirmed] [— trigger notes if not Green]

**Today’s plan:**
[Session title]. [Duration]. [Effort target]. [Surface if relevant]. [Key execution details and constraints only. Keep this prescriptive and non-duplicative.]

**Fueling:**
[Pre-session and during-session fueling guidance. Be specific about timing and amounts when possible.]

**Weather:**
[Location] [single best-fit weather emoji]
[high]°C / [low]°C, [condition]

[Short report sentence summarizing the key day conditions that matter most - precipitation, wind, fog, or similar.]

[Session-specific coaching comments only.]

**Monitor:**
[Only athlete-actionable recovery or health items to monitor. Include only items that materially affect today's execution, symptom monitoring, or decision-making. Do not include internal coach-monitoring phrases such as ongoing sickness-state watch language unless the athlete needs to act on it today. Omit this section entirely if there is nothing actionable to monitor.]

Tone and language rules

  • Direct, professional, specific.
  • Use coaching terminology appropriate for an elite athlete.
  • Use natural second-person wording where helpful, but keep the training prescription itself factual and prescriptive.
  • No motivational fluff. No generic encouragement.
  • Do not expose internal workflow, file paths, specialist routing details, or internal medical-monitoring language that the athlete does not need to act on.
  • Avoid duplication between sections. The session prescription belongs in Today's plan: and should not be split across multiple headings.
  • Keep the total message concise. It should take 30-60 seconds to read.
  • Do not use em dashes anywhere in the athlete message, saved morning note, internal notes, routing entry, or any related written output. Use commas, colons, semicolons, or spaced hyphens instead.
  • The weather block must be front-loaded and easy to scan: location-and-emoji heading, then the temperature-and-condition summary immediately below it with no blank line in between, then a short report and the session-specific coaching comment.
  • The weather heading must use the confirmed athlete location label followed by one space and exactly one emoji.
  • Choose the emoji from this mapping, using best judgment for mixed conditions: ☀️ sunny/clear, 🌤️ mostly sunny, ⛅ partly cloudy, 🌥️ mostly cloudy, ☁️ overcast, 🌫️ fog/haze, 🌧️ rain, 🌦️ light rain/showers, ⛈️ thunderstorms, 🌨️ snow showers, ❄️ heavy snow, 🌬️ windy, 🌪️ severe weather.
  • The temperature-and-condition line must show high first, then low, and a plain-language condition label sourced from the same forecast.

Day-Type Variants

Rest day

Use a reduced format:

Today's Plan

**Readiness:** [state]

**Today:** Rest day. No structured training.

**Recovery focus:**
[What matters today — sleep, nutrition, mobility, hydration. Be specific.]

**Watch items:**
[Active concerns, if any. Omit this section entirely if there is nothing actionable to monitor.]

Race day

Use a race-day format focused on execution:

Today's Plan

**Readiness:** [state]

**Race day:** [Race name] · [Start time if known]

**Warm-up:**
[Warm-up structure — timing, intensity, key activation points]

**Execution anchors:**
[1–3 race-specific execution points. Course-relevant. Tactical. Concise.]

**Fueling:**
[Pre-race nutrition, timing, and any during-race fueling plan]

**Weather:**
[Conditions and their impact on racing — mud, heat, wind, cold]

**Watch items:**
[Race-day health or recovery concerns, if any. Omit this section entirely if there is nothing actionable to monitor.]

Travel day

Use a travel-adapted format:

Today's Plan

**Readiness:** [state — travel days elevate concern]

**Today:** Travel day — [destination and purpose]

**Session (if any):**
[Reduced or adapted session, or explicit "no structured training today"]

**Travel notes:**
[Hydration, nutrition during travel, sleep management, jet lag mitigation if applicable]

**Watch items:**
[Travel-specific concerns. Omit this section entirely if there is nothing actionable to monitor.]

High-fatigue or illness day (Amber/Red)

Use the standard format but:

  • State the readiness trigger clearly
  • Reduce or replace the session explicitly inside Today's plan:
  • Provide a contingency option for Amber ("If legs come around, you may extend to...")
  • For Red, state the replacement clearly and do not offer intensity options

File Save

After generating the morning note, save a durable copy:

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

Format: Save the exact athlete-facing message body under ## Messages -> ### Morning plan inside a ~~~ fenced block, following skills/athlete-daily-log/. Put internal coaching rationale, readiness triggers, and any delivery metadata 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.


Routing and Logging

After save, record the send in the canonical daily log ## System.


Delivery

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


Weather Data Source

Weather for the current athlete's location is fetched only after the location is confirmed from the most current evidence available. The morning skill should:

  1. Determine location in this order: current-day athlete message, travel schedule, then today's rolling 7-day entry
  2. Fetch a single-location forecast for that confirmed location via Open-Meteo using web_fetch
  3. If weather fetch fails, note "Weather: unavailable" in the morning note rather than guessing
  4. Build the weather block from the Open-Meteo forecast using this format exactly:
    • [Location] [emoji]
    • [high]°C / [low]°C, [condition]
    • short report sentence
    • session-specific coaching comment
  5. Record any location ambiguity in the internal notes and keep the outdoor guidance conservative if weather cannot be confirmed

Specialist Input Freshness

The morning pass uses a combined specialist-input model. Read current-day specialist logs when they exist; otherwise use the latest prior-evening logs and explicitly note staleness.

  • If the most recent specialist input is from yesterday evening or earlier, note the staleness internally
  • Stale specialist input does not automatically trigger Unconfirmed, but it should reduce confidence in a Green classification when other evidence is marginal
  • If no specialist log exists for the past 48 hours, note the gap in the internal notes section

Critical Rules

  1. Do not escalate load beyond the rolling 7-day plan. The morning pass may reduce or simplify; it may not add intensity or volume that is not in the written plan.
  2. Missing data is not evidence of readiness. If evidence is insufficient, classify as Unconfirmed.
  3. Every morning note must include a readiness state. No exceptions.
  4. Use one consolidated Today's plan: block. Do not duplicate the same session prescription under both Today's session and Today's plan.
  5. Specialist participation must be assessed before drafting. Morning plans are high-importance athlete-facing messages and require an explicit coordination decision before composition.
  6. Attribution must match actual participation. Do not add default specialists; do not omit specialists who materially informed the message.
  7. File save is mandatory. The morning note is not complete until the canonical daily log contains the saved ### Morning plan block.
  8. The athlete receives only the clean message. No internal routing, file paths, or specialist workflow details.