Propose Plan Update
propose_plan_updatePropose a workout template change for coach review. Submit an ops diff for classic templates or full formatParams for structured formats; the proposal is queued for accept/reject without direct mutation.
Instructions
Propose a structural change to an existing workout template for human review. Against a CLASSIC template, pass an ops[] diff (add/remove/update-sets-reps/reorder). Against a format template (CIRCUIT/EMOM/AMRAP/TABATA/LADDER/FOR_TIME/CHIPPER/DEATH_BY — check get_template's workoutType), pass formatParams instead: the complete new authoring parameters for that format, never an ops[] diff — the compiled rows are recomputed from formatParams on every save and an ops[] diff against them would be silently discarded. Exactly one of ops/formatParams may be set. Never mutates directly — the proposal is transported to the coach inbox for accept/reject. Fast-fails with an error (no network call) if the templateId is not found in the local snapshot, or if the proposal shape does not match the target template's own format. Inline newExercises[] entries that match an existing catalog exercise are automatically resolved to that catalog UUID instead of being proposed as duplicates.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ops | No | ||
| rationale | Yes | ||
| templateId | Yes | ||
| formatParams | No | ||
| newExercises | No |