Isn't this already the case? In manifests/agent.pp there's:

```puppet
class { '::puppet::agent::config': } ~> class { '::puppet::agent::service': }
Class['puppet::config'] ~> Class['puppet::agent::service']
```