v0.10.0¶
Release Date: 2026-07-20
Highlights¶
- Rich Weighted Criteria: categories can decompose into independently weighted sub-criteria with pass/partial/fail bands and concrete indicators
- Score Thresholds: numeric pass/partial cutoffs (0-100) for weighted-score rubrics
- YAML Authoring: rubric definitions carry
yamltags and parse directly into aRubricSet - RubricSet Definition Schema:
rubricset.schema.jsonis generated and embedded for downstream tooling
Overview¶
v0.10.0 extends the rubric definition with a rich, weighted-criteria form so
one category can be decomposed into independently scored parts, and makes rubric
definitions first-class YAML documents against a single canonical schema. Every
addition is optional and backward-compatible: categories scored via the existing
Scale are unchanged.
This is the shared rubric spec consumed across the ecosystem (prism-roadmap, visionspec, pdlc), so downstream tools author and evaluate against one format.
New Features¶
Rich Weighted Criteria¶
A category can now carry Criteria — a list of weighted sub-criteria — instead
of (or alongside) a flat Scale. Each criterion has pass/partial/fail bands,
each with a description and concrete indicators:
cat := rubric.Category{
ID: "assumption_coverage",
Name: "Assumption Coverage",
Weight: 25,
Criteria: []rubric.Criterion{
{
ID: "desirability",
Name: "Desirability",
Weight: 25,
Pass: rubric.CriterionLevel{
Description: "Desirability assumptions are identified",
Indicators: []string{"customer demand cited", "willingness-to-pay evidence"},
},
},
},
}
cat.IsComposite() // true when a category has weighted Criteria
New types: Criterion (ID, Name, Weight, Pass/Partial/Fail) and
CriterionLevel (Description, Indicators). New helper: Category.IsComposite().
Score Thresholds¶
Weighted-score rubrics roll up to a 0-100 score; ScoreThresholds sets the
numeric cutoffs on the rubric definition's pass criteria:
type ScoreThresholds struct {
Pass int `json:"pass"` // score >= Pass passes
Partial int `json:"partial"` // score >= Partial is partial
}
YAML Authoring¶
Rubric definition types now carry yaml struct tags mirroring their json
tags, so a rubric authored as YAML parses directly into a RubricSet with the
correct field names:
RubricSet Definition Schema¶
The generated RubricSet definition schema is embedded for downstream tooling:
import "github.com/plexusone/structured-evaluation/schema"
data := schema.RubricSetSchemaJSON // rubricset.schema.json
rubricset.schema.json is the definition schema (how a rubric is authored);
rubric.schema.json remains the report schema (an evaluation result).
Backward Compatibility¶
All additions are optional. Categories scored via Scale, the existing report
PassCriteria, and all report types are unchanged. Rubrics written for v0.9.0
continue to work without modification.
Commits¶
47b4673feat(rubric): add rich weighted-criteria rubric forme1c58aefeat(rubric): add yaml tags to rubric definition types