For something like this to work, the engine would have to trigger a SkillUseRequested event (or something like that) and let the Osiris rules check whether the skill can actually be triggered or not.
Similar logic already exists for dialogs, thats why you need this rule to process the dialog start event:
Code
IF
DialogStartRequested(_Char, _Player)
THEN
StartDefaultDialog(_Char, _Player);