Typical use case: transition the parent issue only when all subtasks have reached a certain Status.
Some more sophisticated conditions:
Parent becomes resolved when all subtasks are either resolved or closed.
Parent becomes "reopened" when it was previously resolved or closed AND one of its subtasks is reopened.
Parent becomes in progress when at least one but not all of its subtasks are moved to "in progress," "resolved," or "closed." For example, if I move a subtask from open to closed directly I want the parent to become "in progress."
The idea is to add a Groovy expression that defines the condition, and make it easy to access the current subtask, the parent issue, and all subtasks of the parent issue. And for each issue, make sure it's easy to access its current status.
Note that this will require that the post-function be put at the very end of the list of post-functions, so that the current subtask's Status is already updated when the function is run.