From /simplify codebase sweep (2026-06-10).
reproducibility.py:42-45: stochastic_methods walks exactly outputs.transparency and outputs.robustness, while every other RunOutputs consumer (tracker logging, report sections) iterates phase_results.values() generically -- pipeline/outputs.py:29-36 explicitly promises "a new module plugs in without touching pipeline/ or reporting/".
Cost: a future phase whose results carry semantics.stochastic (fairness #288, privacy #291, uncertainty #290, data-augmentation audits) silently escapes the reproducibility caveat, REPRODUCIBILITY.md, and the report banner.
Fix: iterate outputs.phase_results.items() and duck-read each result list's semantics.stochastic (the per-result AdapterResult envelope already guarantees .semantics), or add an optional stochastic_methods() hook to the PhaseResult protocol.
From /simplify codebase sweep (2026-06-10).
reproducibility.py:42-45:stochastic_methodswalks exactlyoutputs.transparencyandoutputs.robustness, while every otherRunOutputsconsumer (tracker logging, report sections) iteratesphase_results.values()generically --pipeline/outputs.py:29-36explicitly promises "a new module plugs in without touching pipeline/ or reporting/".Cost: a future phase whose results carry
semantics.stochastic(fairness #288, privacy #291, uncertainty #290, data-augmentation audits) silently escapes the reproducibility caveat,REPRODUCIBILITY.md, and the report banner.Fix: iterate
outputs.phase_results.items()and duck-read each result list'ssemantics.stochastic(the per-resultAdapterResultenvelope already guarantees.semantics), or add an optionalstochastic_methods()hook to thePhaseResultprotocol.