psbug1 had the following three rules:
holding(+) => exec([use]). over(+) => exec([grab]). can_see(+) => move_towards(+).
In English, these translate as follows:
I hope it's now clear how these work. If you look at the view window, you'll see that there are some cases where more than one rule matches, so that the resolve stage has to choose between them. It manages this on the basis of recency, which in this example, always gives the desired result.