Hi! The Shepherd is decoupled from Guix. In general, when hacking on it, you should think of it as an independent piece of software, a user of which is Guix.
A corollary is that there are well-defined interfaces between the two. Usually, you cannot add a new interface in the Shepherd an expect to use it right away in Guix System. In particular, when running ‘guix system reconfigure’, you have to keep in mind that the last step, which injects new services (or service replacements) into the running PID 1, is potentially talking to an old shepherd that does not implement the latest and greatest interfaces—think of a machine that hasn’t been rebooted in ages. That said, it’s often useful to test Shepherd changes in Guix System, of course. To do that, you can modify the ‘shepherd’ field of <shepherd-configuration> so that it points to your local package variant. I’m afraid I’m not really answering your questions, but I hope it makes some kind of sense. :-) Thanks, Ludo’.
