{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://stella-ops.org/schemas/reasoning.stella/v1.json", "title": "Reasoning Predicate Schema", "description": "Schema for reasoning.stella/v1 predicate type - policy evaluation trace", "type": "object", "required": [ "sbomEntryId", "evidenceIds", "policyVersion", "inputs", "reasoningId" ], "properties": { "sbomEntryId": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}:pkg:.+", "description": "The SBOM entry ID this reasoning applies to" }, "evidenceIds": { "type": "array", "items": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$" }, "minItems": 1, "description": "Evidence IDs that were considered in this reasoning" }, "policyVersion": { "type": "string", "pattern": "^v[0-9]+\\.[0-9]+\\.[0-9]+$", "description": "Version of the policy used for evaluation" }, "inputs": { "type": "object", "required": ["currentEvaluationTime"], "properties": { "currentEvaluationTime": { "type": "string", "format": "date-time", "description": "The evaluation time used for temporal reasoning" }, "severityThresholds": { "type": "object", "description": "Severity thresholds applied during evaluation" }, "latticeRules": { "type": "object", "description": "Lattice rules used for status merging" } }, "additionalProperties": false }, "intermediateFindings": { "type": "object", "description": "Intermediate findings from the evaluation" }, "reasoningId": { "type": "string", "pattern": "^sha256:[a-f0-9]{64}$", "description": "Content-addressed ID of this reasoning" } }, "additionalProperties": false }