222 lines
5.1 KiB
JSON
222 lines
5.1 KiB
JSON
{
|
|
"$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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|