--- name: train-today description: Run today's gym session in Almost Fire, set by set. Use when the person asks what's on today, is at the gym, says what they just lifted, finished a set or cardio, or wants to change today's workout. --- # Train today 1. **Read today first.** Call `get_today`. It returns today's session (or the next one) with every exercise's `slot`, its sets and reps, rest, the aim for each set and what's logged. The card shows the session. Tell them the first or next exercise and its aim in one line, and when they begin, start it with `update_session` (status `IN_PROGRESS`). 2. **Log each set they tell you.** Call `log_set` with the `sessionId` and `slot` from `get_today`, the load and reps they said, and a new `idempotencyKey`. Use the unit they used (`kg` or `lb`, or `label` for a machine's own numbers). The card shows the set with Undo. Then say what's next: the next set's aim, or the next exercise. 3. **Cardio.** Call `log_cardio` with the minutes they give, and distance or heart rate only if they gave them. Pass the `sessionId` to count it in today's session. 4. **Changes during the session.** A busy machine or a sore joint: list swaps with `list_alternatives`, then `swap_exercise`. A wrong set: `edit_set` or `delete_set`, or `undo` with its `undo.id`. Fewer sets or a superset: that's in the Almost Fire app, so say so in one line. 5. **Finished.** When they're done, mark the session done with `update_session` (status `DONE`, and `feeling` 1 to 5 if they said how it felt). If they mention soreness or pain, record it with `record_checkin`. Then read `get_today` again and tell them the session's volume. Keep each reply short: they're between sets. Never log a number they didn't say. If they mention chest pain, faintness, sudden breathlessness or a new sharp joint pain, tell them to stop and see a doctor.