Propose a workout adjustment
propose_workout_adjustmentPropose a change to one scheduled workout's load (lighter, rest, an easy rebuild) for review. For changes across several workouts or weeks, propose_plan_revision fits. Propose-only: it records a review_pending adjustment and changes no plan until a reviewer approves it in NexRex. A coach's proposal goes to that coach's review queue; an athlete's proposal for themself goes to their assigned coach, or, with no coach, to the athlete's own pending adjustments. plan_instance_id must be one of the athlete's own plans. A strength workout with a structured session takes its duration from that session, so its target_duration_in_seconds is not adjustable. A repeated proposal for the same workout returns status deduped. Workout reads return content_blocks as rows whose columns content_block_fields names (an interval's blocks column holds its nested steps as rows in the same columns), and a session shared by several rows as session_ref into session_definitions. As arguments, content_blocks is a list of block objects and session a session object.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"athlete_id": "<athlete_id>",
"plan_instance_id": "<plan_instance_id>",
"workout_id": "<workout_id>",
"recommendation_kind": "<recommendation_kind>",
"changes": "<changes>",
"reason": "<reason>",
"weekly_objective": "<weekly_objective>",
"minimum_change_rationale": "<minimum_change_rationale>",
"goal_impact": "<goal_impact>"
},
"name": "propose_workout_adjustment"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | Why the workout should change. | |
| changes | Yes | New values for allowlisted workout fields. | |
| athlete_id | Yes | The athlete's user id: get_current_user's athlete_id for the connected account, or an id from get_coach_athletes or find_athlete. | |
| workout_id | Yes | The scheduled workout's id from get_week_workouts. | |
| goal_impact | Yes | How the change affects the athlete's goal or race. | |
| plan_instance_id | Yes | The athlete's plan_instance_id from get_week_workouts. | |
| weekly_objective | Yes | What this week of training is meant to achieve. | |
| recommendation_kind | Yes | reduce: lighter, with a positive smaller target; rest: skip it, no numeric target; easy_rebuild: a small positive easy target after missed sessions; keep: record that the workout stays as planned, no changes. | |
| minimum_change_rationale | Yes | Why this is the smallest change that serves the athlete. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | ||
| reason | No | ||
| status | No | ||
| message | No | ||
| privacy | No | Present when the athlete's settings withhold data. | |
| coach_id | No | ||
| proposal | No | ||
| warnings | No | ||
| changeset | No | ||
| next_step | No | What can be done next, for example after a failure. | |
| retryable | No | ||
| athlete_id | No | ||
| workout_id | No | ||
| next_cursor | No | Reads the next page; null on the last page. | |
| proposal_id | No | ||
| reason_code | No | ||
| total_weeks | No | ||
| safety_class | No | ||
| user_content | No | Fields in this result that people wrote. | |
| adjustment_id | No | ||
| weeks_returned | No | ||
| applied_changes | No | ||
| review_required | No | ||
| plan_instance_id | No | ||
| superseded_count | No | ||
| truncated_fields | No | Lists cut to fit one response: rows returned and total. | |
| generated_content | No | Fields in this result that NexRex's AI wrote. | |
| session_definitions | No | Sessions that several rows of this result share by session_ref. | |
| content_block_fields | No | Column names of every content_blocks row, nested blocks rows included. |