Skip to content

evals: implement an offline human-review benchmark report #336

Description

@WalksWithASwagger

Summary

Implement an offline human-review benchmark report against the ratified model-eval contract.

Context

  • Blocked by decision(evals): ratify a privacy-safe model-output benchmark contract #335.
  • Roadmap phase: Phase 2 - model quality
  • Relevant files: a small report module such as lib/eval_report.py, a CLI command under lib/commands/, generate.py, focused fixtures/tests, and docs/MODEL-EVALS.md
  • Current behavior: run and review metadata cannot be aggregated into a stable benchmark comparison.
  • Desired behavior: a read-only offline command joins approved benchmark manifests, run metadata, and human evaluations into deterministic JSON and Markdown summaries.

Implementation Notes

  • Read only local approved fixture/manifest paths.
  • Aggregate by model, style, prompt, decision, and rubric score.
  • Report missing outputs and unreviewed items explicitly rather than dropping them.
  • Keep generated media and private benchmark data gitignored.

Acceptance Criteria

  • A read-only command joins the approved benchmark manifest, run.json, and evaluations.json.
  • It emits deterministic JSON and Markdown summaries.
  • Summaries include model, style, prompt, decision, rubric dimensions, missing outputs, and unreviewed items.
  • Fixture tests cover aggregation, malformed input, missing reviews, and stable ordering/output.
  • No provider or network call occurs.
  • No generated image or private benchmark artifact is committed.

Tests/Evals

  • Use only the synthetic records approved by the benchmark-contract issue.
  • Snapshot only compact deterministic report text, not images or whole portal pages.

Verification

  • Run the focused eval-report test module.
  • python3 -m ruff check lib tests
  • npm test
  • Run a dry fixture report twice and confirm byte-identical JSON and Markdown.

Agent Instructions

  • Use branch codex/issue-<this-issue>-offline-eval-report.
  • Do not start until the eval contract is approved and merged.
  • Do not call providers, rank models automatically, or alter defaults.
  • Keep input/output paths explicit and local.

Human Checkpoints

  • Stop if the ratified schema cannot represent a required review dimension without a policy change.

Out of Scope

  • Generating benchmark outputs.
  • Automated vision judging or model ranking.
  • Portal UI for evaluations.
  • Changing provider/model defaults.

Linear

Not applicable. Rafiki delivery is GitHub-only; do not create or update a Linear issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedWork cannot proceed until a blocker is resolved.enhancementNew feature or requestphase-2Phase 2 — Content PipelinetestsTest coverage, smoke checks, and acceptance automationtype:taskImplementation task

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions