anchor.diff:  
       return executeTask(
           'set up project for new feature $featureName',
  -        () => _graph.processDepthFirst((JefeProject project) => project
  -            .lifecycle
  +        () => graph.processDepthFirst((JefeProject project) => project.lifecycle
               .startNewFeature(featureName, doPush: doPush, recursive: false)));
     }
   
     Future startNewFeatureForCurrentProject(String featureName,
         {bool doPush: false}) {
  -    return executeTask(
  -        'set up project for new feature "$featureName" for project ${_graph.name}',
  -        () async {
  -      /*
  -          TODO: it may not make much sense to try to hide the multi vs single
  -          project here as we likely wanna explicitly decide concurrency at
  -          each step.
  -           */
  -
  -      await _git.assertWorkingTreeClean();
  -      await _gitFeature.featureStart(featureName);
  -      await _pubspec.setToPathDependencies();
  -      await _pub.get();
  -      await _git.commit('$featureStartCommitPrefix $featureName');
  -      if (doPush) await _git.push();
  +    return process(
  +        'set up project for new feature "$featureName" for project ${graph.name}',
  +        (JefeProject p) async {
  +      await p.git.assertWorkingTreeClean();
  +      await p.gitFeature.featureStart(featureName);
  +      await p.pubspecCommands.setToPathDependencies();
  +      await p.pub.get();
  +      await p.git.commit('$featureStartCommitPrefix $featureName');
  +      if (doPush) await p.git.push();
       });
     }
   
  
positive.code:         recursive: false);
  
      return executeTask('Pre release checks: type $type',
          () => _graph.processDepthFirst(doPreRelease));
    }
  
    Future preReleaseCurrentProject(
            ReleaseType type, bool autoUpdateHostedVersions) =>
        executeTask('Pre release checks for project ${_graph.name}', () async {
          await _git.assertWorkingTreeClean();
          await _gitFeature.assertNoActiveReleases();
          await _git.assertOnBranch(_gitFeature.developBranchName);
  
negative.code:         await _gitFeature.releaseStart(releaseVersion.toString());
  
          if (releaseVersion != projectVersions.pubspecVersion) {
            await graph
                .updatePubspec(graph.pubspec.copy(version: releaseVersion));
          }
  
          await _pubspec.setToHostedDependencies();
  