AI Authoring Spec
Garage Coach V13 CSV grammar and formatting rules.
1. Purpose
Garage Coach is a deterministic workout execution engine. It expands CSV-defined sessions into structured timed and rep-based steps. This specification defines the exact grammar required for valid CSV generation.
2. Critical Output Rules
These rules are non-negotiable.
- The first line must be the exact required header.
- The header must match character-for-character including all 16 columns.
- The header must be the only content on line 1.
- Each workout row must be on its own new line.
- The CSV must contain exactly 16 comma-separated columns per row.
- Columns must not be reordered, renamed, added, or removed.
- No quotation marks anywhere in the CSV.
- No commas inside any field values.
- No commentary or notes inside any field.
- Output only CSV data. No explanations.
Exact required header
session_id,plan_id,exercise_id,type,name,sets,reps,load_value,load_unit,load_increment,star_enabled,time,rest,group_id,group_pos,group_rest
3. Allowed type Values
Strict enum:
warmupexercisestretchrest
4. Structural Encoding Rules
- Rest between sets: use the
restcolumn. - Rest between exercises: insert a
type=restrow. - Supersets and round-based circuits: use
group_id,group_pos, andgroup_rest. - Do not use
group_idfor blocks or phases. - If the workout says rounds or circuit, encode as a group, not sets.
- EMOM: encode as sequential timed rows with
time=60. - Timed holds: use the
timecolumn, not reps. - Rep-based steps are manually completed by the user.
- Numeric columns must contain numeric values only.
- Leave
load_valueblank for bodyweight movements. Defaultload_unitiskg. - Always include required rests where needed.
- Do not add a final rest row at the end of the session.
5. Whitespace & Formatting Discipline
- Blank fields must be truly blank with no spaces.
- No trailing spaces at end of lines.
- Each row must contain exactly 15 commas, giving 16 columns.
- No row may be combined onto a single line.
6. Exercise ID Rules
exercise_idmust be present for all non-rest rows.exercise_idmust not contain spaces.- Left/right variations should use unique
exercise_idvalues. - Each row should have a stable identifier.
7. Transition Rest Policy
Garage Coach does not assume rest between exercises. If transition recovery is required, insert a dedicated type=rest row.
8. Example Superset Encoding
TUE,SS1_A,incline_press,exercise,Incline Press,3,8,,kg,,1,,0,SS1,1,75 TUE,SS1_B,row,exercise,Row,3,10,,kg,,1,,0,SS1,2,75
9. Example Transition Rest Row
TUE,R_001,,rest,Transition Rest,1,,,kg,,0,60,,,,