There are some variables to control the function.
*enablePublicUserCheckLog: to enable or disable the interface of public CheckUserLog.
*hideReasonForInit: because the reason of some old log will have the privacy data, it must be hidden. the default value is true to hidden the reason.
*defaultChoicenToHiddenReasonWhenQuerying: the interface 'Special:CheckUser' will add a new option to choose whether hide the reason or not. It will public the reason if the option is be checked. This variable is used to control whether the option is checked by default. The default value is true to indicate that the option is checked by default.
the database schema of log [https://www.mediawiki.org/wiki/Extension:CheckUser/cu_log_table] will add a new column to mark whether the reason is public or not.
That is all. I hope to consider this suggestion.