Problem
As UEQ grows, adding new UQ methods directly to core risks:
- Tight coupling
- Slower review cycles
- High maintenance burden
A lack of clear extension points also discourages external contributions.
Proposal
Design and implement a plugin architecture that allows UQ methods to be added as first-class extensions without modifying core logic.
Scope
- Abstract base classes for:
- UQ methods
- Calibration strategies
- Evaluation hooks
- Well-defined lifecycle:
- fit → calibrate → predict → evaluate
- Plugin discovery mechanism (entry points or registry)
- Backward compatibility with existing UEQ methods
API Sketch
class BaseUQMethod:
def fit(self, model, X, y): ...
def calibrate(self, X_cal, y_cal): ...
def predict(self, X): ...
UQ(model, method="my_custom_uq")
Acceptance Criteria
Problem
As UEQ grows, adding new UQ methods directly to core risks:
A lack of clear extension points also discourages external contributions.
Proposal
Design and implement a plugin architecture that allows UQ methods to be added as first-class extensions without modifying core logic.
Scope
API Sketch
Acceptance Criteria