It seems most of the work is done. Of course, as always in software development, when you think 90% is done, most of the time its 10% and the other 90% is ahead of you instead.
I’ve achieved a very basic but complete experience. The analyzer now discovers an already generated partial and compares it to what would get generated now. If the only difference is in tool version number within GeneratedCode attribute it reports it only as an info-level diagnostic. Otherwise an error is raised.
I’ve decided to make it an error because if one decides to use a tool, it should be expected that generated code modifications may lead to errors. Now that I’m writing this, I think a comment that explains implications of modifying the generated file would be helpful.
Tomorrow I hope to implement modifying Generator behavior according to RecordAttribute properties, e.g. not generating mutators.