Resultify generate reports

This is part of AT-646.
I don't see how committing the software result is tied to overwriting the value of `output_directory`.  If the caller has to check `output_directory` to see if it's changed from what was input then why allow `output_directory` to be specified as an input at all instead of always just setting it?