Anthropic skill best-practice reviewer for orgs that prefer large, consolidated single-file skills. Forks the default rubric: progressive disclosure rewards a well-organised single file rather than penalising it, and conciseness no longer docks legitimate length.
70
88%
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"]
}
}