The open report schema
Terminal, markdown, and JSON output, stamped with the model and prompt version.
Every run produces three views of the same result: a human readable terminal summary, a markdown report, and norma-report.json, the canonical machine readable artifact. Choose with --format terminal|md|json.
Why it is an open schema
Every report stamps the model and promptVersion used, so a score can be reproduced or contested rather than taken on trust. The JSON conforms to a published schema at https://norma.sh/schema/report/v1.json, which is how the number becomes a shared standard rather than one vendor's metric.
Shape
{
"schemaVersion": "norma.report/v1",
"generatedAt": "<ISO timestamp>",
"model": "<model id>",
"promptVersion": "<judge prompt version>",
"remediationPromptVersion": "<set when fixes are generated>",
"target": { "root": "<path>", "changedFiles": ["..."] },
"summary": {
"score": 78,
"total": 4,
"counts": { "met": 2, "partial": 1, "missing": 0, "contradicted": 1 },
"hasContradictions": true
},
"requirements": [ { "id": "R001", "text": "...", "priority": "must" } ],
"findings": [ { "id": "R001", "verdict": "met", "rationale": "...", "locations": [], "remediation": null } ]
}requirements is the extracted spec, and findings is one verdict per requirement with its rationale, file locations, and, when norma fix ran, a remediation block. See Remediation.