docs: function(kind) {
    if (typeof kind !== 'string')  {
      throw new TypeError('Invalid task kind: ' + kind);
    }
  
    if (kind === 'delegate') {
      // Delegate.
      return {
        kind: kind,
        argvCount: Infinity
      };
    } else if (kind === 'argv*') {
      // Infinite argv allowed.
      return {
        kind: 'argv',
        argvCount: Infinity
      };
    } else if (_.startsWith(kind, 'argv')) {
      // Specific number of argv allowed.
      var parsedInt;
      try {
        parsedInt = _.parseInt(kind.slice('argv'.length));
      }
      catch (err) {
        throw new Error('Invalid task kind: ' + kind);
      }
      return {
        kind: 'argv' ,
        argvCount: parsedInt
      };
    } else {
      // Unexpected task kind, so throw an error.
      throw new TypeError('Invalid task kind: ' + kind);
    }
  
  }