← Files TransitionARCHIVED FILE

plugin.json

6.63 KB · Nov 4, 2026 · 00:12 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "transition-ai-coach",
  "version": "1.0.1",
  "description": "AI coach for running, cycling, and triathlon.",
  "author": {
    "name": "Transition",
    "email": "alex@transition.fun",
    "url": "https://transition.fun"
  },
  "homepage": "https://transition.fun",
  "keywords": [
    "running",
    "cycling",
    "triathlon",
    "marathon",
    "training plan",
    "endurance",
    "coach",
    "workout",
    "recovery",
    "race"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Transition",
        "shortDescription": "Run, bike & triathlon coach",
        "longDescription": "Transition is an AI training coach for runners, cyclists, and triathletes. It plans your endurance training and adapts it to your schedule and your real workout data.\n\nIn ChatGPT you can see today's workout and your week, adjust your plan when life changes, review completed sessions, and track fitness, recovery, and race predictions.\n\nWorks with Garmin, Apple Health, COROS, Suunto, Wahoo, Zwift, and ROUVY. Requires a Transition account. Transition provides training guidance, not medical advice.",
        "developerName": "Transition",
        "category": "Healthcare",
        "websiteURL": "https://transition.fun",
        "supportURL": "https://transition.fun/support",
        "privacyPolicyURL": "https://transition.fun/privacy",
        "termsOfServiceURL": "https://transition.fun/terms",
        "defaultPrompt": [
          "What's my workout today?",
          "I'm traveling Thursday to Sunday. Adjust my week.",
          "How did my long run go?"
        ],
        "composerIcon": "./assets/logo.png",
        "logo": "./assets/logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "A signed-in athlete with an active training plan checks what is scheduled today.",
              "prompt": "What's my workout today?",
              "tools_triggered": "get_todays_workout",
              "expected_behavior": "Returns today's scheduled session(s) from the athlete's plan: sport, duration, and the structured steps with intensity targets (heart rate, pace, or power zones). If today is a rest day, it says so."
            },
            {
              "description": "The athlete wants an overview of the coming week.",
              "prompt": "What does my training look like for the next 7 days?",
              "tools_triggered": "get_week_plan",
              "expected_behavior": "Returns a day-by-day list for the next 7 days starting today in the athlete's timezone, with each workout's sport, title, and duration, and rest days noted."
            },
            {
              "description": "The athlete reviews a recently completed run.",
              "prompt": "How did my most recent run go?",
              "tools_triggered": "get_past_workout_analysis (may also call get_training_history and get_activity_details)",
              "expected_behavior": "Summarizes the latest completed run (distance, duration, pace, heart rate), plus Transition's post-workout analysis and any notes or session RPE the athlete logged. If no run was completed recently, it says so, names the most recent completed session instead, and asks whether a run is missing from their synced history."
            },
            {
              "description": "An athlete with an upcoming race asks for a finish-time prediction.",
              "prompt": "What's my predicted finish time for my next race?",
              "tools_triggered": "get_race_context, get_race_prediction",
              "expected_behavior": "Returns the next race's name and date, the predicted finish time (with per-leg splits for a triathlon), confidence and reasoning, and the gap to the athlete's goal time if one is set. If there is not enough recent training data for a reliable prediction, it says so and explains what data is missing."
            },
            {
              "description": "The athlete's schedule changes and they ask for their plan to be adjusted. This is a write action.",
              "prompt": "I'm traveling Thursday through Sunday and will only have a hotel gym. Can you adjust my training plan?",
              "tools_triggered": "adapt_plan, check_adaptation_status, get_week_plan",
              "expected_behavior": "ChatGPT honors the user's app permission settings before changing the plan. After any required approval, adapt_plan starts an adaptation with the travel dates and hotel-gym limitation as the reason. check_adaptation_status is polled until ready, then get_week_plan shows the updated week. The response identifies which scheduled sessions changed to fit the travel, or explains if no changes were needed."
            }
          ],
          "negative": [
            {
              "description": "The user wants a training plan for someone else. Do not invoke any Transition tools: the signed-in athlete's data and plan are unrelated to the friend's request. ChatGPT may provide general beginner guidance without reading or changing the signed-in athlete's account.",
              "prompt": "Write a beginner 5K training plan for my friend who's never run before."
            },
            {
              "description": "The user wants to find a race to enter. Do not invoke any Transition tools: Transition reads the signed-in athlete's saved race calendar and does not search race listings or handle registration.",
              "prompt": "Find me a half marathon near Austin in November."
            },
            {
              "description": "The user asks for a medical diagnosis. Do not invoke any Transition tools or change the training plan: Transition does not diagnose injuries. The response should avoid diagnosis and suggest consulting a qualified medical professional.",
              "prompt": "My knee hurts when I run downhill. What's wrong with it?"
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/BYP03kaLIk8",
        "commerce": false,
        "commerce_description": "This plugin does not sell products or process payments."
      },
      "publication": {
        "release_notes": "Removed the general-purpose chat_with_coach tool. ChatGPT now uses named tools with declared inputs for each supported operation. Corrected workout-delivery annotations and descriptions to disclose replacements and duplicate-upload risks. Fixed athlete-timezone handling for daily and weekly plans and restored the Suunto workout-delivery route. Updated connection consent and review cases to match the supported tools and app permission settings."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 1ba45f5e31218a92154fcee3fe1907fb7966c3f62e4f04e06a4e4325097e1515