{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$ref": "#/definitions/EvidenceGenerateResult",
  "definitions": {
    "EvidenceGenerateResult": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": ["all", "test", "coverage", "lint"]
        },
        "result": {
          "anyOf": [
            {
              "$ref": "#/definitions/AllEvidenceResult"
            },
            {
              "$ref": "#/definitions/EvidenceGenerationResult"
            }
          ]
        }
      },
      "required": ["kind", "result"],
      "additionalProperties": false
    },
    "AllEvidenceResult": {
      "type": "object",
      "properties": {
        "test": {
          "$ref": "#/definitions/EvidenceGenerationResult"
        },
        "coverage": {
          "$ref": "#/definitions/EvidenceGenerationResult"
        },
        "lint": {
          "$ref": "#/definitions/EvidenceGenerationResult"
        },
        "overallStatus": {
          "$ref": "#/definitions/EvidenceGenerationStatus"
        }
      },
      "required": ["test", "coverage", "lint", "overallStatus"],
      "additionalProperties": false
    },
    "EvidenceGenerationResult": {
      "type": "object",
      "properties": {
        "status": {
          "$ref": "#/definitions/EvidenceGenerationStatus"
        },
        "evidenceRecord": {
          "$ref": "#/definitions/SetupAgentsEvidenceRecord"
        },
        "summary": {
          "type": "string"
        },
        "error": {
          "type": "string"
        }
      },
      "required": ["status", "summary"],
      "additionalProperties": false
    },
    "EvidenceGenerationStatus": {
      "type": "string",
      "enum": ["success", "partial", "failed"]
    },
    "SetupAgentsEvidenceRecord": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "kind": {
          "$ref": "#/definitions/SetupAgentsStateRecordKind"
        },
        "owner": {
          "$ref": "#/definitions/SetupAgentsProfileOwner"
        },
        "evidenceKind": {
          "$ref": "#/definitions/SetupAgentsEvidenceKind"
        },
        "command": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "exitCode": {
          "type": "number"
        },
        "details": {
          "type": "string"
        },
        "minutes": {
          "type": "number",
          "description": "Measured human-effort minutes — set for `manual` / `review` kinds (GH-445)."
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "summary": {
          "type": "string"
        },
        "taskIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": ["createdAt", "evidenceKind", "id", "kind", "summary", "taskIds"]
    },
    "SetupAgentsStateRecordKind": {
      "type": "string",
      "enum": ["decision", "evidence", "handoff", "review"]
    },
    "SetupAgentsProfileOwner": {
      "type": "string",
      "enum": [
        "setup-agents:developer",
        "setup-agents:architect",
        "setup-agents:sa",
        "setup-agents:pm",
        "setup-agents:mulesoft",
        "setup-agents:ux",
        "setup-agents:cgcloud",
        "setup-agents:qa",
        "setup-agents:crma",
        "setup-agents:commerce",
        "setup-agents:data360",
        "setup-agents:sfmc",
        "setup-agents:salescloud",
        "setup-agents:service",
        "setup-agents:cpq",
        "setup-agents:omnistudio",
        "setup-agents:fsl",
        "setup-agents:ai",
        "setup-agents:slack",
        "setup-agents:tableau",
        "setup-agents:experience-cloud",
        "setup-agents:release-manager",
        "setup-agents:fsc",
        "setup-agents:health",
        "setup-agents:manufacturing",
        "setup-agents:communications",
        "setup-agents:automotive",
        "setup-agents:education",
        "setup-agents:netzero",
        "setup-agents:nonprofit",
        "setup-agents:public-sector",
        "setup-agents:media",
        "setup-agents:energy",
        "setup-agents:revenue",
        "setup-agents:maps",
        "setup-agents:loyalty",
        "setup-agents:industries"
      ]
    },
    "SetupAgentsEvidenceKind": {
      "type": "string",
      "enum": ["command", "file", "screenshot", "trace", "report", "validation", "manual", "review", "lesson", "other"]
    }
  }
}
