My big hesitation about finding a"natural" grouping of things is how you label them in a way that's meaningful to the user. "A bunch of ListDirs and FileContents reads and also a long invocation to transform_foo_to_bar which all sit under an ExecuteProcess node" is a hard thing to label in a way which is useful to a user. I find users mostly like thinking in terms of their vocabulary, which is basically goals, target addresses, and dependencies. But maybe in practice there are good obvious names for these groupings of things :)