{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://slow-powers.dev/schemas/grading.schema.json",
"title": "Grading Result",
"description": "Output of grading one (eval, condition) pair. Lives at <workspace>/iteration-N/eval-<id>/<condition>/grading.json.",
"type": "object",
"required": ["assertion_results", "summary"],
"additionalProperties": false,
"properties": {
"assertion_results": {
"type": "array",
"items": {
"type": "object",
"required": ["id", "passed", "evidence"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Matches the assertion id in evals.json."
},
"passed": { "type": "boolean" },
"evidence": {
"type": "string",
"description": "Direct quote or specific reference from the run record. Vague summaries are not evidence."
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Judge confidence. Low confidence (< 0.7) flags this result for human review. Always 1.0 for transcript_check results."
},
"grader": {
"type": "string",
"enum": ["transcript_check", "llm_judge"],
"description": "Which grader produced this result."
}
}
}
},
"summary": {
"type": "object",
"required": ["passed", "failed", "total", "pass_rate"],
"additionalProperties": false,
"properties": {
"passed": { "type": "integer", "minimum": 0 },
"failed": { "type": "integer", "minimum": 0 },
"total": { "type": "integer", "minimum": 0 },
"pass_rate": { "type": "number", "minimum": 0, "maximum": 1 }
}
},
"meta_results": {
"type": "array",
"description": "Framework-injected meta-assertions (e.g. skill-invocation check). Reserved id prefix: __ (double underscore). Tracked separately from substantive assertion_results so they do not pollute the skill effectiveness pass_rate.",
"items": {
"type": "object",
"required": ["id", "passed", "evidence"],
"additionalProperties": false,
"properties": {
"id": { "type": "string" },
"passed": { "type": "boolean" },
"evidence": { "type": "string" },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 },
"grader": {
"type": "string",
"enum": ["transcript_check", "llm_judge"]
}
}
}
},
"meta_summary": {
"type": "object",
"additionalProperties": false,
"properties": {
"passed": { "type": "integer", "minimum": 0 },
"failed": { "type": "integer", "minimum": 0 },
"total": { "type": "integer", "minimum": 0 },
"skill_invoked": {
"description": "True when the skill-invocation meta-check passed; false when the judge found no evidence the skill influenced behavior; null when no skill was loaded for this run.",
"type": ["boolean", "null"]
}
}
}
}
}