pub fn render_active(
rules: &[&Rule],
tallies: &BTreeMap<String, RuleTally>,
) -> StringExpand description
One line per active rule, carrying what the validation ledger measured about it — the learner’s evidence for what to drop.
attributed is the number retirement argues from: a bisection pinned that
regression on this rule specifically. Block-level improved/regressed
only say what the whole rule set did while this rule rode along, which is
context rather than credit.
Unmeasured is rendered as unmeasured, never as zero. A rule no probe
has covered has no evidence either way, and printing 0 regressed would
read as a clean bill of health while printing nothing would read as
harmless. Both are the “a dash is never zero” failure, and collapsing them
would bias the learner against the newest rules — the ones with least
chance to have been probed.