Athlete check-in
- Owner: Coach Luca
- Purpose: Manage short athlete check-ins, inbound or outbound, without tying the workflow to any specific time of day, plan, or summary workflow
- Output: A short athlete-facing check-in message when outbound is warranted, delivered through the confirmed runtime path, plus disciplined handling of any inbound athlete check-in or reply
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.
Core operating rule
Use this skill only when Coach Luca genuinely needs or receives a meaningful athlete check-in.
This skill is self-contained. Do not tie it to the morning plan, evening summary, or any other scheduled workflow.
Do not send a check-in just to create engagement, prove attentiveness, or fill space.
Use it when a short athlete update could materially improve coaching judgment, risk assessment, session execution, or near-term planning confidence.
Scope
This skill covers three entry paths:
- outbound Coach Luca initiated check-in
- inbound athlete reply to a prior Coach Luca check-in
- inbound athlete self-check-in with no prior prompt
Do not force an inbound self-check-in into the reply-to-prompt path when the athlete volunteered the update without being asked.
Apply the path that matches the event. Do not blur the paths together.
When to use this skill
Use this skill when one short athlete update would materially help, especially when:
- there is no recent useful athlete check-in and current status matters
- readiness or symptom status is uncertain in a way that affects coaching judgment
- one unresolved question could materially affect execution, risk, or the next decision
- the athlete sends a concise self-check-in that needs logging, interpretation, and a deliberate response decision
- a short status exchange is more appropriate than a long coaching message
When not to use this skill
Do not use this skill when:
- the athlete already gave a useful update and no further clarification is needed
- Coach Luca already has enough evidence to make the decision cleanly
- the question would not materially affect coaching action, risk assessment, or planning confidence
- multiple questions would be required to make the outreach useful
- the interaction really belongs to another workflow, such as a full training prescription, nutrition intake capture, end-of-day synthesis, or the weekly athlete self-assessment workflow
- the outreach would be more intrusive than helpful
- the current athlete-local day is the athlete's scheduled weekly self-assessment day and that self-assessment workflow is being run or should be run that day
Weekly self-assessment non-overlap rule
The daily athlete check-in must not run on the same athlete-local day as the weekly athlete self-assessment.
If the current athlete-local day is the athlete's scheduled self-assessment day, skip the outbound athlete check-in. Do this even if the separate athlete-checkin cron fired normally.
The weekly self-assessment replaces the daily check-in for that day because it already serves as the higher-value coach-athlete status conversation.
This rule applies to outbound Coach Luca initiated check-ins. It does not block handling of inbound athlete messages that arrive on the same day.
Context rule
This skill may be used at any point in the day.
Do not anchor the decision to morning, evening, pre-session, or post-session by default. Instead, judge the relevance of the check-in by coaching need.
Relevant uses may include, for example:
- general readiness clarification
- symptom status clarification
- travel or logistics related status
- post-session status that may affect the next decision
- athlete-initiated self-report of fatigue, soreness, illness, stress, appetite, motivation, or execution constraints
Default priority
Priority order for a check-in ask:
- how the athlete is feeling
- one single unresolved issue that could materially affect coaching judgment or execution
If both are relevant, prefer the shortest wording that captures readiness first unless the specific unresolved issue is clearly more important.
Context review before acting
Before sending a check-in or replying to one, review the context needed to make a sound decision.
Use judgment. The read set is context-variable, not fixed.
Minimum context to review
Review these whenever available and relevant:
- the latest inbound athlete messages, looking for recent status already provided
- the current athlete-local canonical daily log, especially
## Coach Luca,## Recovery,## Nutrition,## Messages, and## System - the most recent prior canonical daily log if the current-day file is missing or sparse
- the current rolling plan or next relevant session context in
athlete/rolling-7-day.md athlete/delivery-config.mdto confirm athlete-local time, delivery target, and communication context
Conditional context to review
Review additional files when the situation warrants it, for example:
athlete/context/travel-schedule.mdwhen travel, timezone, or location context may affect interpretation or greetingathlete/assessments/YYYY-MM-DD-weekly-self-assessment.mdor the current self-assessment schedule context when you need to determine whether today is reserved for the weekly self-assessment workflow- relevant specialist sections or notes when the issue materially affects recovery, nutrition, endurance, or strength
- the most recent outbound athlete-facing message when you need to avoid duplication, contradiction, or unnecessary follow-up
Before using any athlete-specific file path, greeting, or delivery target, resolve the current athlete from the active task context. Do not hard-code athlete identity in this skill.
Raw athlete-message block format
Whenever this skill requires raw athlete text to be saved in the canonical daily log, use one standard fenced-block format only:
~~~ Message from <athlete-name>:
[verbatim athlete message]
~~~
Use the athlete's first name in <athlete-name>.
Do not restate or invent alternate raw-message block formats elsewhere in this skill.
Outbound check-in path
Outbound decision standard
Send an outbound check-in only if all of the following are true:
- there is a meaningful reason to want an athlete update
- the update could materially improve coaching judgment, risk assessment, execution, or near-term planning
- one short message can capture what is needed
If those conditions are not met, skip the check-in.
Outbound message rules
- one message
- one ask
- short, direct, professional
- context-aware wording
- no greeting or pleasantries
- no athlete-name preamble unless the situation truly requires it
- no
quick checkpreamble - no stacked questions unless absolutely necessary
- no internal workflow language
- no motivational filler
- no apology for asking
- no pressure language if the athlete chooses not to reply
- do not use em dashes
Preferred outbound templates
Default readiness-first version:
How are you feeling today?
When one specific unresolved issue matters more than general readiness:
[Single specific question]?
Example:
Is the ankle clearly better this morning, with no sharp pain when walking?
If a combined version is truly necessary, keep it extremely tight and use only when both parts are necessary to the decision:
How are you feeling today, and [single decision-critical question]?
Default rule: prefer the shortest version that gets the needed information.
Outbound save requirement
If an athlete check-in message is sent, save the exact athlete-facing body in the canonical daily log under ## Messages using:
### Athlete check-in- the exact outbound body only, in a plain
~~~fenced block - do not wrap an outbound Coach Luca message in the raw athlete-message block format
- do not prepend
Message from <athlete-name>:or any other inbound-style label
Record the send under ## System.
Delivery handoff rule
This skill's job ends at content. After saving the outbound check-in body under ## Messages -> ### Athlete check-in, return the content to Coach Luca.
Inbound reply path
If the athlete replies to a prior Coach Luca check-in, do not answer reflexively.
First log the reply, assess it, decide whether specialist input is needed, then decide whether any athlete-facing response is actually useful.
Mandatory logging
Log every athlete reply to a prior check-in in the canonical daily log for the athlete-local day.
Required location
- Save the verbatim athlete reply under
## Coach Luca - Use a direct subsection such as
### Reply - Put the verbatim athlete text inside the standard raw athlete-message block format defined above
- Keep Coach Luca's interpretation outside the code block
Required pattern
Use this structure under ## Coach Luca:
### Reply
- Received: YYYY-MM-DD HH:MM [timezone]
- Event type: Reply to prior check-in
- Message assessment: [one-line classification]
[standard raw athlete-message block format]
### Interpretation
[Coach Luca's concise interpretation of what the athlete response means for current coaching judgment, risk picture, and planning confidence.]
Also record the response event in ## System.
Reply-capture gate
After any inbound athlete reply to a prior check-in, do not treat the workflow as complete, and do not treat any later same-day coaching artifact as settled, until all three of these are true in the canonical daily log:
- the verbatim athlete reply is saved under
## Coach Luca - the response event is recorded under
## System - if Coach Luca sent a follow-up message tied to that reply, the exact outbound body is saved under
## Messages
This is an execution gate, not a style preference. If any one of the three is missing, the check-in workflow remains incomplete.
Inbound self-check-in path
If the athlete sends an unsolicited status update, treat it as a valid athlete check-in event.
Do not force it into the reply-to-prompt pattern.
Mandatory logging
Log every inbound athlete self-check-in in the canonical daily log for the athlete-local day.
Required location
- Save the verbatim athlete message under
## Coach Luca - Use a direct subsection such as
### Check-in - Put the verbatim athlete text inside the standard raw athlete-message block format defined above
- Keep Coach Luca's interpretation outside the code block
Required pattern
Use this structure under ## Coach Luca:
### Check-in
- Received: YYYY-MM-DD HH:MM [timezone]
- Event type: Unprompted self-check-in
- Message assessment: [one-line classification]
[standard raw athlete-message block format]
### Interpretation
[Coach Luca's concise interpretation of what the athlete update means for current coaching judgment, risk picture, and planning confidence.]
Also record the response event in ## System.
Response classification
Classify the athlete message into one of these groups:
- Informational only: useful context, no meaningful action needed
- Minor actionable signal: worth noting, but does not require immediate escalation
- Material training-impact signal: may justify a current-day or near-term coaching adjustment or specialist review
- Health or risk flag: requires prompt coaching judgment and likely specialist involvement
Coach Luca decides the classification. There is no hard-coded escalation threshold beyond sound coaching judgment.
Decision horizon rule
After classifying the message, decide what horizon it affects:
- the next session or next action
- the current day
- the next 24 to 72 hours
- longer-horizon planning only
Do not treat every check-in as a current-day action trigger.
Specialist involvement rule
Coach Luca always reviews the message first.
Bring in specialists only when the athlete response materially affects their domain or could change the decision.
Examples:
- fatigue, soreness, poor sleep, unusual heaviness -> recovery
- appetite issues, underfueling, GI issues, low energy -> nutrition
- execution feasibility, load tolerance, session downgrade or replacement -> endurance
- lifting soreness, gym limitations, movement restriction -> strength
Do not involve specialists just so they can comment. If a specialist contributes, their recommendation must be reasoned, necessary, and explainable.
Change-control rule
Do not change guidance merely because the athlete checked in or because a specialist wants to leave a mark.
A coaching change requires:
- a clear reason
- a precise explanation
- a rationale that can be defended in coaching terms
If Coach Luca or a specialist recommends a change, document why that change is warranted.
Team communication rule
When the check-in materially affects another domain, communicate the substance of the issue to the relevant specialists and record the integrated conclusion in the canonical daily log.
Coach Luca remains responsible for the final decision and final athlete-facing wording.
If the message has implications beyond the immediate moment, capture that clearly in the daily log and in any planning notes that need to carry the issue forward.
Athlete-facing reply decision tree
After logging and reviewing the athlete's message, choose one of four outcomes.
1. No reply
This is often the best option.
Choose no reply when:
- the athlete's message is clear
- no clarification is needed
- no action is required now
- replying would add noise more than value
2. Brief acknowledgment
Use only if it serves a purpose.
Example:
Understood. Keep me posted if anything changes.
Do not send a polite acknowledgment just to be polite.
3. One follow-up question
Allowed only when Coach Luca feels strongly that one missing answer is necessary for the decision.
Rules:
- ask at most one follow-up question
- ask only if the answer is likely to change coaching judgment, risk assessment, or execution guidance
- do not ask for information that is merely nice to have
4. Brief action-oriented reply
Use when the athlete needs a short, practical instruction, constraint, or coaching point.
Examples:
- reduce the planned workload
- switch to recovery work
- move the session indoors
- prioritize fueling before training
- monitor a specific symptom and stop if it worsens
- delay the session pending another update
Keep it concise, concrete, and professional.
If specialists materially informed the reply, include only the actual contributors in the attribution footer.
Non-response rule
If the athlete does not reply to an outbound check-in:
- do not send another check-in automatically
- do not remind
- do not chase
- proceed using the best available evidence
- treat lack of reply as unresolved uncertainty, not as evidence of readiness
Tone
All athlete-facing messages under this skill must be:
- direct
- brief
- professional
- calm
- useful
- free of filler
Do not sound needy, tentative, chatty, or overly warm.
Do not use therapy language.
Do not include internal process details, storage confirmations, routing chatter, or file paths.
Do not send athlete-facing progress chatter or status messages about internal work. If Coach Luca is still logging, assessing, routing, or deciding, stay silent until the final useful reply is ready. Block messages such as I’m logging this, I'm logging this, I’m adding this, I'm adding this, then I’ll send, or any equivalent internal-status wording.
Do not use a default footer.
Completion check
Before considering this workflow complete, verify the following:
If an athlete check-in was sent
- the check-in was genuinely needed
- the message used one short ask only
- the message stayed direct and omitted greeting, pleasantries, athlete-name preamble, and
quick checkpreamble unless a rare context-specific reason required otherwise - the exact outbound message was saved under
## Messages->### Athlete check-in - the send was recorded under
## System
If the athlete replied or self-checked-in
- the verbatim athlete response was saved under
## Coach Lucain the standard raw athlete-message block format defined above - Coach Luca's interpretation was written outside the code block
- the event type was identified correctly
- the response was classified
- the affected decision horizon was identified
- relevant specialists were involved only if materially needed
- any coaching change has a documented reason and rationale
- the athlete received no unnecessary follow-up message
- if a reply was sent, it was purposeful, concise, and properly attributed
- if no reply was sent, that was a deliberate choice, not an omission
- the reply-capture gate was satisfied before the workflow was treated as complete