pub fn detect(input: &DiffRiskInput<'_>) -> DiffRiskReportExpand description
Run every diff-risk rule over the changed files.
Best-effort: a file that cannot be read is skipped, and a base-reader error stops the scan of the remaining files, so a broken pipe never reads as an empty base file.