log_run
Create an editable running card for a completed run or future plan, capturing distance, duration, run type, and optional sensor data.
Instructions
UNIT INPUTS: never convert units yourself. Pass the user's number for a _lb / _mi / _in field exactly as stated, and when they gave kg / km / cm set input_weight_unit / input_distance_unit / input_length_unit in that same object. Omit the companion when the number is already lb / mi / in. The tool converts once before storage, so this overrides any wording that asks you to do the arithmetic.
Create an editable running card. Use for a completed run OR a future run plan.
intent:
log (default): the run happened. date, distance_mi and duration_sec are required. This writes the completed run and returns a card marker for in-app editing.
plan: the run has NOT happened yet. Create a planned run card. Never put a future run in completed history.
RUN TYPE: distinguish easy, long, tempo, interval, recovery, race, fartlek, threshold, progression and hills when the runner or workout structure supports it. If a wearable run is unspecified, do NOT call it easy merely because it was a run.
DETAIL: preserve elapsed time, HR, cadence, power, elevation, RPE, splits and structured segments only when supplied by the user/source. Never invent sensor data or splits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rpe | No | RPE 1-10. For a plan this is target RPE. | |
| date | No | YYYY-MM-DD. Completed runs default to today when context allows; planned runs use the intended date when known. | |
| notes | No | ||
| avg_hr | No | Average heart rate only when known. | |
| intent | Yes | log = completed run; plan = future run. Elias uses plan for a workout the runner has not done yet. | |
| splits | No | Actual splits/laps only when supplied by the runner/source. Never invent. | |
| surface | No | ||
| run_type | No | Classify only when the runner or workout structure supports it. Do not turn an unspecified wearable run into easy. | |
| segments | No | Workout structure, e.g. warmup, 6x800m threshold, recovery, cooldown. This may describe a plan or what was actually performed. | |
| pain_notes | No | Pain/discomfort exactly as the runner described it. | |
| start_time | No | Local HH:MM only when known. | |
| avg_power_w | No | Average running power in watts only when known. | |
| distance_mi | No | Distance. In mi, or km with input_distance_unit set. See UNIT INPUTS. | |
| elapsed_sec | No | Wall-clock elapsed time including pauses, only when known. | |
| duration_sec | No | Moving/workout duration in seconds. | |
| avg_cadence_spm | No | Average running cadence in steps/min only when known. | |
| elevation_gain_m | No | Elevation gain in metres only when known. | |
| perceived_effort | No | Post-run check-in only. | |
| input_distance_unit | No | Set to km when the user gave km for the _mi fields in this object. Omit when they are already mi. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes | Human-readable result text returned by the tool. |