Via supervisor, auditor includes credentials.REPORT_BASE_PATH as an attachment in the email. However, this file won't be updated if there is an error that causes the checks/fixes to bomb out before they're finished. Thus, an error email will have an out-of-date report that causes confusion when troubleshooting.
One solution is to atomize the report writing so that auditor writes to the report for every item instead of after everything is finished (see TODO before def log_report()).