docs: function () {
  			/** A stateful object to hold items till they are added to the compiler */
  			var pkg = {
  				exec          : [],
  				aliases       : {},
  				dependAliases : [],
  				ignore        : [],
  				publish       : [],
  				externals     : [],
  				modules       : [],
  				noParse       : []
  			};
  
  			// process modules to ignore
  			var ignore = task.data.ignore;
  			if ( !sys.isEmpty( ignore ) && !sys.isEmpty( ignore.src ) ) {
  				grunt.verbose.writeln( "Adding ignores" );
  
  				pkg.ignore = sys.map( grunt.file.expand( ignore, ignore.src ), function ( item ) {
  					return resolvePath( item );
  				} );
  			}
  
  			// process modules that won't be parsed
  			var noParse = task.data.noParse;
  			if ( !sys.isEmpty( noParse ) && !sys.isEmpty( noParse.src ) ) {
  				grunt.verbose.writeln( "Adding ignores" );
  
  				pkg.noParse = sys.map( grunt.file.expand( noParse, noParse.src ), function ( item ) {
  					return resolvePath( item );
  				} );
  			}
  
  			// process executable modules
  			var exec = task.data.exec;
  			if ( !sys.isEmpty( exec ) && !sys.isEmpty( exec.src ) ) {
  				grunt.verbose.writeln( "Adding executable modules" );
  
  				pkg.exec = sys.map( grunt.file.expand( exec, exec.src ), function ( item ) {
  					return resolvePath( item );
  				} );
  			}
  
  			// process module entries
  			var modules = task.data.modules;
  			if ( !sys.isEmpty( modules ) && !sys.isEmpty( modules.src ) ) {
  				grunt.verbose.writeln( "Adding modules" );
  
  				pkg.modules = sys.map( grunt.file.expand( modules, modules.src ), function ( item ) {
  					return resolvePath( item );
  				} );
  			}
  
  			// process modules to be published
  			var publish = task.data.publish;
  			if ( !sys.isEmpty( publish ) && !sys.isEmpty( publish.src ) ) {
  				grunt.verbose.writeln( "Adding published modules" );
  
  				pkg.publish = sys.map( grunt.file.expand( publish, publish.src ), function ( item ) {
  					return resolvePath( item );
  				} );
  			}
  
  			// process externals entries
  			var externals = task.data.externals;
  			if ( !sys.isEmpty( externals ) && !sys.isEmpty( externals.src ) ) {
  				grunt.log.writeln( "Adding external modules" );
  
  				pkg.externals = sys.map( grunt.file.expand( externals, externals.src ), function ( item ) {
  					return resolvePath( item );
  				} );
  			}
  
  			// get all task aliases
  			sys.extend( pkg.aliases, getTaskAliases( task.target, options ) );
  			if ( !sys.isEmpty( task.data.depends ) ) {
  				sys.each( task.data.depends, function ( depends ) {
  					var dependents = getTaskAliases( depends, options );
  
  					sys.each( dependents, function ( val, key ) {
  						pkg.dependAliases.push( key );
  					} );
  				} );
  			}
  
  			// get dependencies definitions and add them to this as external
  			if ( options.autoExternals && !sys.isEmpty( task.data.depends ) ) {
  				sys.each( task.data.depends, function ( depends ) {
  					pkg.externals = pkg.externals.concat( getTaskSources( depends ) );
  				} );
  			}
  
  			return pkg;
  		}