Skip to content

Move result types and judge selection onto category definitions - #935

Draft
Sun Haoran (haoranpb) wants to merge 1 commit into
app/stack-03-category-pipelinesfrom
app/stack-04-category-results
Draft

Sun Haoran (haoranpb) wants to merge 1 commit into
app/stack-03-category-pipelinesfrom
app/stack-04-category-results

Conversation

@haoranpb

Copy link
Copy Markdown
Collaborator

Goal 2, step 4. Stacked on #934.

  • CategoryDefinition gains pipeline_type, summary_type, aggregate_type and judge. Each pipeline declares its result_type.
  • bcbench.categories.results (load_result, summarize_results, aggregate_runs, load_summary, load_aggregate, load_leaderboard) replaces the base-class from_json/dispatch methods, so bcbench.results no longer looks up categories.
  • EvaluationContext.judge_model is set by the CLI from JudgeConfig. The repair for timeouts recorded without a judge model (Handle judge-scored evaluation timeouts #822) moved into load_result.
  • EvaluationCategory is now just the list of category names.

@github-code-quality

github-code-quality Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: Python

Python / code-coverage/pytest

The overall line coverage in commit 39b631a in the app/stack-04-categor... branch is 87%. The line coverage in commit 92af447 in the app/stack-03-categor... branch is 86%.

Show a line coverage summary of the most impacted files.
File app/stack-03-categor... 92af447 app/stack-04-categor... 39b631a +/-
src/bcbench/cat...ery/pipeline.py 0% 69% +69%
src/bcbench/cat...view_parsing.py 0% 70% +70%
src/bcbench/cat...2al/pipeline.py 0% 81% +81%
src/bcbench/cat...y/operations.py 0% 89% +89%
src/bcbench/cat...iew/pipeline.py 0% 90% +90%
src/bcbench/cat..._calibration.py 0% 90% +90%
src/bcbench/cat...s/definition.py 0% 96% +96%
src/bcbench/cat...review/judge.py 0% 97% +97%
packages/bcbenc...ilot/metrics.py 0% 100% +100%
packages/bcbenc...opilot/agent.py 0% 100% +100%

Updated October 08, 2026 13:15 UTC

def make_pipeline(self) -> EvaluationPipeline[E]:
return self.pipeline_type()

def judge_model(self, judges: JudgeConfig) -> str | None:
Definitions now declare their summary and aggregate types and their judge;
pipelines declare the result type they produce. Category-aware loading and
aggregation lives in bcbench.categories.results, so bcbench.results no longer
looks up categories, and EvaluationContext carries the judge model explicitly.
EvaluationCategory is now only the list of category names.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@haoranpb
Sun Haoran (haoranpb) force-pushed the app/stack-04-category-results branch from fb6f5b6 to 39b631a Compare October 8, 2026 13:13

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant