2. field_llm_judge / create_doc
{
"type": "field_llm_judge",
"tool": "create_doc",
"action_id": "create_2028_lifecycle_qa_spec",
"path": "args",
"criterion": "The title clearly identifies the document as a 2028 lifecycle entitlement-name regression or QA specification.\n\nThe body provides QA coverage for each of these three templates: renewal reminder, trial-expiry education, and integration summary. For every template, it specifies that a populated entitlement name renders from the governed or authoritative field `entitlement.display_name`, a missing value renders the exact fallback `your plan`, and the template must never reference the legacy field `workspace.plan_name`. It also makes clear that entitlement-name changes must flow through the governed entitlement field. Missing or contradictory mappings fail this check.",
"check_id": "riley_159_01"
}Complete grading specification
{
"type": "tool_trace",
"config": {
"check_version": 2,
"today": "2028-01-01",
"semantic_judge_version": 2,
"assertions": [
{
"type": "field_equals",
"tool": "create_doc",
"action_id": "create_2028_lifecycle_qa_spec",
"path": "result.ok",
"value": true,
"check_id": "riley_159_00"
},
{
"type": "field_llm_judge",
"tool": "create_doc",
"action_id": "create_2028_lifecycle_qa_spec",
"path": "args",
"criterion": "The title clearly identifies the document as a 2028 lifecycle entitlement-name regression or QA specification.\n\nThe body provides QA coverage for each of these three templates: renewal reminder, trial-expiry education, and integration summary. For every template, it specifies that a populated entitlement name renders from the governed or authoritative field `entitlement.display_name`, a missing value renders the exact fallback `your plan`, and the template must never reference the legacy field `workspace.plan_name`. It also makes clear that entitlement-name changes must flow through the governed entitlement field. Missing or contradictory mappings fail this check.",
"check_id": "riley_159_01"
}
]
}
}