1. A method comprising: detecting, at a device, a first invocation of a first communication feature; detecting, at the device, a second invocation of a second communication feature; comparing the first communication feature and the second communication feature according to a predicate-based rule relating to a first pre-condition, a first post-condition, and a first triggering event associated with the first communication feature with a second pre-condition, a second post-condition, and a second triggering event associated with the second communication feature, wherein a pre-condition is a predicate that must be true in order for a feature to be executed, a post-condition is a condition that must be true after execution of the feature, and a triggering event is an event that causes execution of the feature, wherein comparing the first communication feature and the second communication feature further comprises: determining whether the first pre-condition negates the second pre-condition, to yield a first determination, determining whether the first post-condition negates of the second post-condition, to yield a second determination, and determining whether the first triggering event is equivalent to the second triggering event, to yield a third determination; and based on the first determination, the second determination, the third determination, and the predicate-based rule, identifying an interaction between the first communication feature and the second communication feature.