What you describe is pretty close to my concept. I will try and formally map out the logic. In kinda the readers digest version of my developmental process was
First, I have a bar that pops up if I have a "HARM"able targeted. In the exact same bar position, I have a "HELP"able bar. When neither of those conditions are met, the space is empty.
I have another bar spot that is triggered on Combat. On this bar I place spells I would like to cast in combat that do not require a target, but I would rather not use the action by mistake when I am out of combat. If I am not in combat, I would rather not blow my Soulshatter threat-dump or use a healthstone out of combat. Conversely, it is impossible to cast mount or hearth in combat, so they can be linked to NO COMBAT.
I am torn to have the HARM bar remain invisible until combat actually starts. At least once, I have accidentlty dotted a boss during the pre-buff causing a wipe.
. But, then there are times when I would like to start casting before I am actually in combat to get ahead on the cycle time. My current work around idea is to have another bar with the most common initiators in the a non-combat bar.
I have spells and items invisible when they are on cool down.
I have Corruption disappear if my corruption is on the target.
If I have fel armor Buff the fel armor spell is invisible
When my weapon is enchanted, I have the weapon enchant icon covering the apply buff macro.
Figuring out all the logic conditions for all the spells for all the character types may be daunting. At a first crack, the player should probably load the spells on bars as well as the buff logic.
What I show in my screen shots is done with Bartender to control alpha and help / harm logic supplemented with TellMeWhen to control the binary aspects of the buffs.
Rhamses