A suggestion for the docs:
Shouldn’t group_by be discussed as a conditional mechanism?
It allows conditional actions based on facts.
Effectively, it’s a coarse-grain conditional construct that applies to an entire play, versus the finer-grain when_* conditionals that apply to individual tasks.