Skip to content

madoo.quality-report/v1

Madoo quality report — Self-contained, explainable result of a quality-gate decision.

Reference madoo.quality-report/v1
Schema id urn:madoo:schema:quality-report:v1
Version 1.0.0
Served at GET /api/v1/json-schemas/madoo.quality-report/v1 · MCP get_json_schema
  • Produced by: utility/quality_gate → report
Field Type Required Rules Description
schema "madoo.quality-report/v1" yes
policyId string yes min length 1; max length 128
policyFingerprint string yes pattern “^[a-f0-9]{64}$”
profile one of "all_must_pass", "weighted", "advisory" yes
minimumScore number yes ≥ 0; ≤ 1
onMissing one of "fail", "warn", "ignore" yes
passed boolean yes
score number yes ≥ 0; ≤ 1
counts object yes no other fields
counts.total integer yes ≥ 0; ≤ 32
counts.passed integer yes ≥ 0; ≤ 32
counts.failed integer yes ≥ 0; ≤ 32
counts.warning integer yes ≥ 0; ≤ 32
counts.notApplicable integer yes ≥ 0; ≤ 32
checks array of objects yes max items 32
checks[].schema "madoo.quality-check/v1" yes
checks[].checkId string yes min length 1; max length 128
checks[].checkType string yes min length 1; max length 128
checks[].status one of "passed", "failed", "warning", "not_applicable" yes
checks[].score number yes ≥ 0; ≤ 1
checks[].summary string yes min length 1; max length 1000
checks[].metrics object yes
checks[].violations array of objects yes max items 256
checks[].violations[].code string yes min length 1; max length 128
checks[].violations[].severity one of "error", "warning", "info" yes
checks[].violations[].message string yes min length 1; max length 2000
checks[].violations[].path string or null max length 500
checks[].violations[].expected any
checks[].violations[].actual any
checks[].technique object yes no other fields
checks[].technique.name string yes min length 1; max length 128
checks[].technique.version string yes min length 1; max length 64
failedCheckIds array of string yes max items 32
missingCheckIds array of string yes max items 32
warnings array of string yes max items 256
aggregation object yes no other fields
aggregation.name string yes min length 1; max length 128
aggregation.version string yes min length 1; max length 64
madoo.quality-report/v1 (JSON Schema)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:madoo:schema:quality-report:v1",
"title": "Madoo Quality Report v1",
"description": "Self-contained result of aggregating deterministic quality checks.",
"type": "object",
"required": [
"schema",
"policyId",
"policyFingerprint",
"profile",
"minimumScore",
"onMissing",
"passed",
"score",
"counts",
"checks",
"failedCheckIds",
"missingCheckIds",
"warnings",
"aggregation"
],
"properties": {
"schema": {
"const": "madoo.quality-report/v1"
},
"policyId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"policyFingerprint": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"profile": {
"type": "string",
"enum": [
"all_must_pass",
"weighted",
"advisory"
]
},
"minimumScore": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"onMissing": {
"type": "string",
"enum": [
"fail",
"warn",
"ignore"
]
},
"passed": {
"type": "boolean"
},
"score": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"counts": {
"type": "object",
"required": [
"total",
"passed",
"failed",
"warning",
"notApplicable"
],
"properties": {
"total": {
"type": "integer",
"minimum": 0,
"maximum": 32
},
"passed": {
"type": "integer",
"minimum": 0,
"maximum": 32
},
"failed": {
"type": "integer",
"minimum": 0,
"maximum": 32
},
"warning": {
"type": "integer",
"minimum": 0,
"maximum": 32
},
"notApplicable": {
"type": "integer",
"minimum": 0,
"maximum": 32
}
},
"additionalProperties": false
},
"checks": {
"type": "array",
"maxItems": 32,
"items": {
"$ref": "#/$defs/check"
}
},
"failedCheckIds": {
"$ref": "#/$defs/checkIds"
},
"missingCheckIds": {
"$ref": "#/$defs/checkIds"
},
"warnings": {
"type": "array",
"maxItems": 256,
"items": {
"type": "string",
"maxLength": 2000
}
},
"aggregation": {
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"version": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"additionalProperties": false
}
},
"$defs": {
"checkIds": {
"type": "array",
"maxItems": 32,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"violation": {
"type": "object",
"required": [
"code",
"severity",
"message"
],
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"severity": {
"type": "string",
"enum": [
"error",
"warning",
"info"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"path": {
"type": [
"string",
"null"
],
"maxLength": 500
},
"expected": true,
"actual": true
},
"additionalProperties": false
},
"technique": {
"type": "object",
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"version": {
"type": "string",
"minLength": 1,
"maxLength": 64
}
},
"additionalProperties": false
},
"check": {
"type": "object",
"required": [
"schema",
"checkId",
"checkType",
"status",
"score",
"summary",
"metrics",
"violations",
"technique"
],
"properties": {
"schema": {
"const": "madoo.quality-check/v1"
},
"checkId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"checkType": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"status": {
"type": "string",
"enum": [
"passed",
"failed",
"warning",
"not_applicable"
]
},
"score": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 1000
},
"metrics": {
"type": "object"
},
"violations": {
"type": "array",
"maxItems": 256,
"items": {
"$ref": "#/$defs/violation"
}
},
"technique": {
"$ref": "#/$defs/technique"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}