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

file:plan.py
               state = CONFIRMED
             creator   root:
                sink   step:./plan.py

step:./plan.py
               state = SUCCEEDED
                need = PLAN
           using_env = PUBLIC [dynamic]
                     = STEPUP_PATH_FILTER [dynamic]
             creator   root:
              source   file:plan.py
             product   file:variables.py
             product   st:static/
             product   step:./plan.py  # wd=static
             product   step:cp -p static/preamble.inc.tex public/preamble.inc.tex

st:static/
             creator   step:./plan.py
             product   file:static/main.tex
             product   file:static/plan.py
             product   file:static/preamble.inc.tex
             product   file:static/variables.py

file:variables.py
               state = CONFIRMED
             creator   step:./plan.py
                sink   step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static

step:cp -p static/preamble.inc.tex public/preamble.inc.tex
               state = SUCCEEDED
                need = DEFAULT
             creator   step:./plan.py
              source   file:static/preamble.inc.tex
             product   file:public/preamble.inc.tex
                sink   file:public/preamble.inc.tex

file:static/preamble.inc.tex
               state = CONFIRMED
             creator   st:static/
                sink   step:cp -p static/preamble.inc.tex public/preamble.inc.tex

file:public/preamble.inc.tex
               state = BUILT
             creator   step:cp -p static/preamble.inc.tex public/preamble.inc.tex
              source   step:cp -p static/preamble.inc.tex public/preamble.inc.tex

step:./plan.py  # wd=static
               state = SUCCEEDED
                need = PLAN
           using_env = PUBLIC [dynamic]
                     = STEPUP_PATH_FILTER [dynamic]
             creator   step:./plan.py
              source   file:static/plan.py
             product   step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static

file:static/plan.py
               state = CONFIRMED
             creator   st:static/
                sink   step:./plan.py  # wd=static

step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static
               state = SUCCEEDED
                need = DEFAULT
           using_env = PUBLIC [dynamic]
                     = STEPUP_PATH_FILTER [dynamic]
             creator   step:./plan.py  # wd=static
              source   file:static/main.tex
              source   file:static/variables.py
              source   file:variables.py
             product   file:public/main.tex
                sink   file:public/main.tex

file:static/main.tex
               state = CONFIRMED
             creator   st:static/
                sink   step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static

file:static/variables.py
               state = CONFIRMED
             creator   st:static/
                sink   step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static

file:public/main.tex
               state = BUILT
             creator   step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static
              source   step:sc-render-jinja main.tex ../variables.py variables.py ../public/main.tex  # wd=static
