Documentation
¶
Overview ¶
Package rubrics provides evaluation rubrics for spec types.
Index ¶
- func Available() []types.SpecType
- func HasRubric(specType types.SpecType) bool
- func NewFileLoader(dir string) *fileLoader
- func Register(rs *RubricSet)
- func WriteRubricYAML(path string, rs *RubricSet) error
- type CategoricalCriteria
- type Category
- type CategoryYAML
- type CriteriaYAML
- type Loader
- type PassCriteria
- type PassCriteriaYAML
- type RubricSet
- func Get(specType types.SpecType) (*RubricSet, error)
- func LoadWithLoader(loader Loader, specType types.SpecType) (*RubricSet, error)
- func MustGet(specType types.SpecType) *RubricSet
- func NewFAQRubricSet() *RubricSet
- func NewIRDRubricSet() *RubricSet
- func NewMRDRubricSet() *RubricSet
- func NewNarrative1PRubricSet() *RubricSet
- func NewNarrative6PRubricSet() *RubricSet
- func NewPRDRubricSet() *RubricSet
- func NewPressRubricSet() *RubricSet
- func NewTRDRubricSet() *RubricSet
- func NewUXDRubricSet() *RubricSet
- type RubricYAML
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewFileLoader ¶
func NewFileLoader(dir string) *fileLoader
NewFileLoader creates a loader that reads rubrics from YAML files. Rubrics are named: {spec-type}.rubric.yaml (e.g., prd.rubric.yaml)
func WriteRubricYAML ¶
WriteRubricYAML writes a RubricSet to a YAML file.
Types ¶
type CategoricalCriteria ¶
CategoricalCriteria defines pass/partial/fail criteria for a category.
type Category ¶
type Category struct {
ID string
Name string
Description string
Weight float64
Required bool
Criteria CategoricalCriteria
}
Category represents a scoring category with categorical criteria.
type CategoryYAML ¶
type CategoryYAML struct {
ID string `yaml:"id"`
Name string `yaml:"name"`
Description string `yaml:"description"`
Weight float64 `yaml:"weight"`
Required bool `yaml:"required"`
Criteria CriteriaYAML `yaml:"criteria"`
}
CategoryYAML represents a category in YAML format.
type CriteriaYAML ¶
type CriteriaYAML struct {
Pass string `yaml:"pass"`
Partial string `yaml:"partial"`
Fail string `yaml:"fail"`
}
CriteriaYAML represents pass/partial/fail criteria in YAML format.
type Loader ¶
type Loader interface {
// Load returns the rubric for a spec type.
Load(specType types.SpecType) (*RubricSet, error)
// Available returns all available spec types with rubrics.
Available() []types.SpecType
}
Loader loads rubrics from various sources.
func DefaultLoader ¶
func DefaultLoader() Loader
DefaultLoader returns the default rubric loader (embedded rubrics).
func EmbeddedLoader ¶
func EmbeddedLoader() Loader
EmbeddedLoader returns a loader that uses embedded Go-defined rubrics.
func NewChainLoader ¶
NewChainLoader creates a loader that tries multiple loaders in order. The first loader that can load a rubric wins.
func NewEmbedFSLoader ¶
NewEmbedFSLoader creates a loader that reads rubrics from an embedded filesystem. This is useful for organizations that want to compile custom rubrics into their CLI.
Usage:
//go:embed rubrics/*.rubric.yaml var orgRubrics embed.FS loader := rubrics.NewEmbedFSLoader(orgRubrics, "rubrics")
func NewSubFSLoader ¶
NewSubFSLoader creates a loader from an fs.FS interface. This is useful when working with fs.Sub() results.
type PassCriteria ¶
type PassCriteria struct {
RequireAllPass bool // All categories must pass
MaxCritical int
MaxHigh int
MaxMedium int // -1 = unlimited
}
PassCriteria defines what constitutes a passing evaluation.
func DefaultPassCriteria ¶
func DefaultPassCriteria() PassCriteria
DefaultPassCriteria returns the default pass criteria.
func StrictPassCriteria ¶
func StrictPassCriteria() PassCriteria
StrictPassCriteria returns stricter pass criteria.
type PassCriteriaYAML ¶
type PassCriteriaYAML struct {
RequireAllPass bool `yaml:"require_all_pass"`
MaxCritical int `yaml:"max_critical"`
MaxHigh int `yaml:"max_high"`
MaxMedium int `yaml:"max_medium"`
}
PassCriteriaYAML represents pass criteria in YAML format.
type RubricSet ¶
type RubricSet struct {
SpecType types.SpecType
Name string
Description string
Categories []*Category
PassCriteria
}
RubricSet contains all criteria for evaluating a spec type.
func LoadWithLoader ¶
LoadWithLoader loads a rubric using a specific loader.
func NewFAQRubricSet ¶
func NewFAQRubricSet() *RubricSet
NewFAQRubricSet creates the rubric set for FAQ documents.
func NewIRDRubricSet ¶
func NewIRDRubricSet() *RubricSet
NewIRDRubricSet creates the rubric set for Infrastructure Requirements Documents.
func NewMRDRubricSet ¶
func NewMRDRubricSet() *RubricSet
NewMRDRubricSet creates the rubric set for Market Requirements Documents.
func NewNarrative1PRubricSet ¶
func NewNarrative1PRubricSet() *RubricSet
NewNarrative1PRubricSet creates the rubric set for 1-Pager Executive Narratives.
func NewNarrative6PRubricSet ¶
func NewNarrative6PRubricSet() *RubricSet
NewNarrative6PRubricSet creates the rubric set for AWS-Style 6-Pager Narratives.
func NewPRDRubricSet ¶
func NewPRDRubricSet() *RubricSet
NewPRDRubricSet creates the rubric set for Product Requirements Documents.
func NewPressRubricSet ¶
func NewPressRubricSet() *RubricSet
NewPressRubricSet creates the rubric set for Press Release documents.
func NewTRDRubricSet ¶
func NewTRDRubricSet() *RubricSet
NewTRDRubricSet creates the rubric set for Technical Requirements Documents.
func NewUXDRubricSet ¶
func NewUXDRubricSet() *RubricSet
NewUXDRubricSet creates the rubric set for User Experience Design documents.
func (*RubricSet) CategoryByID ¶
CategoryByID returns a category by its ID.
func (*RubricSet) ToEvaluationRubricSet ¶
ToEvaluationRubricSet converts to structured-evaluation RubricSet.
func (*RubricSet) ToYAML ¶
func (rs *RubricSet) ToYAML() *RubricYAML
ToYAML converts a RubricSet to RubricYAML.
func (*RubricSet) TotalWeight ¶
TotalWeight returns the sum of all category weights.
type RubricYAML ¶
type RubricYAML struct {
SpecType string `yaml:"spec_type"`
Name string `yaml:"name"`
Description string `yaml:"description"`
Version string `yaml:"version"`
Categories []CategoryYAML `yaml:"categories"`
PassCriteria PassCriteriaYAML `yaml:"pass_criteria"`
}
RubricYAML represents a rubric definition in YAML format.
func (*RubricYAML) ToRubricSet ¶
func (r *RubricYAML) ToRubricSet() (*RubricSet, error)
ToRubricSet converts a RubricYAML to a RubricSet.