Tool tree
gradeNot graded
get_planAnswer
Call this first before planning, repairing, or editing. The athlete may have changed the live calendar since your last call. Returns the complete profile, sessions and lock state, metrics, flags, highlights, and any repair already awaiting approval.
View tool JSON
{
"name": "get_plan",
"kind": "answer",
"impl": "imperative",
"description": "Call this first before planning, repairing, or editing. The athlete may have changed the live calendar since your last call. Returns the complete profile, sessions and lock state, metrics, flags, highlights, and any repair already awaiting approval.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}get_metricsAnswer
Read the current weekly load, week-over-week change, Foster monotony, strain, deload checks, and safety flags without fetching every session. Use after the athlete asks whether the block still works.
View tool JSON
{
"name": "get_metrics",
"kind": "answer",
"impl": "imperative",
"description": "Read the current weekly load, week-over-week change, Foster monotony, strain, deload checks, and safety flags without fetching every session. Use after the athlete asks whether the block still works.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}
}propose_changesAction
Preferred tool for replanning after a missed session, schedule conflict, fatigue, pain, travel, or changed priority. Read the current plan first, then submit the smallest useful set of changes. This simulates the result and shows the athlete an approval card; it does not alter the calendar. Never include a locked session—work around it instead.
View tool JSON
{
"name": "propose_changes",
"kind": "act",
"impl": "imperative",
"description": "Preferred tool for replanning after a missed session, schedule conflict, fatigue, pain, travel, or changed priority. Read the current plan first, then submit the smallest useful set of changes. This simulates the result and shows the athlete an approval card; it does not alter the calendar. Never include a locked session—work around it instead.",
"inputSchema": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"rationale": {
"type": "string",
"minLength": 1,
"maxLength": 300
},
"changes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"add",
"update",
"move",
"remove"
]
},
"id": {
"type": "string",
"minLength": 1
},
"week": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"day": {
"type": "string",
"enum": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
]
},
"type": {
"type": "string",
"enum": [
"strength",
"power",
"technique",
"speed",
"conditioning",
"mobility",
"rest"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"rpe": {
"type": "number",
"minimum": 1,
"maximum": 10
},
"duration_min": {
"type": "integer",
"minimum": 5,
"maximum": 300
},
"notes": {
"type": "string",
"maxLength": 500
}
},
"required": [
"operation"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 12
}
},
"required": [
"summary",
"rationale",
"changes"
],
"additionalProperties": false
}
}set_profileAction
Partially update the athlete profile. Preserve fields the athlete did not ask to change. Returns current weekly loads and flags because availability changes can create conflicts.
View tool JSON
{
"name": "set_profile",
"kind": "act",
"impl": "imperative",
"description": "Partially update the athlete profile. Preserve fields the athlete did not ask to change. Returns current weekly loads and flags because availability changes can create conflicts.",
"inputSchema": {
"type": "object",
"properties": {
"sport": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"goal": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"event_date": {
"type": "string",
"format": "date"
},
"days_available": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
]
},
"uniqueItems": true,
"minItems": 1
},
"constraints": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 20
}
},
"required": [],
"additionalProperties": false
}
}set_week_focusAction
Set the periodization focus and human-readable intent for one week. Use before adding that week's sessions so the calendar explains the load shape. Returns current loads and flags.
View tool JSON
{
"name": "set_week_focus",
"kind": "act",
"impl": "imperative",
"description": "Set the periodization focus and human-readable intent for one week. Use before adding that week's sessions so the calendar explains the load shape. Returns current loads and flags.",
"inputSchema": {
"type": "object",
"properties": {
"week": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"focus": {
"type": "string",
"enum": [
"accumulation",
"intensification",
"realization",
"deload",
"taper"
]
},
"intent": {
"type": "string",
"minLength": 1,
"maxLength": 240
}
},
"required": [
"week",
"focus",
"intent"
],
"additionalProperties": false
}
}add_sessionAction
Immediately add one training session. For repair or replanning requests, prefer propose_changes so the athlete can inspect and approve the full patch. A cell holds at most three sessions.
View tool JSON
{
"name": "add_session",
"kind": "act",
"impl": "imperative",
"description": "Immediately add one training session. For repair or replanning requests, prefer propose_changes so the athlete can inspect and approve the full patch. A cell holds at most three sessions.",
"inputSchema": {
"type": "object",
"properties": {
"week": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"day": {
"type": "string",
"enum": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
]
},
"type": {
"type": "string",
"enum": [
"strength",
"power",
"technique",
"speed",
"conditioning",
"mobility",
"rest"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"rpe": {
"type": "number",
"minimum": 1,
"maximum": 10
},
"duration_min": {
"type": "integer",
"minimum": 5,
"maximum": 300
},
"notes": {
"type": "string",
"maxLength": 500
}
},
"required": [
"week",
"day",
"type",
"title",
"rpe",
"duration_min"
],
"additionalProperties": false
}
}update_sessionAction
Immediately update one session. For repair or replanning requests, prefer propose_changes. Never use this to move a session; use move_session. Locked sessions reject the change.
View tool JSON
{
"name": "update_session",
"kind": "act",
"impl": "imperative",
"description": "Immediately update one session. For repair or replanning requests, prefer propose_changes. Never use this to move a session; use move_session. Locked sessions reject the change.",
"inputSchema": {
"type": "object",
"minProperties": 2,
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"strength",
"power",
"technique",
"speed",
"conditioning",
"mobility",
"rest"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"rpe": {
"type": "number",
"minimum": 1,
"maximum": 10
},
"duration_min": {
"type": "integer",
"minimum": 5,
"maximum": 300
},
"notes": {
"type": "string",
"maxLength": 500
}
},
"required": [
"id"
],
"additionalProperties": false
}
}move_sessionAction
Immediately move one session. For repair or replanning requests, prefer propose_changes. Check capacity and lock state; a locked commitment must be worked around.
View tool JSON
{
"name": "move_session",
"kind": "act",
"impl": "imperative",
"description": "Immediately move one session. For repair or replanning requests, prefer propose_changes. Check capacity and lock state; a locked commitment must be worked around.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"week": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"day": {
"type": "string",
"enum": [
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun"
]
}
},
"required": [
"id",
"week",
"day"
],
"additionalProperties": false
}
}remove_sessionAction
Immediately remove one session. For repair or replanning requests, prefer propose_changes. Locked sessions reject removal because only the athlete can change them.
View tool JSON
{
"name": "remove_session",
"kind": "act",
"impl": "imperative",
"description": "Immediately remove one session. For repair or replanning requests, prefer propose_changes. Locked sessions reject removal because only the athlete can change them.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
}
}highlightAction
Gesture at sessions or whole weeks in the visible planner while explaining a risk, tradeoff, or recommendation. Each call replaces the prior highlight. Omit both arrays to clear the visual emphasis after your message is resolved.
View tool JSON
{
"name": "highlight",
"kind": "act",
"impl": "imperative",
"description": "Gesture at sessions or whole weeks in the visible planner while explaining a risk, tradeoff, or recommendation. Each call replaces the prior highlight. Omit both arrays to clear the visual emphasis after your message is resolved.",
"inputSchema": {
"type": "object",
"properties": {
"session_ids": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true,
"maxItems": 20
},
"weeks": {
"type": "array",
"items": {
"type": "integer",
"minimum": 1,
"maximum": 4
},
"uniqueItems": true,
"maxItems": 4
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 300
}
},
"required": [
"message"
],
"additionalProperties": false
}
}