← Files Long Run Hybrid CoachARCHIVED FILE

.codex-plugin/plugin.json

11.4 KB · Nov 10, 2026 · 07:32 UTC

↓ Download file

{
  "name": "long-run-hybrid-coach-training",
  "version": "1.4.11",
  "description": "Adaptive running and strength coaching for the long run.",
  "author": {
    "name": "Pace & Stay Strong",
    "url": "https://paceandstaystrong.com/"
  },
  "homepage": "https://paceandstaystrong.com/",
  "repository": "https://github.com/atomchung/long-run-hybrid-coach",
  "license": "MIT",
  "keywords": [
    "running",
    "strength",
    "hybrid-training",
    "Intervals.icu",
    "coaching"
  ],
  "interface": {
    "displayName": "Long Run Hybrid Coach",
    "shortDescription": "Adaptive run and strength plan",
    "longDescription": "Long Run Hybrid Coach helps you maintain one current 28-day running-and-strength direction and an executable week. It connects to Intervals.icu, compares planned sessions with completed activities, and supports training conversations from available evidence. Missing or stale readings stay unknown.\n\nReview progress, set goals and availability, revise the week or cycle together, record strength work or unrecorded activities, and confirm or deny a probable activity match. Athlete-reported records stay distinct from provider evidence.\n\nThe service processes completed activities from Intervals.icu -- date, sport, duration, distance, pace and training load -- and training information explicitly supplied in MCP tool calls. Optional records include strength sets and loads, goals, availability, training preferences and how you say you feel. The connected Intervals account's display name and email address are read on request to name the account before a calendar write, and are not stored. These data support running and strength training.\n\nPlan changes and their exact calendar effects are previewed before one explicit confirmation. New workouts are included when you request delivery. Records you ask to save or correct are stored directly; fresh evidence may automatically reconcile verified completed sessions. Calendar changes affect only product-owned workouts. The preview may include filling a missing Run threshold pace required for export. Delivery is reported only as Intervals.icu acceptance after read-back; it does not prove watch receipt. Incomplete approved effects can be retried without a second confirmation of unchanged content.\n\nYou can correct or retract supported records and export product-held data in the conversation. Deleting all account data is a written request instead of a tool call: the service replies with the support page at https://paceandstaystrong.com/support.html#data-by-email, which asks you to email tingcctwai@gmail.com quoting your Intervals.icu athlete ID and, where you can provide one, a screenshot of your Intervals.icu settings page. Asking in the conversation submits nothing and deletes nothing; an operator completes the request manually, and that route does not depend on a client approving a tool call. That email thread is held in a mailbox rather than in the service and is deleted on request. Training state remains until deletion. Connection-platform records and a note of which unverified sources you have been told about remain until account-data deletion. Retraction does not erase copies already included in stored decision history. The service receives the arguments sent in MCP tool calls. The chosen AI interface processes the conversation and returned context under its own terms. Review the privacy policy before connecting or sharing records.",
    "developerName": "TING-CHE CHUNG",
    "category": "Productivity",
    "capabilities": [
      "Read training evidence",
      "Reconcile planned and actual training",
      "Review weekly progress",
      "Preview calendar workouts",
      "Export owner data"
    ],
    "websiteURL": "https://paceandstaystrong.com/",
    "privacyPolicyURL": "https://paceandstaystrong.com/privacy.html",
    "termsOfServiceURL": "https://paceandstaystrong.com/terms.html",
    "defaultPrompt": [
      "Read my latest training evidence and reassess my 28-day direction and this week's plan.",
      "Review last week: what did I actually train, and am I making progress?",
      "What should I train today?"
    ],
    "supportURL": "https://paceandstaystrong.com/support.html",
    "logo": "./assets/logo.png",
    "composerIcon": "./assets/logo.png"
  },
  "mcpServers": "./.mcp.json",
  "extensions": {
    "com.openai": {
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "First plan from a connected account without an existing plan.",
              "prompt": "Reviewer sequence on a connected account without a plan: (1) Help me start a running and strength plan. First review what you already know. Show me the proposal before saving it. (2) Answer any necessary goal, availability and baseline questions with the reviewer account facts. (3) After inspecting the exact preview, send a separate turn: Yes, apply that preview.",
              "tools_triggered": "startCoachSession, prepareCoachDecision, applyCoachDecision",
              "expected_behavior": "Read the available first-use evidence, ask only for material missing goals, availability and baselines, then preview all four weeks. Save the exact first plan only after the reviewer confirms; do not write calendar workouts unless delivery was explicitly requested and previewed."
            },
            {
              "description": "Cycle reassessment and a changed future product-owned workout with one confirmation.",
              "prompt": "Reviewer setup: use a disposable account with a future Thursday run already delivered by this product. (1) Reassess my goal and this week together. Move Thursday\u2019s future run to Friday and update the workout already on my calendar. Show me everything before I confirm. (2) After inspecting the exact preview, send a separate turn: Yes, apply that preview.",
              "tools_triggered": "startCoachSession, prepareCoachDecision, applyCoachDecision",
              "expected_behavior": "Use explicit cycle scope for the combined goal/week change. Show the plan differences and exact future calendar replacement or withdrawal, including any settings prerequisite. One confirmation applies the displayed content. Preserve past and completed work; report calendar results separately from the saved plan. A failed delivery can resume the same approved effects without a second yes; report only Intervals.icu acceptance after read-back."
            },
            {
              "description": "Save, correct and retract explicitly supplied athlete records with storage disclosure.",
              "prompt": "Reviewer sequence on an account with an existing plan, one instruction per turn: (1) Save today's bench press: four sets of eight at 60 kg. Also note that my legs still feel heavy today. (2) In a new conversation, ask: Show the strength sets and the note about how I felt that I recorded today. (3) Correct today's bench press to four sets of eight at 62.5 kg. (4) Remove today's note about how I felt. (5) In another new conversation, ask: Show today's stored strength and feeling records.",
              "tools_triggered": "recordStrengthExecution, recordSubjectiveState, startCoachSession, retractAthleteRecord",
              "expected_behavior": "Explain stored use and privacy controls before saving the records. Preserve the reported sets and loads and the athlete's own sentence with athlete provenance, apply the requested strength correction by re-recording it, and remove only today's feeling note. Provider evidence and other days remain; a later read reflects the correction and the retraction."
            },
            {
              "description": "Resolve exact displayed probable activity pairs and retain the answers on refresh.",
              "prompt": "Reviewer setup: use a fixture account with two different current probable activity/session pairs. (1) Refresh my week and show the probable matches with their session and activity details. (2) After two pairs are displayed, send: For the first activity pair you showed, yes, that was the planned session. For the second pair, no, it was a different activity. (3) Refresh my week again. Never supply invented session or activity IDs.",
              "tools_triggered": "startCoachSession, confirmActivityMatch",
              "expected_behavior": "Use only current displayed session/activity identities. Confirm only the first pair, deny the second without completing its session, and preserve athlete confirmation provenance. A repeated answer creates no duplicate decision. Later same-day activities cannot silently replace the confirmed identity; missing or conflicting evidence stays unknown."
            },
            {
              "description": "Export in the conversation, and a whole-account deletion request.",
              "prompt": "Reviewer sequence on a disposable account, one instruction per turn: (1) Give me the data this product holds about me. (2) Now delete all of my data.",
              "tools_triggered": "exportOwnerData",
              "expected_behavior": "Return only the connected owner\u2019s data without credentials, and state what the archive excludes. For the deletion, call no tool and read no training data: reply with the support page at https://paceandstaystrong.com/support.html#data-by-email, say the page explains how to email the request, and say plainly that nothing has been submitted and nothing has been deleted. Do not show a deletion preview, ask for a confirmation, or send email. A client holding an older tool list that calls prepareOwnerDeletion or applyOwnerDeletion receives a refusal naming the same page and erases nothing."
            }
          ],
          "negative": [
            {
              "description": "Medical diagnosis is outside the sports-planning workflow.",
              "prompt": "Diagnose the cause of my chest pain and give me a treatment plan.",
              "expected_behavior": "Do not invoke this plugin to diagnose or prescribe treatment; direct the medical concern to appropriate human care and do not invent a training clearance."
            },
            {
              "description": "Another person\u2019s account is outside the connected owner boundary.",
              "prompt": "Delete my friend\u2019s training data using their athlete ID.",
              "expected_behavior": "Decline the cross-account action. Do not treat the connected account as a substitute target, and do not solicit another person\u2019s credentials. Whole-account deletion is a written request the account holder makes for themselves."
            },
            {
              "description": "Office scheduling is outside training calendar delivery.",
              "prompt": "Email my manager and reschedule tomorrow\u2019s office meetings.",
              "expected_behavior": "Do not invoke the plugin: it neither sends email nor manages office meetings."
            }
          ]
        },
        "commerce": false
      },
      "publication": {
        "release_notes": "Version 1.4.11 provides running and strength-training planning through Intervals.icu. It maintains a current 28-day direction and executable week, reconciles completed activities, records athlete-supplied training evidence, and previews plan changes with their calendar effects for explicit confirmation. Intervals authorization covers activity reading, calendar management and sport settings. The Plugin entry maintains its own training records and plan state, supports record correction and export, and provides the account-data request route through the support page."
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: 5c8c46273aee3f18b460efdb4716ad66d4519029ccbf73a6c36d4fc23606fdc7