Back to Vekta Skills

Coach Command Centre

Coach Command Centre

Monitoring

Built tool

Coach Command Centre
Coach Command Centre

Created by

Vekta

Last updated

Categories

Monitoring

Built tool

Made for

Coaches

Runs

Every day

Topics

Load

Recovery

Scheduling

Share

A morning page that reads every athlete you coach and ranks who to look at first, with load, recovery, compliance and the next three days.

A morning page that reads every athlete you coach and ranks who to look at first, with load, recovery, compliance and the next three days.

Every morning it reads the last seven days for every athlete on your key: sessions, Vekta Volume and Intensity, sleep, HRV and resting heart rate, and the plan for the next three days. Load-8, Load-2 and Strain are computed the way the Vekta apps compute them, so the numbers match what each athlete sees.

Flags rank the page: resting heart rate up, HRV suppressed, nothing logged. One table for the whole roster, then a card per athlete with the week day by day and what is planned. It aggregates and flags. The coaching decisions stay with you.

How to run it

1

Paste the prompt

Open Claude Code, Codex or Gemini CLI and paste it. Fill in anything in square brackets.

2

Or install the file

Unzip it into ~/.claude/skills for Claude Code, or ~/.agents/skills for Codex and Gemini CLI. Then run it as a Skill by name each time.

3

Let it run

A scheduled skill runs on your own computer, so it has to be on. Everything it reads is your data, through your key.

What it touches

Reads from Vekta

Rides, planned sessions, sleep, HRV, resting heart rate, the athlete profile

Writes to Vekta

Nothing. It only reads.

Works in

Claude Code, Codex, Gemini CLI

Free, one step

Unlock this skill

The prompt and the installable file, free. Your name and email once, then every skill in the library opens on this browser for a year.

By unlocking you join Vekta’s email list. Unsubscribe any time.

Free, one step

Unlock this skill

The prompt and the installable file, free. Your name and email once, then every skill in the library opens on this browser for a year.

By unlocking you join Vekta’s email list. Unsubscribe any time.

Free, one step

Unlock this skill

The prompt and the installable file, free. Your name and email once, then every skill in the library opens on this browser for a year.

By unlocking you join Vekta’s email list. Unsubscribe any time.

GET THIS SKILL

The prompt, and the file.

Unlocked on this browser for a year. Paste the prompt into Claude Code, Codex or Gemini CLI, or install the file and run it by name.

THE PROMPT AND FILE

Get the file (.zip)

