In your custom reporter, in order to create the output file you just return the following code:
process.stdout.write(reportHtmlJS);
Let's imagine reporterHTMLJS is your custom HTML output. What you can do before that is just use that HTML and create a second file, before the JSHint or JSCS module creates it. Something similar to that:
fs = require('fs');
fs.writeFile("./jshint/secondJSHintReport.html", reportHtmlJS, function (err) {
if (err) {
console.log(err);
}
});
You can also use some Grunt module, like grunt-contrib-copy and grunt-contrib-rename, and create new grunt task that will execute first jshint/jscs and then copy the file and rename it.
grunt.task.run("jshint copy:jshint rename:jshint");
grunt.task.run("jscs copy:jscs rename:jscs");