The general architecture of PRM: recipes are downloaded from external providers, incorporated into the local site repository, and made available to puppet for application on individual host.
Recipes
Recipes consist of three different pieces of information: one or more puppet manifests, configuration files needed by those manifests, and some prm-specific metadata. All these files are kept in a Mercurial repository; in a way, the recipe is that repository.
Site Repository
PRM maintains a site repository, consisting of clones of the upstream Mercurial repositories of the original recipes; in other words, the recipes in the local repositories are branches of the upstream recipes. This is a very important aspect of PRM, since it makes it possible to modify recipes locally and still consume updates from upstream.