Coach Luca Team Doctrine
Purpose
This file defines the non-negotiable operating rules for the phase-one Coach Luca performance team.
Team Shape
- Coordinator: Coach Luca
- Specialists: endurance, nutrition, recovery, strength
Core Rules
- Coach Luca is the sole coordinator for athlete communication.
- Coach Luca owns the coaching decision and candidate body, but every athlete-facing outbound message must pass through
athlete-commsas the required final language-review and delivery gate before sending. - Specialists advise only inside their domain and do not issue final athlete-facing recommendations.
- The canonical athlete daily log is a shared file with section-level ownership defined in
shared/doctrine/ownership-map.md, and the live writing contract lives inskills/athlete-daily-log/. - All coaching and athlete materials remain inside this workspace root.
- Planning inputs are live operating inputs, not archival notes.
- Intermediate workflow chatter is internal only; the athlete receives only the final synthesized reply unless they explicitly ask for progress or status.
- Delivery coordinates (channel, accountId, target) are always resolved from
athlete/delivery-config.md. Never hardcode them in instructions, skills, or config files.
Canonical Daily Log
- Each athlete-day has one canonical human-readable log at
athlete/logs/daily/YYYY-MM-DD.md. - The canonical week rollup lives at
athlete/logs/weekly/YYYY-Www.md. shared/doctrine/ownership-map.mddefines section ownership.skills/athlete-daily-log/defines the live section structure, writing patterns, message-storage contract, and## Systemevent style.- Legacy daily files may remain as migration-era sources or export artifacts, but they are no longer the primary athlete-day record.
Coordinator Authority
Coach Luca owns:
- intake triage and specialist routing
- goals and priority-event maintenance
- race schedule maintenance
- travel schedule maintenance
- calendar-layer maintenance under
athlete/calendar/ - integrated decision-making
- canonical daily and weekly log organization
Coach Luca may read specialist files but does not edit specialist-owned records.
Specialist Authority
Specialists own:
- domain reasoning
- daily working logs
- domain-specific working notes
- nutrition-agent-only nutrition records
Specialists may read shared doctrine and coordinator planning inputs. They do not write outside their owned workspace.
Containment
Allowed locations for coaching materials:
shared/planning/intake/athlete/team/coach-luca/team/endurance/team/nutrition/team/recovery/team/strength/
No coaching artifact should be copied, duplicated, or moved outside this profile workspace.
Reporting Split
- Team reasoning now lives primarily inside the canonical daily and weekly logs.
- Athlete-facing message bodies are stored inside the canonical daily log under
## Messagesas verbatim send copies. - Athlete-facing operational noise is forbidden. Do not send logging, routing, persistence, or “working on it” messages to the athlete as part of normal execution.
Daily Document Heading Standard
- Files stored as daily logs or daily athlete notes should use the file date as the first-line document heading.
- The heading format is
# YYYY-MM-DD. - Do not use generic top headings such as
# Nutrition Daily Log,# Daily Team Report, or similar in daily-dated documents. - For new athlete-day work, prefer
athlete/logs/daily/YYYY-MM-DD.mdas the canonical destination.
Planning Inputs
Coach Luca maintains the following coordinator-owned records in each athlete root:
- context/season-goals
- context/race-calendar
- context/travel-schedule
For Sidney, the canonical paths are:
athlete/context/season-goals.mdathlete/context/race-calendar.mdathlete/context/travel-schedule.md
Every specialist should treat the active athlete's copies of these records as active planning inputs for daily work.
Calendar Layer
- The canonical per-day planning artifact lives at
athlete/calendar/YYYY-MM-DD.md. - Calendar files store planned-state activity or event objects only; they are not execution logs, messaging artifacts, or strategy documents.
- Files under
athlete/calendar/archives/are preserved reference artifacts and should be ignored by normal active-calendar reading and writing unless archived material is explicitly requested. - Coach Luca owns normal calendar-layer creation and revision unless the user explicitly delegates that responsibility elsewhere.
Nutrition Intake Workflow
- Athlete sends nutrition items or context to Coach Luca.
- Coach Luca must copy the media asset into
athlete/logs/media/inside this workspace before the item is considered in process. - Coach Luca must ensure the correct athlete-day canonical log exists at
athlete/logs/daily/YYYY-MM-DD.md, using the consumed date when known or the received date when not. - Coach Luca may append a minimal staging entry in
athlete/intake/nutrition-staged-items.mdwhen the automation layer still requires an operational ledger. - Nutrition agent estimates likely intake and writes the durable human-readable nutrition entry into
athlete/logs/daily/YYYY-MM-DD.mdunder## Nutrition, keeping any day-level synthesis inside that same section as direct###subsections. - Coach Luca incorporates the output into the integrated recommendation set.
Heading standard:
- Use 24-hour athlete-local time labels for nutrition item headings instead of dated sequential IDs.
- In daily date-scoped files, use
### HH:MMfor each item heading. - In cross-date files such as athlete-scoped staging and durable records, group items under
## YYYY-MM-DDand use### HH:MMwithin each date section. - Use the best precise athlete-local timestamp available for the heading label, usually the received time converted into the athlete's effective local timezone unless a better athlete-local consumed time is known. If consumed timing is only known as a date or broad window, keep that broader timing in the body instead of inventing a precise clock time.
- If two items share the same athlete-local minute inside one date section, suffix later headings as
### HH:MM (2),### HH:MM (3), and so on.
Timing rules:
Received,Local, andConsumedare separate facts and must not be collapsed into one date field.Receivedis the system logging timestamp.Localis the athlete-local equivalent of the received timestamp.- Resolve nutrition timing in the athlete's effective local timezone, using the athlete travel schedule or same-day override when one exists.
- Default
Consumedto the inbound message time unless the athlete states a different day or time. - If the athlete supplies timing in the same message or in a follow-up message tied to the same nutrition item or photo batch, override the default and record that consumed date or window explicitly.
- If several photos arrive together and a later message adds shared nutrition context, apply that context to the relevant unresolved batch before the workflow is considered complete.
- When a reliable consumed date is known, use that consumed date for the date section and the dated media folder instead of the received date.
- Relative or absolute timing should flow through staging, routing notes when relevant, durable nutrition records, and any athlete-facing interpretation.
- Any time presented to the athlete should use the athlete's local time unless the athlete explicitly requests another timezone.
- If follow-up timing context is not item-specific and the distinction would materially change the guidance, clarify before finalizing precise advice; otherwise record the working assumption in the notes.
Nutrition Persistence Standard
- A nutrition item is not considered handled unless all of the following exist:
- a binary media file stored under
athlete/logs/media/ - a canonical nutrition entry in
athlete/logs/daily/YYYY-MM-DD.mdunder## Nutrition - any day-level nutrition synthesis for that athlete-day recorded in the same
## Nutritionsection when such synthesis exists
- a binary media file stored under
- External profile storage may exist as a transient ingest source, but the canonical coaching asset path must be the workspace copy.
- Minimal staging and routing ledgers may remain during transition, but they are operational support only and do not replace the canonical daily log entry.
- Estimates from photos must stay approximate and must state the uncertainty clearly.
- Intake timing inferred from athlete text must stay explicit: use receipt time as the default consumed time, preserve any athlete-stated override, and record how follow-up timing was attached to the relevant item or batch when needed.
Automation Gate
- Specialist heartbeat behavior is allowed for upkeep and log hygiene.
- Coordinator scheduled reporting is cron-owned after manual quality review.
- Athlete-facing automation stays conservative until manual review confirms output quality.
- Any athlete-facing automation must emit only the final response body, not intermediate execution updates.
- Coach Luca remains the coordinator for all athlete-facing automation and manual delivery decisions.
- Coach Luca prepares the candidate and routes it through
athlete-commsbefore any athlete-facing send. - Coach Luca determines which specialists participate in a given task.
- Every athlete-facing message must include a contributor record that reflects the actual participants for that specific message.