The default Tessl review rubric. An agentic reviewer that reads a SKILL.md and scores it against rubrics for its description and its content, the same reviewer tessl review uses out of the box. Use it as the reference reviewer to score skills, or as the base to fork a custom rubric from.
75
94%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Risky
Do not use without reviewing
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "rubric.schema.json",
"title": "SkillReviewRubric",
"description": "JSON Schema for skill review rubric files (rubrics/description.json and rubrics/content.json).",
"type": "object",
"required": ["evaluation_target", "scale", "reference_examples", "dimensions"],
"additionalProperties": false,
"properties": {
"evaluation_target": {
"type": "string",
"description": "Which part of the skill (or artifact) this rubric evaluates. Built-in values are 'description' and 'content'; custom rubrics may use any string."
},
"scope": {
"type": "string",
"description": "Human-readable description of what is being evaluated (content rubric only)."
},
"scale": {
"type": "object",
"required": ["min", "max"],
"additionalProperties": false,
"properties": {
"min": {
"type": "number",
"description": "Minimum valid score (inclusive)."
},
"max": {
"type": "number",
"description": "Maximum valid score (inclusive)."
}
}
},
"reference_examples": {
"type": "object",
"required": ["judging_guidelines", "good_overall_examples", "bad_overall_examples"],
"additionalProperties": false,
"properties": {
"judging_guidelines": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"description": "Ordered list of guidelines for the judge to follow."
},
"good_overall_examples": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"description": "Examples of high-quality skills for this evaluation target."
},
"bad_overall_examples": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"description": "Examples of low-quality skills for this evaluation target."
}
}
},
"dimensions": {
"type": "array",
"minItems": 1,
"description": "Ordered list of evaluation dimensions. Weights must sum to 1.0.",
"items": {
"type": "object",
"required": ["id", "name", "weight", "question", "scores"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$",
"description": "Unique snake_case identifier for this dimension. Used as key in judge output scores."
},
"name": {
"type": "string",
"description": "Human-readable name for this dimension."
},
"weight": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1,
"description": "Fractional weight of this dimension in the overall score. All weights must sum to 1.0."
},
"question": {
"type": "string",
"description": "The core question the judge should answer for this dimension."
},
"rationale": {
"type": "string",
"description": "Why this dimension matters (optional, content rubric dimensions)."
},
"scores": {
"type": "array",
"minItems": 2,
"description": "Anchor definitions for each score level.",
"items": {
"type": "object",
"required": ["score", "anchor", "example"],
"additionalProperties": false,
"properties": {
"score": {
"type": "number",
"description": "The numeric score value."
},
"anchor": {
"type": "string",
"description": "Brief description of what earns this score."
},
"example": {
"type": "string",
"description": "Concrete example of content at this score level."
}
}
}
}
}
}
},
"scoring_notes": {
"type": "object",
"required": ["simple_skills", "code_vs_instruction_skills", "feedback_loops"],
"additionalProperties": false,
"description": "Additional scoring guidance (content rubric only).",
"properties": {
"simple_skills": {
"type": "string"
},
"code_vs_instruction_skills": {
"type": "string"
},
"feedback_loops": {
"type": "string"
}
}
}
},
"if": {
"properties": { "evaluation_target": { "const": "content" } }
},
"then": {
"required": ["scope", "scoring_notes"]
}
}