I like nested sub-commands. If you use Python, I think click is a good tool.
Things like '--list' vs '--list-software-updates' depends on what the tool does. You might have '--list-formats', '--list-authors', and more, in which case a single '--list' might not be meaningful (unless it's clearly obvious what it will list).
It also depends on a lot on how the subcommands work together. You might have --define to be clear, but have it be used so often that your users will want '-d' because 1) it saves time, and 2) they use it so often they don't have a problem remembering what it means.
I can't think of any guides off-hand.
It's a category of UI design, so many UI/UX techniques could be applied to the task. That thought lead me to search for "command-line" and "UX" together, finding things like:
"3 Commandments for CLI Design" - https://medium.com/relay-sh/command-line-ux-in-2020-e537018e...
"Command Line User Experience" - https://techblog.cisco.com/blog/cli-ux
"Designing Great Command-Line User Experiences" - https://www.juliandunn.net/2016/08/09/designing-great-comman...
I think those have enough to get you started, and to help you find related resources.