{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://powercat.microsoft.com/schemas/solution.findings.schema.json", "title": "PowerCAT OverFlow Solution Findings", "description": "Solution-level findings document for a Power Platform solution that contains one or more Power Automate flows. Combines a solution-wide narrative + 4-category roll-up + cross-flow top risks with per-flow findings keyed by flow friendly name.", "type": "object", "additionalProperties": false, "required": ["solution"], "properties": { "solution": { "type": "object", "additionalProperties": false, "required": ["categories"], "description": "Solution-wide review information that spans all flows in the solution.", "properties": { "name": { "type": "string", "description": "Display name of the solution being reviewed." }, "uniqueName": { "type": "string", "description": "Unique (publisher-prefixed) name of the solution, e.g. EngineeringWorkflowIntegration." }, "version": { "type": "string", "description": "Solution version as it appears in solution.xml (e.g. 1.0.0.332)." }, "summary": { "type": "string", "description": "Narrative paragraph (markdown or plain text) describing the overall review verdict for the solution." }, "categories": { "type": "array", "minItems": 1, "maxItems": 4, "description": "Roll-up impact per evaluation category across the whole solution.", "items": { "type": "object", "additionalProperties": false, "required": ["category", "impact"], "properties": { "category": { "enum": ["Complexity", "Maintainability", "Security", "Performance"] }, "impact": { "enum": ["high", "medium", "low"] }, "summary": { "type": "string", "description": "One- or two-sentence justification for the category roll-up impact." }, "flowsAffected": { "type": "integer", "minimum": 0, "description": "Number of flows in the solution that contributed to this category roll-up." } } } }, "topRisks": { "type": "array", "description": "Cross-flow high-priority findings worth surfacing in the executive summary. Each risk may reference a specific flow + action so the UI can deep-link.", "items": { "type": "object", "additionalProperties": false, "required": ["label", "desc", "impact"], "properties": { "label": { "type": "string" }, "desc": { "type": "string" }, "impact": { "enum": ["high", "medium", "low"] }, "category": { "enum": ["Complexity", "Maintainability", "Security", "Performance"] }, "flow": { "type": "string", "description": "Friendly name (file basename minus GUID) of the flow this risk lives in. Matched case-insensitively against the loaded solution's flows." }, "action": { "type": "string", "description": "Optional action name inside the referenced flow that the risk points at. Used to deep-link to the action card in the diagram." }, "fix": { "type": "string", "description": "Single-sentence actionable remediation step for this top-risk item." } } } }, "stats": { "type": "object", "additionalProperties": false, "description": "Optional aggregate counts the reviewer wants to surface in the overview dashboard.", "properties": { "flowCount": { "type": "integer", "minimum": 0 }, "totalActions": { "type": "integer", "minimum": 0 }, "highImpactFlows": { "type": "integer", "minimum": 0 }, "flowsReviewed": { "type": "integer", "minimum": 0 } } } } }, "flows": { "type": "object", "description": "Per-flow findings keyed by the flow's friendly name (file basename minus the trailing -.json). Each value is the same shape as findings.schema.json — an array of category objects with items.", "additionalProperties": { "type": "array", "minItems": 1, "maxItems": 4, "items": { "type": "object", "additionalProperties": false, "required": ["category", "impact", "items"], "properties": { "category": { "enum": ["Complexity", "Maintainability", "Security", "Performance"] }, "impact": { "enum": ["high", "medium", "low"] }, "items": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["label", "desc", "impact"], "properties": { "label": { "type": "string", "minLength": 1 }, "desc": { "type": "string", "minLength": 1 }, "impact": { "enum": ["high", "medium", "low"] }, "action": { "type": "string", "description": "Optional name of the action inside the flow that the finding points to." }, "fix": { "type": "string", "description": "Single-sentence actionable remediation step." } } } } } } } } } }