{
  "$schema": "https://developers.openai.com/apps-sdk/schemas/chatgpt-app-submission.v1.json",
  "app_info": {
    "category": "BUSINESS",
    "description": "Extract RFP requirements, deadlines, compliance items, and response checklist.",
    "display_name": "SMB RFP Copilot",
    "subtitle": "Extract RFP requirements"
  },
  "negative_test_cases": [
    {
      "description": "Do not trigger the plugin for an unsupported or externally mutating request.",
      "expected_output": "The plugin should not be invoked for this request because it is outside the supported analysis workflow or requires an unavailable external action.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": null,
      "user_prompt": "Write a birthday poem."
    },
    {
      "description": "Do not trigger the plugin for an unsupported or externally mutating request.",
      "expected_output": "The plugin should not be invoked for this request because it is outside the supported analysis workflow or requires an unavailable external action.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": null,
      "user_prompt": "Send this proposal to the buyer."
    },
    {
      "description": "Do not trigger the plugin for an unsupported or externally mutating request.",
      "expected_output": "The plugin should not be invoked for this request because it is outside the supported analysis workflow or requires an unavailable external action.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": null,
      "user_prompt": "Place a bid on this procurement portal."
    }
  ],
  "schema_version": 1,
  "test_cases": [
    {
      "description": "Exercise build_compliance_matrix for a supported SMB RFP Copilot workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "build_compliance_matrix",
      "user_prompt": "Extract requirements from this RFP."
    },
    {
      "description": "Exercise draft_response_outline for a supported SMB RFP Copilot workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "draft_response_outline",
      "user_prompt": "Build a compliance matrix from this solicitation."
    },
    {
      "description": "Exercise extract_requirements for a supported SMB RFP Copilot workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "extract_requirements",
      "user_prompt": "Generate clarification questions from this RFP."
    },
    {
      "description": "Exercise generate_rfp_questions for a supported SMB RFP Copilot workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "generate_rfp_questions",
      "user_prompt": "Draft a response outline from these requirements."
    },
    {
      "description": "Exercise score_bid_readiness for a supported SMB RFP Copilot workflow.",
      "expected_output": "Returns a structured, bounded result for the requested workflow and clearly represents uncertainty or missing information.",
      "expected_output_url": null,
      "file_attachment_urls": null,
      "tools_triggered": "score_bid_readiness",
      "user_prompt": "Score our bid readiness from this solicitation."
    }
  ],
  "tools": {
    "build_compliance_matrix": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "draft_response_outline": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "extract_requirements": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "generate_rfp_questions": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    },
    "score_bid_readiness": {
      "annotations": {
        "destructiveHint": false,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "justifications": {
        "destructive_justification": "Does not delete, overwrite, revoke access, send irreversible transactions, or perform destructive administration.",
        "open_world_justification": "Does not publish to the public internet or modify third-party systems.",
        "read_only_justification": "Computes or retrieves structured analysis from the provided input without changing external systems."
      }
    }
  }
}