{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "english-exercises",
  "version": "0.2.1",
  "description": "Interactive English practice",
  "author": {
    "name": "Charles Daniel Crowley"
  },
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "English Exercises",
        "shortDescription": "Interactive English practice",
        "longDescription": "Practise English with existing grammar and vocabulary exercises inside ChatGPT. Find a topic and CEFR level, then complete gap-fill questions, sentence transformations or click-to-edit corrections. Get instant marking, hints, explanations and a final score with mistake review. Results stay in the current player; account progress is not saved. Dictation and audio practice are available on the website rather than through this plugin.",
        "developerName": "Charles Daniel Crowley",
        "category": "Education & Research",
        "defaultPrompt": "Help me practise English with interactive exercises.",
        "websiteURL": "https://www.english-exercises.org/chatgpt",
        "supportURL": "https://www.english-exercises.org/contact",
        "privacyPolicyURL": "https://www.english-exercises.org/privacy#chatgpt",
        "termsOfServiceURL": "https://www.english-exercises.org/terms",
        "logo": "./assets/icon.png",
        "composerIcon": "./assets/icon.png",
        "capabilities": [
          "Find English exercises",
          "Interactive English practice"
        ]
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Topic and CEFR filtering. Start a fresh conversation with the plugin selected.",
              "prompt": "Find B1 exercises about the present perfect.",
              "tools_triggered": "find_exercises",
              "expected_behavior": "Call find_exercises with query present perfect and level B1. Return at most five matching exercises with their actual titles, levels, question counts and links. Use only returned catalogue entries."
            },
            {
              "description": "Gap-fill workflow and an external website link. Start a fresh conversation; complete all 20 questions, using Have and visited for the first question, and one deliberately incorrect answer to check mistake review.",
              "prompt": "Open Present Perfect for Experience so I can practise.",
              "tools_triggered": "find_exercises, open_exercise",
              "expected_behavior": "Find the existing exercise, then call open_exercise with present-perfect-experience. Show the existing interactive player; it checks answers, supplies hints and explanations and reaches its score screen. The review shows accepted answers, not verb prompts. Get more free exercises requests host navigation to www.english-exercises.org."
            },
            {
              "description": "Sentence transformations. Start a fresh conversation and complete all questions in the returned exercise.",
              "prompt": "Help me practise reported speech in the present simple with sentence transformations.",
              "tools_triggered": "find_exercises, open_exercise",
              "expected_behavior": "Find and open reported-speech-present-simple. The transformation player accepts the recorded answer variants, including contractions and terminal punctuation, and reaches the original score screen."
            },
            {
              "description": "Click-to-edit corrections. Start a fresh conversation and complete all questions by editing incorrect segments.",
              "prompt": "Give me an exercise where I click and correct word-order mistakes.",
              "tools_triggered": "find_exercises, open_exercise",
              "expected_behavior": "Find and open word-order-error-correction. Show clickable segments, let the learner edit mistakes, mark the answers using the existing exercise data and reach the final score and review."
            },
            {
              "description": "Supported search with no results and recovery. Start a fresh conversation.",
              "prompt": "Find English exercises about zzzxxyy. If there are none, tell me.",
              "tools_triggered": "find_exercises",
              "expected_behavior": "Call find_exercises with query zzzxxyy. The exercises array is empty. Say there are no matching exercises and offer a different topic; do not fabricate titles or call open_exercise with an invented slug."
            }
          ],
          "negative": [
            {
              "description": "Audio and dictation are outside this plugin. Explain the limit and point to the website without calling find_exercises or open_exercise for an unsupported dictation player.",
              "prompt": "Play me an audio dictation exercise inside this plugin."
            },
            {
              "description": "The tools only return existing catalogue exercises. Explain that the plugin cannot generate a new custom player; do not invoke its tools to fabricate new questions or claim that a custom exercise was created.",
              "prompt": "Create a completely new interactive exercise using these invented verbs: zorp and flim."
            },
            {
              "description": "No accounts or saved progress. Explain that scores stay in the current player; do not invoke find_exercises or open_exercise to save or retrieve account data, or claim progress was saved.",
              "prompt": "Save my score to my English Exercises account and show my progress from last week."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "Free English practice. No purchases, subscriptions or payment flows in the plugin.",
        "demo_recording_url": "https://www.english-exercises.org/chatgpt/review-demo-2026-10-03.mp4"
      },
      "publication": {
        "countries": [],
        "release_notes": "Corrected the public listing category and removed pricing language from the description. Exercise behaviour is unchanged from the recorded demo."
      },
      "apps": "./.app.json"
    }
  }
}
