     return .init(success: success, kind: .jobExecution)
   }
 }
+
+/// A rule represents all jobs to finish compiling a module, including mandatory jobs,
+/// incremental jobs, and post-compilation jobs.
 class ExecuteAllJobsRule: LLBuildRule {
   struct RuleKey: LLBuildKey {
     typealias BuildValue = DriverBuildValue

    guard allInputsSucceeded else {
      return engine.taskIsComplete(DriverBuildValue.jobExecution(success: false))
    }

    context.jobQueue.addOperation {
      self.executeJob(engine)
    }

  }

  override func start(_ engine: LLTaskBuildEngine) {
    // First, request all compilation jobs whose outputs this rule depends on.
    requestInputs(from: engine)
  }

