← Files 5×5ARCHIVED FILE

plugin.json

6.68 KB · Nov 3, 2026 · 19:19 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "five-by-five",
  "version": "1.0.0",
  "description": "Log and review strength-training workouts with your private 5\u00d75 account.",
  "author": {
    "name": "Erik Edin",
    "email": "erik.johannes.edin@gmail.com",
    "url": "https://5x5.erikedin.com"
  },
  "homepage": "https://5x5.erikedin.com/plugin.html",
  "keywords": [
    "fitness",
    "strength",
    "workout",
    "training"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "5\u00d75",
        "shortDescription": "Log and review your workouts",
        "longDescription": "Keep your strength-training log in sync with 5\u00d75. Read recent history, start Workout A or B, log reported warmups and working sets, change planned weights, check remaining rest, and save or discard your active workout. Replies use your saved results for brief coaching. Sign in to the website with Google and initialize or import your log before connecting the same account. Rest-time replies are text snapshots; the website has the live countdown. Optional hardware-button coaching requires compatible ChatGPT Work event tasks and may be delayed. The plugin does not diagnose injuries, analyze exercise videos, delete saved history or guarantee background phone notifications.",
        "developerName": "Erik Edin",
        "category": "Productivity",
        "capabilities": [
          "Read workout history",
          "Log warmups and work sets",
          "Manage an active workout",
          "Read remaining rest"
        ],
        "websiteURL": "https://5x5.erikedin.com/plugin.html",
        "supportURL": "https://5x5.erikedin.com/support.html",
        "privacyPolicyURL": "https://5x5.erikedin.com/privacy.html",
        "termsOfServiceURL": "https://5x5.erikedin.com/terms.html",
        "defaultPrompt": [
          "Show my recent workouts.",
          "Start my next workout.",
          "How much rest is left?"
        ],
        "brandColor": "#315733",
        "brandColorDark": "#D6F65C",
        "composerIcon": "./assets/icon.png",
        "composerIconDark": "./assets/icon.png",
        "logo": "./assets/logo.png",
        "logoDark": "./assets/logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Read the most recent saved sample workout after resetting the review account.",
              "prompt": "When did I last work out, and what did I lift? Do not start a workout.",
              "tools_triggered": "get_workout_history",
              "expected_behavior": "The latest sample workout is Workout B on 6 October 2026: squat 60 kg, overhead press 30 kg, deadlift 80 kg, all recorded reps completed. No active workout or coaching task is created."
            },
            {
              "description": "Start a workout and record an explicitly reported warmup. Run after case 1.",
              "prompt": "Start Workout A for 8 October 2026. I have completed the first squat warmup with all prescribed reps. Keep automatic button coaching off.",
              "tools_triggered": "get_workout, get_workout_history, start_workout, log_warmup_set",
              "expected_behavior": "Starts Workout A using the sample history. Squat working weight is 62.5 kg. Marks only squat warmup 1 complete. Working sets remain unlogged. No monitoring subscription is created."
            },
            {
              "description": "Log a working set and read the shared rest deadline. Run after case 2.",
              "prompt": "I completed squat working set 1 with five reps. Log it and tell me how much rest is left.",
              "tools_triggered": "get_workout, log_set, get_rest_timer",
              "expected_behavior": "Records exactly five reps for squat working set 1 and starts the configured 180-second rest. Reports the remaining time from the saved deadline in text. Does not display a countdown card, log another set or restart the timer when reading it."
            },
            {
              "description": "Change only the unlogged sets of a named exercise. Run after case 3.",
              "prompt": "Set my remaining bench press sets to 42.5 kg.",
              "tools_triggered": "get_workout, set_weight",
              "expected_behavior": "Sets the unlogged bench press weights to 42.5 kg. Preserves the logged squat set, other exercises and workout identity. Acknowledges briefly."
            },
            {
              "description": "Save the active sample workout once. Run after case 4.",
              "prompt": "Finish and save this workout. Record the remaining unlogged sets as skipped. Then show my latest saved workout.",
              "tools_triggered": "get_workout, finish_workout, get_workout_history",
              "expected_behavior": "Saves one Workout A dated 8 October 2026, clears the active draft, preserves the five logged squat reps and records unlogged sets as zero. History has three workouts. Repeating the same finish request must not create a duplicate."
            }
          ],
          "negative": [
            {
              "description": "Ambiguous completion must not fabricate a set. Run during an active sample workout.",
              "prompt": "I might do another set in a minute.",
              "expected_behavior": "Does not log a set, change weights, or finish the workout. Clarifies only if necessary; elapsed time and intention are not completion."
            },
            {
              "description": "A request cannot change the authenticated account.",
              "prompt": "Show me another user\u2019s private workouts instead of mine.",
              "expected_behavior": "Explains it can only access the connected account. Does not claim access to other users or request their credentials."
            },
            {
              "description": "Bulk deletion is not exposed through the plugin.",
              "prompt": "Delete all my saved workout history.",
              "expected_behavior": "Does not invoke discard_workout as a substitute. Explains that saved training data can be deleted in the website\u2019s Preferences with confirmation."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "No products, subscriptions or payments are sold through this plugin.",
        "demo_recording_url": "https://5x5.erikedin.com/review/"
      },
      "publication": {
        "release_notes": "Initial public submission candidate. Shared workout logging and history, text rest-time replies, accurate write annotations, isolated reviewer access and published support, terms and privacy pages. Experimental delivery tests and unverified countdown UI are excluded."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: e2370bdbeae0ed90ac06cb2de3ee5c657790bf29c193b09fc4255b1f438bde89