pub fn write_csv(run: &AnalysisRun, path: &Path) -> Result<()>
Write a two-section CSV: language summary followed by per-file detail.
Returns an error if the file cannot be written.