docs: function(platform) {
          events.emit('verbose', 'Beginning processing of action stack for ' + platform + ' project...');
  
          while (this.stack.length) {
              var action = this.stack.shift();
              var handler = action.handler.run;
              var action_params = action.handler.params;
  
              try {
                  handler.apply(null, action_params);
              } catch(e) {
                  events.emit('warn', 'Error during processing of action! Attempting to revert...');
                  this.stack.unshift(action);
                  var issue = 'Uh oh!\n';
                  // revert completed tasks
                  while(this.completed.length) {
                      var undo = this.completed.shift();
                      var revert = undo.reverter.run;
                      var revert_params = undo.reverter.params;
  
                      try {
                          revert.apply(null, revert_params);
                      } catch(err) {
                          events.emit('warn', 'Error during reversion of action! We probably really messed up your project now, sorry! D:');
                          issue += 'A reversion action failed: ' + err.message + '\n';
                      }
                  }
                  e.message = issue + e.message;
                  
                  return Q.reject(e);
              }
              this.completed.push(action);
          }
          events.emit('verbose', 'Action stack processing complete.');
  
          return Q();
      }