{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.corva.ai/fe-ai-tools/health-report/v1",
  "type": "object",
  "additionalProperties": false,
  "required": ["schemaVersion", "kind", "generatedAt", "source", "summary", "capabilities", "issueCodes", "feedback", "repositories"],
  "properties": {
    "schemaVersion": { "const": 1 },
    "kind": { "const": "fleet-health-report" },
    "generatedAt": { "type": "string", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T" },
    "source": {
      "type": "object", "additionalProperties": false,
      "required": ["registryPath", "registryDigest", "checkouts", "observationsPath", "observationsDigest"],
      "properties": {
        "registryPath": { "type": "string", "minLength": 1 },
        "registryDigest": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
        "checkouts": { "type": "string", "minLength": 1 },
        "observationsPath": { "type": ["string", "null"] },
        "observationsDigest": { "type": ["string", "null"], "pattern": "^[a-f0-9]{64}$" }
      }
    },
    "summary": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } },
    "capabilities": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } },
    "issueCodes": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } },
    "feedback": {
      "type": "object", "additionalProperties": false,
      "required": ["reports", "turns", "toolCalls", "recoveries", "guessedParameters", "contextOnlyAnswers", "zeroToolFailures", "tokens", "sendToFirstEventMsP50Median", "defectClasses"],
      "properties": {
        "reports": { "type": "integer", "minimum": 0 }, "turns": { "type": "integer", "minimum": 0 },
        "toolCalls": { "type": "integer", "minimum": 0 }, "recoveries": { "type": "integer", "minimum": 0 },
        "guessedParameters": { "type": "integer", "minimum": 0 }, "contextOnlyAnswers": { "type": "integer", "minimum": 0 },
        "zeroToolFailures": { "type": "integer", "minimum": 0 }, "tokens": { "type": "integer", "minimum": 0 },
        "sendToFirstEventMsP50Median": { "type": ["integer", "null"], "minimum": 0 },
        "defectClasses": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 0 } }
      }
    },
    "repositories": {
      "type": "array",
      "items": {
        "type": "object", "additionalProperties": false,
        "required": ["repository", "rolloutGroup", "status", "manifestVersion", "kitRange", "resolvedKitVersion", "canonRevision", "coverageStatus", "toolCount", "capabilities", "evidence", "issues"],
        "properties": {
          "repository": { "type": "string" }, "rolloutGroup": { "type": "string" }, "status": { "type": "string" },
          "manifestVersion": { "type": ["integer", "null"] }, "kitRange": { "type": ["string", "null"] },
          "resolvedKitVersion": { "type": ["string", "null"] }, "canonRevision": { "type": ["integer", "null"] },
          "coverageStatus": { "type": ["string", "null"] }, "toolCount": { "type": "integer", "minimum": 0 },
          "capabilities": { "type": "array", "items": { "type": "string" } },
          "evidence": {
            "type": "object", "additionalProperties": false,
            "properties": {
              "liveReport": {
                "type": "object", "additionalProperties": false, "required": ["path", "exists", "digest"],
                "properties": {
                  "path": { "type": "string", "minLength": 1 }, "exists": { "type": "boolean" },
                  "digest": { "type": ["string", "null"], "pattern": "^[a-f0-9]{64}$" }
                }
              }
            }
          },
          "issues": { "type": "array", "items": { "type": "string" } }
        }
      }
    }
  }
}
