Purpose
Consolidate the evaluation architecture that accumulated during Weeks 7–9 into a smaller set of generic, composable interfaces before the package-wide reorganization tracked in #3.
This issue exists because the current scientific experiments are valid, but their implementation contains several parallel evaluation paths that were useful during incremental roadmap development and should not become the permanent architecture.
Current architectural pressure
The codebase now contains multiple partially overlapping concepts, including:
- A/B-specific preparation and result structures;
- A/C/D/E instrument/acquisition evaluation paths;
- A–F robustness/generalization helpers;
- generic prediction tables and summary helpers;
- baseline, ML, and classical-fitting evaluation with different result shapes;
- Week 9 uncertainty outputs with their own semantics;
- upcoming experimental, Bayesian, and persistence workflows that must integrate without creating more parallel stacks.
Goal
Define a coherent evaluation layer that separates:
frozen scientific benchmark definitions
↓
generic preparation / prediction / evaluation machinery
↓
estimator-specific diagnostics where genuinely necessary
↓
standardized result/reporting objects
The result should make it possible to add estimators, representations, test regimes, and uncertainty outputs without repeatedly creating a new experiment-specific evaluation module.
Proposed work
Inventory
Prepared data
Estimator evaluation
Metrics and degradation
Result objects
Frozen benchmark configuration
Scope discipline
Do not combine this issue with the physical package move in #3.
First clarify and consolidate evaluation concepts and interfaces; then let #3 place those clarified responsibilities into subpackages.
Do not opportunistically change scientific benchmark definitions, random seeds, test regimes, or metric semantics merely to simplify code.
Acceptance criteria
Timing
Implement after #2 API stabilization decisions are sufficiently clear and before #3 package restructuring.
#2 API stabilization
↓
#11 evaluation consolidation
↓
#3 package restructuring
Purpose
Consolidate the evaluation architecture that accumulated during Weeks 7–9 into a smaller set of generic, composable interfaces before the package-wide reorganization tracked in #3.
This issue exists because the current scientific experiments are valid, but their implementation contains several parallel evaluation paths that were useful during incremental roadmap development and should not become the permanent architecture.
Current architectural pressure
The codebase now contains multiple partially overlapping concepts, including:
Goal
Define a coherent evaluation layer that separates:
The result should make it possible to add estimators, representations, test regimes, and uncertainty outputs without repeatedly creating a new experiment-specific evaluation module.
Proposed work
Inventory
Prepared data
Estimator evaluation
Metrics and degradation
Result objects
Frozen benchmark configuration
Scope discipline
Do not combine this issue with the physical package move in #3.
First clarify and consolidate evaluation concepts and interfaces; then let #3 place those clarified responsibilities into subpackages.
Do not opportunistically change scientific benchmark definitions, random seeds, test regimes, or metric semantics merely to simplify code.
Acceptance criteria
Timing
Implement after #2 API stabilization decisions are sufficiently clear and before #3 package restructuring.