This is the full logic you need to do what you want cleanly. However, it will show Cat Form rather than Skull Bash on the icon/tooltip; to fix that, copy the entire second cast line and paste it after showtooltp (this will put the macro well over 255 chars).
#showtooltip
/cast [mod:shift,noform:1/2,@focus,harm] Cat Form; [@mouseover,help,nodead]; [noform:1/2,harm] Cat Form
/cast [mod:shift,@focus,harm] Skull Bash; [@mouseover,help,nodead] Lifebloom; [harm] Skull Bash; Lifebloom
- If you’re holding shift, have an enemy focus, and not in cat or bear form: enter cat form
- If you’re holding shift and have an enemy focus: skull bash your focus
- If you’re mousing over an ally: do not shift into Cat Form and cast Lifebloom on that ally
- If you’re not in cat or bear form and are targeting an enemy: shift into cat form
- If you’re targeting an enemy: skull bash then
- Otherwise: cast Lifebloom on your target or auto self cast it according to your settings.