anchor.diff:  import 'package:unscripted/unscripted.dart' as u;
   import 'package:jefe/src/project/jefe_project.dart';
   
  -main(arguments) {
  +main(List<String> arguments) {
     Chain.capture(() {
       new u.Script(Jefe).execute(arguments);
     }, onError: (error, stackChain) {
  
positive.code:       @u.Option(help: 'A project name filter. Only projects whose name contains the text will run', abbr: 'p')
            String projects}) async {
      final graph = await _loadGraph(rootDirectory);
      return graph.lifecycle.startNewFeature(featureName);
  //    await executor.execute(lifecycle.startNewFeature(featureName),
  //        filter: projectNameFilter(projects));
    }
  
    @u.SubCommand(help: 'Completes feature and returns to development branch')
  
negative.code:           bool autoUpdateHostedVersions: false}) async {
      final graph = await _loadGraph(rootDirectory);
  
      final lifecycle = graph
          .multiProjectCommands(projectFilter: projectNameFilter(projects))
          .lifecycle;
  
      // TODO: would be nice to leverage grinder here (command dependencies)
      // somehow
  
      if (!skipPreRelease) {
        await lifecycle.preRelease(
            type: type, autoUpdateHostedVersions: autoUpdateHostedVersions);
      }
  
      if (!preReleaseOnly) {
        await lifecycle.release(
            type: type, autoUpdateHostedVersions: autoUpdateHostedVersions);
      } else {
        print('-------');
  