I'm kind one foot in either camp. On one side I know for a fact, that repairs in validators are very much enjoyed by our artists. It help them get a few technical things of their mind which is exactly why we're doing this whole publishing business. To get people to spend more time creating and less time worrying about technicalities.
However I'm not a big fan of the fact, that using repair workflow, feels like it's a part of publishing process. The ideal solution conceptually for me would be 2 tools working on the same principle, same UI style so it's familiar to people, But one is for 'Sanitizing' and one for 'Publishing'. Artist should know that if his scene is not up to scratch, he won't be able to publish, so he has the option so sanitize the scene before even attempting to publish.
So how about looking at it this way. Picture 2 semi-separate apps. 1 - Pyblish as it is now and 2. - P-repair (name purely for demonstration purposes )
Both working on the same architecture, sharing most of the code with one big difference.
- Pyblish runs all your selectors, validators and stops upon failed validation without giving you option to alter the scene in any way (apart from maybe tiny fixes, like scene not saved),
- P-repair runs the same identical selectors and validators so you know you're gonna be repairing what matters for publishing, but doesn't have extractors and conformers. Instead if you pass all tests, you get a nice big green tick and pat on the back and if any validators fail, it shows a bunch of 'repair' options and stays in a 'paused' state, where you can choose which repair to run and when you're ready, press play again and the process finishes on the failed validators. These repairs could be another class of plugins, actions or whatever implementation.
The point is that artist would run P-repair whenever they want to do a check on the scene. Even while working on a scene to prevent too many mistakes from piling up over time. I image p-repair would load all publishing validators by default, but you could add extra validator that would only appear here, but not during publishing.
This could give a clear distinction to artists where the line is between repairing problems and publishing a clean scene, while also keeping the benefits of existing SVEC workflow. If it was built on the same base as pyblish (I really thing they're almost identical in this example) we could avoid and double code for the users as they could simply load the same selectors that will eventually be ran for publishing of the same scene.