{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://open-delivery-spec.dev/schemas/release-readiness.json", "title": "ODS Release Readiness", "description": "Schema for release readiness reports in the Open Delivery Spec (v1.0.0).", "type": "object", "required": ["release_id", "repository", "target_environment", "timestamp", "ready", "gates"], "properties": { "release_id": { "type": "string", "pattern": "^v\\d+\\.\\d+\\.\\d+(-[a-z0-9]+)*$" }, "repository": { "type": "string", "pattern": "^[a-zA-Z0-9._-]+/[a-zA-Z0-9._-]+$" }, "target_environment": { "type": "string", "enum": ["production", "staging", "development"] }, "requested_by": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" }, "ready": { "type": "boolean" }, "overall_score": { "type": "integer", "minimum": 0, "maximum": 100 }, "gates": { "type": "object", "required": ["ci", "tests", "security_scan", "approvals", "rollback_plan", "breaking_changes"], "properties": { "ci": { "$ref": "#/$defs/gate" }, "tests": { "$ref": "#/$defs/gate" }, "security_scan": { "$ref": "#/$defs/gate" }, "ai_review": { "$ref": "#/$defs/gate" }, "approvals": { "$ref": "#/$defs/gate" }, "rollback_plan": { "$ref": "#/$defs/gate" }, "breaking_changes": { "$ref": "#/$defs/gate" }, "documentation": { "$ref": "#/$defs/gate" } } }, "warnings": { "type": "array", "items": { "type": "object", "properties": { "gate": { "type": "string" }, "message": { "type": "string" }, "severity": { "type": "string", "enum": ["info", "warning", "critical"] } } } }, "ai_release_summary": { "type": "object", "properties": { "total_changes": { "type": "integer" }, "ai_contributed_changes": { "type": "integer" }, "ai_contribution_percentage": { "type": "number", "minimum": 0, "maximum": 100 }, "risk_assessment": { "type": "string", "enum": ["low", "medium", "high"] }, "recommendation": { "type": "string" } } } }, "$defs": { "gate": { "type": "object", "required": ["passed", "required"], "properties": { "status": { "type": "string" }, "passed": { "type": "boolean" }, "required": { "type": "boolean" } } } } }