Work03Gym Coach

Gym Coach

Claude skill + static site Astro Markdown as the database Jul – Sep 2026

Two halves that share one folder of markdown. A Claude skill acts as a training coach mid-session: it reads a state file, prescribes weights, logs sets typed one-handed at the rack, awards XP, and writes the session back. An Astro site then builds a progress board straight from those files.

Simulated mock · scripted session, invented lifts Open full screen

This demo is built for a wider screen. Open it full screen for the best look on a phone.

The coach replay is scripted and every weight, rank and streak is made up. The real coach runs inside a Claude chat and stores logs in a cloud drive folder.

Watch a session

Set results arrive in any format. The coach logs, decides hold or build, and tallies XP at the end.

Switch to the site

The Board is what the Astro build produces from those logs: one row per lift with weight, rep range, rank and trend.

Open a lift

Click any row for its estimated one-rep-max progression, rank proximity ring and session history.

Notice what is missing

There is no red anywhere. A missed week or a lighter day is shown neutrally, by design.

Key highlights

  • The coach reads exactly one state file at session start and writes two files at the end. Zero calls between sets, so nothing lags while you are standing at the rack.
  • Progression rules, rep ranges, substitutions, cues and the rank ladder live in plain markdown reference files. Changing the program is editing a document.
  • XP, levels, streaks and achievements make consistency the path of least resistance without nagging about misses.
  • The progress site is fully static: no server, no database, no write path. Figures are transcribed from the log rather than recomputed, so the board and the coach can never disagree.
  • Three different session log formats are parsed, with a curated alias map so "seated row" and "chest-supported row" become the right lift.

How it is built

  • CoachClaude skill, markdown prompt
  • Reference filesgoals, training style, voice
  • Log storeCloud drive folder
  • SiteAstro 7, static output
  • ParsersTypeScript, node:test
  • ChartsECharts
  • PagesBoard, lift, session, calendar
  • GuardrailsGrep checks in CI docs

Design choices

Cool neutrals with a single pine-green accent. The palette contains no token for a negative outcome and no three-step ramp that could read as one, so a bad week is unstyleable as such by omission rather than by discipline.

All work