← Files WodGuruARCHIVED FILE

plugin.json

5.42 KB · Nov 3, 2026 · 19:24 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "wodguru",
  "version": "1.0.0",
  "description": "Ask about your gym's members, memberships, classes, bookings and sales in WodGuru. Read-only.",
  "author": {
    "name": "WodGuru",
    "email": "tomek@wod.guru",
    "url": "https://wod.guru"
  },
  "homepage": "https://wod.guru",
  "keywords": [
    "gym",
    "fitness",
    "crossfit",
    "members",
    "classes",
    "sales"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "WodGuru",
        "shortDescription": "Your gym's data in ChatGPT",
        "longDescription": "WodGuru is a management system for fitness clubs: CrossFit boxes, yoga and pilates studios, gyms. Connect your club and ask about it in plain language: how many active members you have, what sold last week, which classes are full and which time slots stay empty, which memberships a given member holds, what's on the schedule tomorrow.\n\nThe plugin reads your club's data from WodGuru: members and their memberships, bookings, classes and schedule, transactions, products, staff and the entrance log. Access is read-only: nothing in WodGuru can be changed through the plugin.\n\nOnly the club owner with full access can connect, after logging in to WodGuru and approving access for one club. Disconnect at any time in WodGuru: Settings > API Keys.",
        "developerName": "WodGuru",
        "category": "Business & Operations",
        "capabilities": [
          "Member stats",
          "Sales reports",
          "Class occupancy",
          "Member lookup",
          "Class schedule"
        ],
        "websiteURL": "https://wod.guru",
        "supportURL": "https://help.wod.guru",
        "privacyPolicyURL": "https://wod.guru/en/privacy",
        "termsOfServiceURL": "https://wod.guru/en/terms",
        "defaultPrompt": [
          "How many active members does my gym have?",
          "What were our sales last week?",
          "Which classes were the fullest last month?"
        ],
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Member headcount for the connected gym.",
              "prompt": "How many active members does my gym have right now?",
              "tools_triggered": "get_member_stats",
              "expected_behavior": "Returns the number of active members of the connected gym with a breakdown (e.g. with a valid membership, new this month)."
            },
            {
              "description": "Sales summary for a date range.",
              "prompt": "What were our sales in September 2026, and which memberships sold best?",
              "tools_triggered": "get_sales_stats",
              "expected_behavior": "Calls get_sales_stats for September 2026 and returns total revenue in the gym's currency, the payment split and the best-selling memberships and products."
            },
            {
              "description": "Class occupancy and empty time slots.",
              "prompt": "Which classes were the fullest last month, and which time slots were the emptiest?",
              "tools_triggered": "get_class_stats",
              "expected_behavior": "Calls get_class_stats for last month and ranks classes by occupancy, listing the weekday/time slots with the lowest occupancy."
            },
            {
              "description": "Looking up one member and their memberships.",
              "prompt": "Find Emma Example and tell me which memberships she has and when they expire.",
              "tools_triggered": "list_members",
              "expected_behavior": "Calls list_members with search=\"Emma Example\" and returns the matching member with each membership's name, expiry date and remaining sessions where applicable."
            },
            {
              "description": "Tomorrow's class schedule.",
              "prompt": "What classes are on the schedule tomorrow?",
              "tools_triggered": "list_schedule, get_location",
              "expected_behavior": "Calls list_schedule for tomorrow (optionally get_location for the gym's time zone) and lists class times and names in the gym's time zone."
            }
          ],
          "negative": [
            {
              "description": "Write request: the plugin is read-only and must not create a booking; the assistant should explain that bookings are made in WodGuru.",
              "prompt": "Sign Emma Example up for tomorrow's 6 pm class."
            },
            {
              "description": "General fitness advice: within the fitness domain but not about the gym's data; the plugin should not be called.",
              "prompt": "Write me a 4-week CrossFit programme for beginners."
            },
            {
              "description": "Market benchmarks: the plugin only has the connected gym's data, not industry data; it should not be called.",
              "prompt": "What's the average monthly membership price for gyms in Poland?"
            }
          ]
        },
        "demo_recording_url": "https://www.loom.com/share/e0f0c01fc97d447ea73d6aec53e8334c",
        "commerce": false
      },
      "publication": {
        "countries": [],
        "release_notes": "First release: read-only access to members, memberships, classes, bookings, schedule, transactions, products, staff and the entrance log."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: e05a25940bd5f8bcf52fa8b27f4704390a4ea70b8c535fe1b82d27a5ca56eb2d