{
  "$schema": "https://developers.openai.com/apps-sdk/schemas/chatgpt-app-submission.v1.json",
  "app_info": {
    "category": "PRODUCTIVITY",
    "description": "Property maintenance triage and vendor packet generator.",
    "display_name": "Maintenance Concierge",
    "subtitle": "Triage maintenance issues"
  },
  "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": "Calculate 12 times 8."
    },
    {
      "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": "Dispatch a vendor without approval."
    },
    {
      "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": "Charge the tenant for this repair."
    }
  ],
  "schema_version": 1,
  "test_cases": [
    {
      "description": "Exercise draft_tenant_questions for a supported Maintenance Concierge 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_tenant_questions",
      "user_prompt": "Triage this maintenance issue."
    },
    {
      "description": "Exercise generate_vendor_packet for a supported Maintenance Concierge 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_vendor_packet",
      "user_prompt": "Generate a vendor packet for this repair."
    },
    {
      "description": "Exercise rank_urgency for a supported Maintenance Concierge 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": "rank_urgency",
      "user_prompt": "Rank the urgency of this issue."
    },
    {
      "description": "Exercise triage_maintenance_issue for a supported Maintenance Concierge 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": "triage_maintenance_issue",
      "user_prompt": "Draft tenant questions before dispatch."
    },
    {
      "description": "Exercise triage_maintenance_issue for a supported Maintenance Concierge 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": "triage_maintenance_issue",
      "user_prompt": "Review this maintenance request for urgency."
    }
  ],
  "tools": {
    "draft_tenant_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."
      }
    },
    "generate_vendor_packet": {
      "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."
      }
    },
    "rank_urgency": {
      "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."
      }
    },
    "triage_maintenance_issue": {
      "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."
      }
    }
  }
}