Why not assertNull(authorName)?

But you cannot make this change, it breaks everyone else. Code assumes they can do localConfig.get(UserConfig.KEY).getAuthorName() to fill out a PersonIdent. Returning null here because it wasn't set explicitly is going to break that assumption.

Instead we should continue to guess implicitly, but mark a boolean on UserConfig that says we guessed the author name, so we have:

 boolean isAuthorNameImplicit()
 boolean isAuthorEmailImplicit()

etc. to let the application know the current value came from the OS and our assumption rules, rather than being set explicitly.