code: def prospective_prov(self, job):
          # type: (Any) -> None
          
          if not hasattr(job, "steps"):
              # direct command line tool execution
              self.document.entity(
                  "wf:main", {provM.PROV_TYPE: WFDESC["Process"],
                              "prov:type": PROV["Plan"],
                              "prov:label":"Prospective provenance"})
              return
  
          self.document.entity(
              "wf:main", {provM.PROV_TYPE: WFDESC["Workflow"],
                          "prov:type": PROV["Plan"],
                          "prov:label":"Prospective provenance"})
  
          for step in job.steps:
              stepnametemp = "wf:main/" + str(step.name)[5:]
              stepname = urllib.parse.quote(stepnametemp, safe=":/,#")
              step = self.document.entity(
                  stepname, {provM.PROV_TYPE: WFDESC["Process"],
                             "prov:type": PROV["Plan"]})
              self.document.entity(
                  "wf:main", {"wfdesc:hasSubProcess": step,
                              "prov:label": "Prospective provenance"})
docs: Create prospective prov recording as wfdesc prov:Plan.