Foreman / Puppet module environments

I've been having the hardest time trying to figure out why some of my
puppet modules go into both my "staging" and "production" environment, and
yet some only go into "production". I only have one folder
(/etc/puppet/modules/*) and the foreman/master puppet.conf looks like:

File managed with puppet

Module: 'puppet'

[main]
# The Puppet log directory.
# The default value is '$vardir/log'.
logdir = /var/log/puppet

# Where Puppet PID files are kept.
# The default value is '$vardir/run'.
rundir = /var/run/puppet

# Where SSL certificates are kept.
# The default value is '$confdir/ssl'.
ssldir = $vardir/ssl

# Allow services in the 'puppet' group to access key (Foreman + proxy)
privatekeydir = $ssldir/private_keys { group = service }
hostprivkey = $privatekeydir/$certname.pem { mode = 640 }

# Puppet 3.0.x requires this in both [main] and [master] - harmless on 

agents
autosign = $confdir/autosign.conf { mode = 664 }

show_diff     = false

hiera_config = $confdir/hiera.yaml

Next part of the file is managed by a different template

Module: 'puppet'

[agent]
# The file in which puppetd stores a list of the classes
# associated with the retrieved configuration. Can be loaded in
# the separate puppet executable using the --loadclasses
# option.
# The default value is '$statedir/classes.txt'.
classfile = $vardir/classes.txt

# Where puppetd caches the local configuration.  An
# extension indicating the cache format is added automatically.
# The default value is '$confdir/localconfig'.
localconfig = $vardir/localconfig

# Disable the default schedules as they cause continual skipped
# resources to be displayed in Foreman - only for Puppet >= 3.4
default_schedules = false

report            = true
pluginsync        = true
masterport        = 8140
listen            = true
splay             = false
splaylimit        = 1800
runinterval       = 1800
noop              = false
configtimeout     = 120
usecacheonfailure = true

Next part of the file is managed by a different template

Module: 'puppet'

[master]
autosign = $confdir/autosign.conf { mode = 664 }
reports = foreman
external_nodes = /etc/puppet/node.rb
node_terminus = exec
ca = true
strict_variables = false
always_cache_features = true

basemodulepath   = 

/etc/puppet/environments/common:/etc/puppet/modules:/usr/share/puppet/modules

Also worth noting, i have /etc/puppet/environments/(production|staging)
both which have a modules sym link which points to /etc/puppet/modules