This is actually how Mycroft handles it, more or less.
The wakeword ("hey Mycroft") is done on-device, but everything you say after that is sent to a speech-to-text API. That text is then routed to the appropriate skill to handle. So when you're writing the skill you only worry about the content of that text
https://mycroft-ai.gitbook.io/docs/mycroft-technologies/over...