Actions define tasks in the developer workflow. They act on either a topic or a subtopic. Design actions to be as consistent as possible, even across topics.
For example, sf apex generate class and sf lightning generate app follow the same pattern, even though they generate different things. Another example is sf project deploy start and sf slack-app deploy start. In these examples, the topic and flags can change, but the command structure is the same.