| key | type | primitive | tier |
|---|---|---|---|
no_new_facts | must_not | llm_judge@1 | 2 |
covers_key_points | scored | llm_judge@1 | 2 |
no_editorializing | must_not | llm_judge@1 | 1 |
**Judges:** whether a summary is faithful to its source — no invented facts/numbers/causality, the key points preserved, no editorial opinion added. Send the summary as `output` and the source as `context` (Contract 05 roles), so the judge is told which text is the authoritative source. **Use when:** you generate summaries whose readers won't check the source (exec digests, meeting notes, news briefs, legal/medical abstracts).
curl -s -X POST $API/v1/rubrics -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d @templates/summary-faithfulness/rubric.json
# typed roles: the summary is the output; the source travels as context
curl -s -X POST $API/v1/verify -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"rubric_id":"<id>","submission":{"output":"<the summary>","context":[{"label":"source","value":"<the source document>"}]},"options":{"wait_ms":45000}}'MCP: `verify_submit` with the summary as `output` and the source document as `context`. The legacy `submission.inline` shape still works unchanged.