Follow-up from the PR #45 five-agent review (silent-failure finding 2).
.recodeflow_to_spec_variable()'s continuous branch reads mean, sd, and (since #37) rate via .row_numeric() for every continuous variable, regardless of distribution. .row_numeric() hard-errors on non-blank, non-numeric cells — so a stray value in a column the variable doesn't use (e.g. rate = "fast" on a normal variable, or leftover survival-config values) crashes generation with a message that misattributes the failure to an irrelevant parameter.
This is a pre-existing pattern (mean/sd behaved this way before #37); adding rate widened the blast radius. Related: #33 item 5 (malformed mean reported as "missing" rather than unparseable on the legacy path).
Fix direction: gate the .row_numeric() reads by the resolved distribution (only parse the parameters that distribution consumes), consistent with how blank cells are already treated as not-applicable. Add tests: junk in an unused parameter column is ignored; junk in a used column still errors with an accurate message.
Sized S. No API change.
Follow-up from the PR #45 five-agent review (silent-failure finding 2).
.recodeflow_to_spec_variable()'s continuous branch readsmean,sd, and (since #37)ratevia.row_numeric()for every continuous variable, regardless ofdistribution..row_numeric()hard-errors on non-blank, non-numeric cells — so a stray value in a column the variable doesn't use (e.g.rate = "fast"on anormalvariable, or leftover survival-config values) crashes generation with a message that misattributes the failure to an irrelevant parameter.This is a pre-existing pattern (
mean/sdbehaved this way before #37); addingratewidened the blast radius. Related: #33 item 5 (malformedmeanreported as "missing" rather than unparseable on the legacy path).Fix direction: gate the
.row_numeric()reads by the resolveddistribution(only parse the parameters that distribution consumes), consistent with how blank cells are already treated as not-applicable. Add tests: junk in an unused parameter column is ignored; junk in a used column still errors with an accurate message.Sized S. No API change.