Skip to content

v0.8.0

Release Date: 2026-06-20

Highlights

  • Box Format for Evaluation Reports: ASCII box renderer now supports rubric reports
  • Numeric Score Display: Renderers show 1-5 scale scores with color-coded icons

Overview

v0.8.0 extends the box format renderer to support evaluation (rubric) reports, providing a deterministic ASCII output suitable for TUI applications. The release also adds numeric score display in terminal and markdown renderers, showing scores like 4/5 alongside categorical pass/partial/fail values.

New Features

Box Format for Evaluation Reports

The box renderer now supports rubric reports with a clean ASCII layout:

import "github.com/plexusone/structured-evaluation/render/box"

renderer := box.NewEvaluationRenderer(os.Stdout)
err := renderer.Render(&rubricReport)

Output example:

╔══════════════════════════════════════════════════════════════════════════╗
║                           EVALUATION REPORT                               ║
╠══════════════════════════════════════════════════════════════════════════╣
║                            ✅  PASS  ✅                                   ║
╠══════════════════════════════════════════════════════════════════════════╣
║ CATEGORY                   ST SCORE  DETAIL                               ║
╟──────────────────────────────────────────────────────────────────────────╢
║ problem_definition         🟢 pass   Clear problem statement              ║
║ user_stories               🟢 4/5    Good coverage of use cases           ║
║ success_metrics            🟡 partial Missing baseline metrics            ║
╠══════════════════════════════════════════════════════════════════════════╣
║ Categories: 2 pass, 1 partial, 0 fail                                     ║
║ Findings:   0 critical, 0 high, 1 medium, 0 low                           ║
╚══════════════════════════════════════════════════════════════════════════╝

CLI usage:

# Box format for evaluation reports
sevaluation render eval.json --format=box

# Also accepts "ascii" alias
sevaluation render eval.json --format=ascii

Numeric Score Display

Renderers now display numeric scores (from Likert scales) with color-coded icons:

Score Display Icon
5 5/5 🟢
3-4 4/5 🟡
1-2 2/5 🔴

When a category has both numeric and categorical scores, the numeric score is displayed:

result := rubric.NewCategoryResultWithNumeric("quality", rubric.ScorePass, 4.5, "Good quality")
// Renders as: quality  🟡 4/5  Good quality

Use Cases

Deterministic TUI Output

Use box format when you need consistent, color-free output for terminal UIs or log files:

# Redirect to log file (no ANSI codes)
sevaluation render report.json --format=box > evaluation.log

# Display in simple terminal
sevaluation render report.json --format=box

Human Comparison Studies

Display Likert scores for reports that use numeric scales:

// Create Likert-scale evaluation
cat := rubric.NewCategory("quality", "Quality", "").WithLikert5(rubric.StandardLikert5Anchors())
result := rubric.NewCategoryResultFromLikert("quality", 4, config, "Good")

// Render shows "4/5 🟡" instead of just "PASS"
renderer := terminal.New(os.Stdout)
renderer.Render(report)

Migration Guide

Additive Changes

All changes in v0.8.0 are additive:

  • New box.NewEvaluationRenderer() function
  • CLI accepts box and ascii formats for evaluation reports
  • Numeric score display is automatic when NumericScore is set

No Breaking Changes

No breaking changes in this release.

Documentation

  • Updated CLI Commands with box format for evaluation reports
  • Updated Rendering with evaluation box examples
  • Updated README package descriptions

Full Changelog

See CHANGELOG.md for the complete list of changes.