root:
             version = v1
             creates   file:./
             creates   file:plan.py
             creates   step:./plan.py

file:plan.py
                path = plan.py
               state = STATIC
          created by   root:
            consumes   file:./
            supplies   step:./plan.py

file:./
                path = ./
               state = STATIC
          created by   root:
            supplies   file:head_x.txt
            supplies   file:head_y.txt
            supplies   file:head_z.txt
            supplies   file:paste_x.txt
            supplies   file:paste_y.txt
            supplies   file:paste_z.txt
            supplies   file:plan.py
            supplies   file:tail_x.txt
            supplies   file:tail_y.txt
            supplies   file:tail_z.txt
            supplies   step:./plan.py
            supplies   step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt
            supplies   step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt
            supplies   step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt

step:./plan.py
             workdir = ./
             command = ./plan.py
               state = SUCCEEDED
                 ngm = ['head_${*char}.txt', 'tail_${*char}.txt'] {'char': '?'}
       extended hash = yes
          created by   root:
            consumes   file:./
            consumes   file:plan.py
             creates   file:head_x.txt
             creates   file:head_y.txt
             creates   file:head_z.txt
             creates   file:tail_x.txt
             creates   file:tail_y.txt
             creates   file:tail_z.txt
             creates   step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt
             creates   step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt
             creates   step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt

file:head_x.txt
                path = head_x.txt
               state = STATIC
          created by   step:./plan.py
            consumes   file:./
            supplies   step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt

file:head_y.txt
                path = head_y.txt
               state = STATIC
          created by   step:./plan.py
            consumes   file:./
            supplies   step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt

file:tail_x.txt
                path = tail_x.txt
               state = STATIC
          created by   step:./plan.py
            consumes   file:./
            supplies   step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt

step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt
             workdir = ./
             command = paste -d ' ' head_x.txt tail_x.txt > paste_x.txt
               state = SUCCEEDED
       extended hash = yes
          created by   step:./plan.py
            consumes   file:./
            consumes   file:head_x.txt
            consumes   file:tail_x.txt
             creates   file:paste_x.txt
            supplies   file:paste_x.txt

file:paste_x.txt
                path = paste_x.txt
               state = BUILT
          created by   step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt
            consumes   file:./
            consumes   step:paste -d ' ' head_x.txt tail_x.txt > paste_x.txt

file:head_z.txt
                path = head_z.txt
               state = STATIC
          created by   step:./plan.py
            consumes   file:./
            supplies   step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt

file:tail_y.txt
                path = tail_y.txt
               state = STATIC
          created by   step:./plan.py
            consumes   file:./
            supplies   step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt

file:tail_z.txt
                path = tail_z.txt
               state = STATIC
          created by   step:./plan.py
            consumes   file:./
            supplies   step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt

step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt
             workdir = ./
             command = paste -d ' ' head_y.txt tail_y.txt > paste_y.txt
               state = SUCCEEDED
       extended hash = yes
          created by   step:./plan.py
            consumes   file:./
            consumes   file:head_y.txt
            consumes   file:tail_y.txt
             creates   file:paste_y.txt
            supplies   file:paste_y.txt

file:paste_y.txt
                path = paste_y.txt
               state = BUILT
          created by   step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt
            consumes   file:./
            consumes   step:paste -d ' ' head_y.txt tail_y.txt > paste_y.txt

step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt
             workdir = ./
             command = paste -d ' ' head_z.txt tail_z.txt > paste_z.txt
               state = SUCCEEDED
       extended hash = yes
          created by   step:./plan.py
            consumes   file:./
            consumes   file:head_z.txt
            consumes   file:tail_z.txt
             creates   file:paste_z.txt
            supplies   file:paste_z.txt

file:paste_z.txt
                path = paste_z.txt
               state = BUILT
          created by   step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt
            consumes   file:./
            consumes   step:paste -d ' ' head_z.txt tail_z.txt > paste_z.txt
