Skip to content
Skills Library
Medicine & health · Planning

program-build

/program-build

Build the athlete's training program from their intake answers and explain every choice. Use after onboarding, when the user asks for a new or different program, or when CURRENT.md says to rebuild at this week.

Repository
coaich ↗
Licence
AGPL-3.0
Last repository change
17.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 17.10.2026, without references to retired models or APIs.

Licence

AGPL-3.0, copyleft: przeróbki udostępniane innym muszą mieć tę samą licencję.

What it does and when to use it

Build the athlete's training program from their intake answers and explain every choice. Use after onboarding, when the user asks for a new or different program, or when CURRENT.md says to rebuild at this week.

Original author description

Build the athlete's training program from their intake answers and explain every choice. Use after onboarding, when the user asks for a new or different program, or when CURRENT.md says to rebuild at this week.

How it works

  1. 1. Safety first
  2. 2. Answers
  3. 3. Build
  4. 4. Explain
  5. 5. Optional: push to Hevy
Original SKILL.md headings · 63 lines, 495 words
SKILL.md preview
---
name: program-build
description: Build the athlete's training program from their intake answers and explain every choice. Use after onboarding, when the user asks for a new or different program, or when CURRENT.md says to rebuild at this week.
---

# Program build

A fixed decision tree turns `profile.md` into a program: level, layout, time version, then goal, priority, age
and pain adapt it. The script does every number; you explain it. Never invent sets, reps or exercises: if the
user wants something the tree does not give, say so and offer `program-audit` on their own version.

Rules and sources: [starter-programs.md](../../references/starter-programs.md),
[evidence.md](../../references/evidence.md). Output format: [program-schema.md](../../docs/program-schema.md).

## 1. Safety first

Call the Skill tool with `safety` unless it ran in this conversation and `coaich.md` shows `safety_status` go
or warn. A `stop` ends here: repeat the safety skill's wording, build nothing.

## 2. Answers

Find the folder: `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/athlete_folder.py" find`. Read `profile.md`. The script
needs `age_band`, `history`, `last_trained` (unless history is never), `days_per_week`, `minutes_per_session`;
`goal` for intermediate and up; `chair_stand` for 60+ beginners; `known_loads` and `priority` only matter for
advanced. Missing → run that question from `/onboard` (one at a time), write it to `profile.md`, go on.

A changed answer ("I can only do 3 days now") → update `profile.md` first, then build. Never pass answers any
other way.

## 3. Build

```
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/program_build.py" --dir <folder> [--week N]
```

`--week` = the program week counted in sessions done (default 1; use `rebuild_at_week` from `CURRENT.md` when
rebuilding). Add `--dry-run` to preview without writing.

| Exit | Meaning | Do |
|---|---|---|
| 0 | wrote `plan/program.json`, the program block of `plan/CURRENT.md`, a `log.md` line | step 4 |
| 1 | the audit refused the program | show the failures, write nothing by hand, report it as a bug |
| 2 | stop: medical gate, under 16, or a bad answer | show the message; fix the named key or hand back to `safety` |

## 4. Explain

Read the program block in `plan/CURRENT.md` and present it. The block's **Why this program** list is the spine
of your answer: one reason per choice, in plain words, each with its source kind (a study, or "our rule"):

- **Level** and why (history and recency, never a self-label; ambiguous answers go down).
- **Layout and days**, and any cap ("4 days at most for your first 12 weeks").
- **Time**: the longest session against their minutes.
- **Reps and effort**: rep ranges, "reps in reserve" explained once as *how many more you could have done*;
  spine lifts always 2 or more short of failure.
- **Every swap** in `swaps` and every slot in `left_out`, with the area it protects.
- **Easy weeks**: when, and what an easy week is.
- **Warnings** verbatim, first, before any table. **Notes** after.

Then the sessions table, the alternatives, and: sessions run in order, not by weekday. End with what happens
next: log the sessions (or `/import`), then `/weekly-review` grades them and sets next week's targets.

## 5. Optional: push to Hevy

Only if `data_sources` has `hevy-mcp` and the user says yes: follow
[../weekly-review/hevy-routines.md](../weekly-review/hevy-routines.md) with `build --program` (sets and rep
ranges, no weights yet; the weekly review sends the weights once they're known).

Versions

The database has no other skills named program-build.

Database snapshot: 13.11.2026 · package version b3793508ea51 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 95program-audit
    Check a training program against the evidence and report gates (pass or fail) and preferences (notes), each with its source. Use for "is my program good", "check my routine", or to audit a generated program after a change.
  • 90athlete-panel-training-coaching
    Clarify material gaps in athlete context before creating a training program or adjusting pending workouts in Athlete Panel. Use for weekly adjustments and new multi-month programs, alongside the training-planning skill for scoped context and proposal submission.
  • 90athlete-panel-training-coaching
    Clarify material gaps in athlete context before creating a training program or adjusting pending workouts in Athlete Panel. Use for weekly adjustments and new multi-month programs, alongside the training-planning skill for scoped context and proposal submission.
  • 100plan-week
    Plans the athlete's training week (or next block) around their real availability, fatigue, recent training and A/B/C races, with the bike as the priority and gym, swimming, running or hiking fitted in. Produces a day-by-day table with watts, HR and RPE, the expected load versus…
  • 100professional-athlete
    Use when a task needs the judgment of a professional or elite competitive athlete — planning a training block around a competition date, deciding whether to return to play after injury, reading fatigue/recovery data to adjust load, or evaluating a contract or endorsement deal…
  • 100create-liftlog-plan
    Create a LiftLog workout plan (.liftlogplan file) that can be imported into the LiftLog app. Use when the user asks for a workout program, training split, lifting routine, or running plan, or asks to build/edit/convert a plan for LiftLog.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.