For the full fit-state firehose, we can output the chi2 contribution files at each step of FitterBase::minimize() (the "inner" fit loop). This would be a boolean config option (named writeChi2ContributionFilesInner?) that defaults to False. The output files would follow the same naming convention as the initial/final ones, with the fit iteration appended.
We should probably write this output after FitterBase:247, when all calculations are finished but before the outliers are rejected. We might be able to incorporate the outlier information into the chi2 file (possibly a new "outlier" column that we can turn on with a bool flag or by passing a non-empty list argument?), but we can't do that once they've been removed from the star lists.
We need to add a loop count variable to minimize() and use that for the filenames. We also need to pass the new "outer" loop count into minimize() and include that in the filenames too. I'm envisioning something like "astrometry_loop-XX-YYYY_chi2-meas.csv" for the output name, where "XX" is the outer loop number and YYYY is the inner loop number. Thus, the files will always be sequential.