Future work — out-of-scope of the current Python MVP¶
This file consolidates items that are intentionally deferred because they depend on something outside
nirs4all-io’s perimeter (a host extension, an external library decision, or a Phase 2 deliverable that has its own gate). Nothing here is a blocker for the lib’s current users; it is a forward log so nothing slips through the cracks when the relevant external pieces move.
dag-ml-data bridge follow-ups¶
Status: Rust Phase 2 complete. The bridge lives in crates/nirs4all-io-dagml
(to_dag_ml_data(&AssembledDataset) + emit-dagml) and is validated by the
Phase-2 gate in PHASE2_GATE.md. The Python MVP exposes
SpectroDataset, AssembledDataset, and DatasetPackage; it intentionally does
not expose a dag-ml-data load target.
Former blockers — both resolved by the dag-ml-data owners (2026-05-28):
✅
AxisKind::Wavenumberadded indag-ml-data-core/src/model.rs(commit5063fb0).✅ Connector-ownership ADR (
ADR-0001, Accepted) —nirs4all-ioowns theSpectroDataset → CoordinatorDataPlanEnvelopebridge;dag-ml-dataROADMAP Phase 4 descoped.
Remaining non-MVP items are outside this Python package surface: ergonomic Python
builders for dag-ml-data, production array-host arenas in dag-ml-data, and
any future decision to expose the emit through language bindings.
SpectroDataset extension on the nirs4all side (host-owned)¶
Three IR fields are carried but not materialized today because the target
SpectroDataset has no first-class slot for them. Extending the host’s
SpectroDataset is out of scope for nirs4all-io – the lib does not
modify nirs4all (see REPLUG.md).
IR field |
Today |
Could be (host change) |
|---|---|---|
|
parsed; stored as the row’s natural index |
|
|
parsed; can be smuggled in via |
|
|
surfaced as |
|
For all three, the workaround today is to declare a regular metadata column and read it explicitly in the pipeline.
Inference calibration¶
infer() returns scores in plan.scores, currently ordinal (triage /
ranking). Brier/ECE calibration (story 3.6) requires a labelled
vendor/domain-split corpus that we do not have yet. The current uncalibrated
behaviour is explicit (Critique C5) and documented; nothing to do until a
corpus exists.
Deferred polish¶
Stratified percentage split at load time — intentionally rejected (
nirs4all-iois a loader, not a splitter; seeDATASET_CONFIGURATIONS.md §7). Stratification belongs in the pipeline’s CV layer.More vendor formats beyond what
nirs4all-formatsships – driven by that library’s roadmap, not this one.