At https://www.gnupg.org/documentation/manuals/gnupg/Programmatic-use-of-GnuPG.html#Programmatic-use-of-GnuPG, gpgme is recommended, but IMO it's worth including something like:
If you cannot use gpgme, please make sure to use --status-fd to clearly obtain information from GnuPG rather than parsing stdout which is subject to change and is otherwise intermingled with status output.
I've found that this is common knowledge with some using GnuPG but not everyone is aware of it.