{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://boat.local/quant60/schemas/release_reachability.schema.json", "title": "Quant60 Release Reachability", "description": "Per-layer evidence for implementation, tests, entrypoint reachability and real-platform observation. A repository source hash is not runtime evidence.", "type": "object", "additionalProperties": false, "required": [ "schema_version", "artifact_type", "release_id", "generated_at", "layers", "summary", "manifest_sha256" ], "properties": { "schema_version": { "const": "1.0" }, "artifact_type": { "const": "quant60-release-reachability" }, "release_id": { "$ref": "#/$defs/identifier" }, "generated_at": { "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" }, "layers": { "$ref": "#/$defs/layers" }, "summary": { "$ref": "#/$defs/summary" }, "manifest_sha256": { "$ref": "#/$defs/sha256" } }, "$defs": { "identifier": { "type": "string", "minLength": 1, "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$" }, "sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$" }, "artifact": { "type": "object", "additionalProperties": false, "required": [ "artifact_id", "kind", "path", "sha256", "platform" ], "properties": { "artifact_id": { "$ref": "#/$defs/identifier" }, "kind": { "type": "string", "enum": [ "source", "test", "entrypoint", "platform_run" ] }, "path": { "type": "string", "minLength": 1 }, "sha256": { "$ref": "#/$defs/sha256" }, "platform": { "type": "string", "enum": [ "repository", "local", "joinquant", "qmt" ] }, "observed_at": { "type": "string", "format": "date-time", "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$" }, "run_id": { "$ref": "#/$defs/identifier" } }, "dependentRequired": { "observed_at": [ "run_id" ], "run_id": [ "observed_at" ] } }, "claim": { "type": "object", "additionalProperties": false, "required": [ "status", "artifacts" ], "properties": { "status": { "type": "boolean" }, "artifacts": { "type": "array", "items": { "$ref": "#/$defs/artifact" } } } }, "layer": { "type": "object", "additionalProperties": false, "required": [ "implemented", "unit_tested", "local_entrypoint_reachable", "jq_entrypoint_reachable", "qmt_entrypoint_reachable", "real_platform_observed" ], "properties": { "implemented": { "$ref": "#/$defs/claim" }, "unit_tested": { "$ref": "#/$defs/claim" }, "local_entrypoint_reachable": { "$ref": "#/$defs/claim" }, "jq_entrypoint_reachable": { "$ref": "#/$defs/claim" }, "qmt_entrypoint_reachable": { "$ref": "#/$defs/claim" }, "real_platform_observed": { "$ref": "#/$defs/claim" } } }, "layers": { "type": "object", "additionalProperties": false, "required": [ "universe", "alpha", "portfolio", "risk", "execution" ], "properties": { "universe": { "$ref": "#/$defs/layer" }, "alpha": { "$ref": "#/$defs/layer" }, "portfolio": { "$ref": "#/$defs/layer" }, "risk": { "$ref": "#/$defs/layer" }, "execution": { "$ref": "#/$defs/layer" } } }, "summary": { "type": "object", "additionalProperties": false, "required": [ "all_layers_implemented", "all_layers_unit_tested", "all_layers_local_entrypoint_reachable", "all_layers_jq_entrypoint_reachable", "all_layers_qmt_entrypoint_reachable", "all_layers_real_platform_observed" ], "properties": { "all_layers_implemented": { "type": "boolean" }, "all_layers_unit_tested": { "type": "boolean" }, "all_layers_local_entrypoint_reachable": { "type": "boolean" }, "all_layers_jq_entrypoint_reachable": { "type": "boolean" }, "all_layers_qmt_entrypoint_reachable": { "type": "boolean" }, "all_layers_real_platform_observed": { "type": "boolean" } } } } }