Use when the user asks to analyze, summarize, review or recap their most recent training session, ride, run or swim. Triggers include "how was my last ride", "analyze my last workout", "what did I do yesterday", "recap my session". Pulls the most recent CompletedSession from the Koval MCP server, renders a full markdown summary card (sport, duration, avg power/HR, TSS/IF, RPE, blocks, power curve) and highlights any new personal records.
getRecentSessions with limit=1 to find the most recent CompletedSession. Capture its sessionId.renderSessionSummary(sessionId) — returns a ready-to-paste markdown card with overview table, per-block breakdown and (for cycling sessions with a FIT file) a power curve bar chart.getPersonalRecords and compare against the session's power curve. If any duration's best from this session ties or beats the user's all-time PR, mention it explicitly.getScheduledWorkoutDetail to surface the planned target vs the actual.Lead with a one-sentence verdict ("Solid endurance ride", "Hard session — that VO2 block hit hard"), then drop the markdown card from renderSessionSummary verbatim. If you found a PR, add a **🏆 New PR:** line right after the verdict. Keep prose minimal — the card already has all the numbers.
renderSessionSummary will skip the power curve section automatically; that's fine.koval-zone-setup skill or set FTP via updateFtp.