I made a new flowchart just for comparing attack actions with reactions, and to make it more useful, I plotted in where I think the different special abilities that relate to attacks fit in.

I hope it is readable.
TA = Taunt
CA = Counterattack
AEG = Aegis
RET = Retaliate
RB = Rebuff
ENV = Envenom
So TA and CA both only trigger if a specific model is targeted by an attack, and if that attack was declared.
AEG triggers if a specific model is targeted by an attack, but doesn't care if it was declared or not.
RET triggers if 0 successes are rolled during an attack combat roll specifically. So an opportunity attack cannot trigger Retaliate in this interpretation.
ENV triggers off successful attack damage, which can come from any of these sources.
RB, interestingly, is written so that it can be triggered off two things: Both scoring no successes during an attack roll, and also failing to get past ARM during the damage application.
Which creates kind of a weird interaction. If an opportunity attack only counts as an attack if it is successful, then it means that Rebuff behaves oddly with it. It means that if the opp attack fails to score any net successes, Rebuff doesn't go off, because at this stage, it is still an opp attack, not yet an attack. But if you do score successes, and the damage is absorbed by ARM, then the opp attack does trigger Rebuff, because we have now transitioned into the universal damage application step.
Weird. The only way to get around this is to say that "determination of whether the combat roll was a success or not" actually belongs to the damage application phase. But then counterattacks would trigger Rebuff too. Which would also be weird.
Walrus. thoughts on Rebuff vs. reactions?