This directory keeps the reusable evaluation pipeline and the supplementary evaluation examples.
From the repository root, sync the uv workspace first:
uv sync --all-packagesThis installs both the evaluation environment and the workspace-linked
circle dependency into the shared repo-root .venv.
uv run python evaluation/cli.py case ...- single-case orchestrator over prepare / gt / circle / baseline / eval
uv run python evaluation/cli.py single-eval ...- evaluation-only on an already prepared case root
uv run python evaluation/cli.py batch-circle ...- dataset-scale CiRCLE runner
uv run python evaluation/cli.py batch-baseline ...- dataset-scale baseline runner
uv run python evaluation/cli.py batch-eval ...- dataset-scale evaluation/report runner
src/: single-case discovery, loading, evaluation, and report generationscript/: batch entrypoints and wrapper scriptspaper-cases/: supplementary evaluation casesdataset/: dataset layout, minicase index, and smoke/report pointersdocs/: detailed evaluation notes and public limitations
The repository-wide public example lives at ../example/.
Fast smoke test:
bash example/run.sh reportDirect invocation:
uv run python evaluation/cli.py case --case-root example --steps evalSmall explicit-case dataset demo:
uv run python evaluation/cli.py batch-eval \
--case-root example \
--case-root evaluation/paper-cases/Motivating-Example \
--case-root evaluation/paper-cases/More-Cases/nested_structure \
--dataset-family osprey \
--report-group osprey_mini \
--report-root example/dataset_eval/osprey_mini \
--tools hyres,resym,retypd,trex,typeforge,circle \
--circle-variants no_llm_fullFor canonical Osprey runs, batch-circle and batch-baseline create
evaluation/result/osprey/process/<binary>/ on demand, and batch-eval
consumes that shared result tree.
The shipped public relation tables currently cover these field-level relation shapes:
PointerToStructNestedStructArrayInStruct
Root-level array shapes stay outside the public relation tables. See
docs/limitations.md for the current boundary.