{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Microsoft Foundry hosted-agent validation report", "type": "object", "required": [ "reportId", "generatedAt", "target", "results", "markdownPath" ], "properties": { "reportId": { "type": "string", "pattern": "^[A-Za-z0-9](?:[A-Za-z0-9._-]*[A-Za-z0-9])?$" }, "generatedAt": { "type": "string", "format": "date-time" }, "target": { "type": "object", "required": ["serviceName", "agentRoot"], "properties": { "serviceName": { "type": "string" }, "agentRoot": { "type": "string", "description": "The unchanged agentPath resolved for the validation run; never a manifest-derived subdirectory." } }, "additionalProperties": false }, "results": { "type": "array", "items": { "type": "object", "required": ["ruleId", "title", "level", "rationale", "status", "details", "guidance"], "properties": { "ruleId": { "type": "string", "minLength": 1 }, "title": { "type": "string", "minLength": 1 }, "level": { "type": "string", "enum": ["error", "warning", "recommendation"] }, "rationale": { "type": "string", "minLength": 1, "description": "Reason the rule matters, copied from the validation rule." }, "status": { "type": "string", "enum": ["pass", "fail", "inconclusive", "skipped"] }, "details": { "type": "string", "minLength": 1, "description": "Result-specific status explanation and repository evidence." }, "recommendedAction": { "type": "string", "minLength": 1, "description": "Concrete action required to resolve a failed result." }, "sourceCode": { "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "string", "minLength": 1 }, "description": "Plain-text, agentPath-relative source locations using file:line or file:start-end." }, "guidance": { "type": "array", "minItems": 1, "items": { "oneOf": [ { "type": "string", "format": "uri" }, { "type": "object", "required": ["title", "link"], "properties": { "title": { "type": "string", "minLength": 1 }, "link": { "type": "string", "format": "uri" } }, "additionalProperties": false } ] }, "description": "Guidance links as legacy URL strings or titled link objects." } }, "additionalProperties": false } }, "markdownPath": { "type": "string" } }, "additionalProperties": false }