Build my Coach Command Centre from Vekta: one HTML page, generated each morning, that reads every athlete I coach and tells me who to look at first. Run it now for today, then keep it as a command I can run any morning. Read from the Vekta API with my key (Bearer token, base https://api.joinvekta.com). Docs are at the end. Windows are in each athlete's local dates. Today is the day I run it. 1. Data to pull, per athlete from GET /users - Activities from 56 days before the start of the 7-day window to today. Use startedAtLocal for the day, effectiveDuration for time, and Vekta's own volume and intensity per session. Sessions with no local start date are left out. - Sleeps for the last 28 days (day is the wake-up date): totalDuration, averageHrv, restingHeartRate. - Training prescriptions from the start of the 7-day window to three days from today: date, title, description, sport, trainingStimulus, duration, work, averagePower, rpe, activityId. - The profile from GET /users/{id}: latestMetrics. 2. Windows and definitions - The 7-day window is the last 7 days including today. The previous week is the 7 days before it. - Volume 7d is the sum of Vekta volume in the window. Time 7d is the sum of effectiveDuration. Distance 7d and metres climbed are sums of distance and elevationGain. - Load-8 is the 8-week exponentially weighted average of daily Vekta volume (alpha 2/57), Load-2 the 2-week one (alpha 2/15), and Strain the 2-week exponentially weighted average of daily Vekta intensity (alpha 2/15). Daily intensity is the duration-weighted mean of the day's sessions, rounded; a day with no session is 0 volume and 0 intensity. Each series starts from zero 56 days before the first day of the 7-day window and counts only sessions from that day on. This is how the Vekta apps compute them, so the numbers match what the athlete sees. - Read Load-8, Load-2 and Strain at the end of yesterday, never part way through today: Load-2 moves about four times faster than Load-8, so a mid-morning read shows the whole roster detraining. Show each one's change over 7 days (yesterday against 8 days ago), the Load-2 to Load-8 ratio, and the Load-8 ramp: half of (yesterday's Load-8 minus the value two days before that), shown per day. - Compliance is planned sessions in the 7-day window that Vekta has paired with a completed activity (activityId set), out of all planned sessions in the window. A session ridden without a plan does not count against it. - Recovery baselines are the athlete's own 28-day averages of HRV, resting heart rate and sleep duration, excluding the most recent night. HRV last and Resting HR are the most recent night. Sleep avg is the mean of the nights in the 7-day window. - Blank cells mean Vekta has no value, usually because no wearable or power meter was connected that day. Heart rate of 0 on a session means no heart rate: leave it out, never average it. 3. Flags, in this order of severity - Red, Resting HR up: the most recent night's resting heart rate is 5 bpm or more above the 28-day average. Reason text: "+N bpm above the 4 week average". - Amber, HRV suppressed: the most recent night's HRV is more than 15% below the 28-day average. Reason text: "N ms against a N ms baseline". - Amber, Nothing logged: no session in the 7-day window. Reason text: "no session in the last 7 days". - Load-2 above Load-8 is the overreaching signal and Load-2 below it is normal in a taper or the off season: show the ratio, do not flag it. Watch the Load-8 trend instead. - An athlete's dot is red if any red flag, amber if any amber flag, green otherwise. 4. The page, top to bottom - Title: "Coach Command Centre · Friday 11 September 2026", with a sub-line stating the windows exactly: "Training from Sat 05 Sep to Fri 11 Sep. Plan to Mon 14 Sep. Recovery baselines over the last 28 days. Load and Strain read at the end of Thu 10 Sep. Generated 10:00." - Five KPI cards: Athletes; Need attention (athletes with any flag); Sessions, 7 days; Hours, 7 days (one decimal); Planned, next 3 days (sessions). - "Look at these first": every flagged athlete, red before amber, then alphabetical, each with the dot, the name and one chip per flag (the flag name in bold, then the reason). - "Every athlete": one table, same order with the unflagged athletes after, alphabetical. Columns: Athlete · Volume 7d with the change against the previous week as a percentage · Time 7d in hours, one decimal · Sessions with "2/2 planned" under it when any were planned · Load-8 with the 7-day change · Load-2 with the ratio as "0.82x L8" · Strain with the 7-day change · Sleep avg · HRV last with the change against baseline as a percentage · Resting HR with the change against baseline in bpm · Next 3d as the number of planned sessions with their total time under it. Numbers right-aligned and tabular. Colour the small change lines: volume up red, down blue; Load-8 down blue; Strain up red, down blue; HRV below baseline red; resting HR at or above baseline red; the ratio never coloured. - "Athlete by athlete": one card per athlete in the same order. Header: dot, name, the flag chips, or a plain chip "Nothing flagged". Ten stat tiles: Volume 7d (change vs previous week) · Time 7d (number of sessions) · Load-8 (ramp per day) · Load-2 (ratio to Load-8) · Strain (change over 7 days) · Compliance (planned sessions done) · Sleep avg (4-week average) · HRV last night in ms (baseline) · Resting HR in bpm (baseline) · Distance 7d in km (metres climbed). Then two columns. Left, "Last 7 days": one row per day, today marked, with the day's sessions (sport as the title, then a line with the Vekta stimulus, time, km, NP in watts, average heart rate in bpm, intensity as "int 79", RPE and feel out of 5, leaving out anything Vekta has no value for), "rest" on days with none, and the day's Volume, Sleep as hours and minutes, HRV and RHR; under the table, when the athlete has no sleep data: "No sleep or recovery data for this athlete. Check that a wearable is connected." A planned session in the window with no paired activity is marked missed in red on its day. Right, "Today and the next 3 days": one block per day (Today, then the next three dates), each either "Nothing planned" or the planned sessions: the title, a line with sport, stimulus, planned time, planned kJ, planned average watts and RPE where set, the day's total planned time next to the date, and a collapsible "Workout detail" holding the prescription's description as written. Under it, "Current numbers": one chip per latest metric from the profile for critical power, VO2max, max heart rate and weight, with the sport in brackets and the unit. - Footer: the six definitions above in plain words, so any coach reading the page knows what each number is. 5. Design and delivery - Self-contained HTML, no external files, system font, 1180px wide, cards with hairline borders and 10px radius, KPI values at 24px, uppercase 11px labels, red, amber and green chips with tinted backgrounds. Follow the system light or dark theme with prefers-color-scheme, and print cleanly with cards kept whole. - Save it as latest.html in a folder named command-centre, keep a dated copy beside it, and open it. - Pace requests: the key allows 300 a minute and 30 a minute per athlete; wait for Retry-After on a 429. An athlete whose activities return 404 has no active subscription or is no longer in my workspace: list them with that note. - The page carries athlete names and physiology, so treat the file as private. You aggregate and flag. The coaching decisions are mine. Docs: api.joinvekta.com/openapi.json

Next step

Run Coach Command Centre on your Vekta data

The API is free with every subscription. Paste the prompt and it reads your own data.

Coaching instead? Switch to the coach view

Next step

Run Coach Command Centre on your Vekta data

The API is free with every subscription. Paste the prompt and it reads your own data.

Coaching instead? Switch to the coach view

Next step

Run Coach Command Centre on your Vekta data

The API is free with every subscription. Paste the prompt and it reads your own data.

Coaching instead? Switch to the coach view

Next step

Run Coach Command Centre across your roster

The API is free with every subscription. Paste the prompt and it reads your whole roster.

Switch to the athlete view

Next step

Run Coach Command Centre across your roster

The API is free with every subscription. Paste the prompt and it reads your whole roster.

Switch to the athlete view

Next step

Run Coach Command Centre across your roster

The API is free with every subscription. Paste the prompt and it reads your whole roster.

Switch to the athlete view

Dream Big

Dream Big

Dream Big

The API is free with every Vekta subscription. One prompt connects it.

The API is free with every Vekta subscription. One prompt connects it.