{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "urn:agentic-awesome-skills:schema:recommendation-output:v1", "title": "AAS deterministic recommendation output v1", "type": "object", "additionalProperties": false, "required": ["ok", "status", "protocolVersion", "coreVersion", "metadataSchemaVersion", "scorerVersion", "catalog", "normalizedInput", "recommended", "discoveryCandidates", "candidateCounts", "proposedStack", "includedSkillIds", "coveredGoals", "uncoveredGoals", "goalCapabilityMatrix", "exclusions", "exclusionReasonCounts", "hardPolicyViolations", "discoveryPromotions", "unknown", "measures"], "properties": { "ok": { "const": true }, "status": { "enum": ["complete", "partial", "insufficientCoverage"] }, "protocolVersion": { "type": "string", "minLength": 1 }, "coreVersion": { "type": "string", "minLength": 1 }, "metadataSchemaVersion": { "type": "string", "minLength": 1 }, "scorerVersion": { "type": "string", "minLength": 1 }, "catalog": { "$ref": "#/$defs/catalog" }, "normalizedInput": { "type": "object" }, "recommended": { "type": "array", "maxItems": 25, "items": { "$ref": "#/$defs/candidate" } }, "discoveryCandidates": { "type": "array", "maxItems": 25, "items": { "$ref": "#/$defs/candidate" } }, "candidateCounts": { "type": "object", "additionalProperties": false, "required": ["recommendedTotal", "recommendedReturned", "discoveryTotal", "discoveryReturned", "excludedTotal", "excludedReturned"], "properties": { "recommendedTotal": { "type": "integer", "minimum": 0 }, "recommendedReturned": { "type": "integer", "minimum": 0, "maximum": 25 }, "discoveryTotal": { "type": "integer", "minimum": 0 }, "discoveryReturned": { "type": "integer", "minimum": 0, "maximum": 25 }, "excludedTotal": { "type": "integer", "minimum": 0 }, "excludedReturned": { "type": "integer", "minimum": 0, "maximum": 25 } } }, "proposedStack": { "$ref": "#/$defs/ids" }, "includedSkillIds": { "$ref": "#/$defs/ids" }, "coveredGoals": { "$ref": "#/$defs/strings" }, "uncoveredGoals": { "$ref": "#/$defs/strings" }, "goalCapabilityMatrix": { "type": "array", "items": { "type": "object", "additionalProperties": false, "required": ["goal", "critical", "skillIds"], "properties": { "goal": { "type": "string" }, "critical": { "type": "boolean" }, "skillIds": { "$ref": "#/$defs/ids" } } } }, "exclusions": { "type": "array", "maxItems": 25, "items": { "type": "object", "additionalProperties": false, "required": ["id", "reasonCodes"], "properties": { "id": { "$ref": "#/$defs/id" }, "reasonCodes": { "$ref": "#/$defs/strings" } } } }, "exclusionReasonCounts": { "type": "object", "additionalProperties": { "type": "integer", "minimum": 1 } }, "hardPolicyViolations": { "type": "array", "maxItems": 0 }, "discoveryPromotions": { "type": "array", "items": { "type": "object" } }, "unknown": { "$ref": "#/$defs/strings" }, "measures": { "type": "object", "additionalProperties": false, "required": ["goalCoverage", "metadataCompleteness", "evidenceStrength"], "properties": { "goalCoverage": { "type": "integer", "minimum": 0, "maximum": 1000 }, "metadataCompleteness": { "type": "integer", "minimum": 0, "maximum": 1000 }, "evidenceStrength": { "type": "integer", "minimum": 0, "maximum": 1000 } } } }, "$defs": { "id": { "type": "string", "minLength": 1, "maxLength": 256 }, "ids": { "type": "array", "uniqueItems": true, "items": { "$ref": "#/$defs/id" } }, "strings": { "type": "array", "uniqueItems": true, "items": { "type": "string" } }, "catalog": { "type": "object", "additionalProperties": false, "required": ["package", "version", "digest"], "properties": { "package": { "type": "string" }, "version": { "type": "string" }, "digest": { "type": "string", "pattern": "^sha256-[a-f0-9]{64}$" } } }, "candidate": { "type": "object", "additionalProperties": false, "required": ["id", "factors", "totalScore", "coveredGoals", "eligibility", "evidenceRefs", "metadata"], "properties": { "id": { "$ref": "#/$defs/id" }, "factors": { "type": "object", "additionalProperties": { "type": "integer" } }, "totalScore": { "type": "integer" }, "coveredGoals": { "$ref": "#/$defs/strings" }, "evidenceRefs": { "type": "array", "maxItems": 8, "uniqueItems": true, "items": { "type": "string", "pattern": "^sha256-[a-f0-9]{64}$" } }, "eligibility": { "type": "object", "additionalProperties": false, "required": ["eligibleForRecommendation", "hardBlocked", "eligibilityReasonCodes", "evidenceLevel", "unknownFields", "targetCompatibility"], "properties": { "eligibleForRecommendation": { "type": "boolean" }, "hardBlocked": { "type": "boolean" }, "eligibilityReasonCodes": { "$ref": "#/$defs/strings" }, "evidenceLevel": { "enum": ["evidence-backed", "incomplete"] }, "unknownFields": { "$ref": "#/$defs/strings" }, "targetCompatibility": { "enum": ["supported", "blocked", "unknown"] } } }, "metadata": { "type": "object", "additionalProperties": false, "required": ["capabilities", "risk", "source", "setup", "targets", "dependencies", "conflicts", "validation", "tests", "reviews"], "properties": { "capabilities": { "$ref": "#/$defs/judgment" }, "risk": { "$ref": "#/$defs/judgment" }, "source": { "$ref": "#/$defs/judgment" }, "setup": { "$ref": "#/$defs/judgment" }, "targets": { "$ref": "#/$defs/judgment" }, "dependencies": { "$ref": "#/$defs/judgment" }, "conflicts": { "$ref": "#/$defs/judgment" }, "validation": { "$ref": "#/$defs/judgment" }, "tests": { "$ref": "#/$defs/judgment" }, "reviews": { "$ref": "#/$defs/judgment" } } }, "insertionReason": { "type": "object" } } }, "judgment": { "type": "object", "additionalProperties": false, "required": ["status", "value"], "properties": { "status": { "enum": ["known", "unknown", "notApplicable"] }, "value": {} } } } }