For mapping UI preferences to corresponding plist keys, https://github.com/catilac/plistwatch will monitor and output real-time changes. May be easier than diffing snapshots of `defaults read`.
This doesn't help with "secret" settings that aren't exposed through the UI, but can be handy for creating setup scripts.
This doesn't help with "secret" settings that aren't exposed through the UI, but can be handy for creating setup scripts.