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 |
Where it appears
Section titled “Where it appears”- Produced by:
utility/quality_gate→report
Fields
Section titled “Fields”| 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 |
The complete schema
Section titled “The complete schema”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}