My2 cents:
These default options look generally sane,
I'd leave out $autoupgrade (packages update is generally managed indipendently)
and have some doubt about having separate parameters for $ensure and $version, instead of using directly a single (and simpler to manage) $ensure parameter for both.

I'd add some parameters necessary for reusability.
Some of these may be redundant ( file_content ? the whole dir management? ) and may be evaluated.

class <%= metadata.name %> (

  $ensure              = $<%= metadata.name %>::params::ensure,
  $status              = $<%= metadata.name %>::params::status,
  $restart_on_change   = $<%= metadata.name %>::params::restart_on_change, # $file_notify? $
  $version             = false,

  $file_source         = undef,
  $file_template       = undef,
  $file_content        = undef,
  $file_options_hash   = undef,

  $dir                 = $<%= metadata.name %>::params::dir,
  $dir_source          = undef,
  $dir_purge           = false,
  $dir_recurse         = true,


I think it doesn't make sense to add other "stdmod" parameters here, but it would be nice if puppet module generate could support different templates from which to create the module, this would (maybe already does) allow the usage of different basic skeletons for different modules types.

The implementation details strictly depend on the default parameters, so I'd gladly provide an updated proposal once the default parameters are decided.