I did try that on a previous tool Butler (https://github.com/michaeldfallen/butler) but I found that some shells don't actually set `$SHELL`.
You can also check the shell by checking the PID:
ps -p $$
But then you need to do extra output parsing plus, obviously, ps each time you output $PS1. Which is going to be a little overkill for this project since it's only Zsh and Bash you're wanting to capture and you can always have fallback support for those flags when automatic detection fails.