root:
             creates   file:./
             creates   file:plan.py
             creates   step:./plan.py

file:plan.py
               state = STATIC
              digest = 7a11aa45 ad1f79f7 a08da7a0 5eb932da e3f4f931 678bdd02 9a4241bb 41fa2929
                     = a72d2dea 369c44d7 ab39f96f 7ed5800d f8e5f9c4 721be23b 80d279ae fd65a0e2
          created by   root:
            consumes   file:./
            supplies   step:./plan.py

file:./
               state = STATIC
          created by   root:
            supplies   file:plan.py
            supplies   file:story.txt
            supplies   step:./plan.py
            supplies   step:echo First line. > story.txt; echo Second line. >> story.txt
            supplies   step:grep First story.txt

step:./plan.py
               state = RUNNING
          created by   root:
            consumes   file:./
            consumes   file:plan.py
             creates   step:echo First line. > story.txt; echo Second line. >> story.txt
             creates   step:grep First story.txt

step:echo First line. > story.txt; echo Second line. >> story.txt
               state = RUNNING
          created by   step:./plan.py
            consumes   file:./
             creates   file:story.txt
            supplies   file:story.txt

file:story.txt
               state = AWAITED
          created by   step:echo First line. > story.txt; echo Second line. >> story.txt
            consumes   file:./
            consumes   step:echo First line. > story.txt; echo Second line. >> story.txt
            supplies   step:grep First story.txt

step:grep First story.txt
               state = PENDING
          created by   step:./plan.py
            consumes   file:./
            consumes   file:story.txt
