General

What license is PRM distributed under?
PRM is distributed under the GNU General Public License, see the file COPYING.LIB in the distribution for the precise wording.
What is a recipe ?
A recipe is a Puppet manifest that has been packaged for distribution in a Mercurial repository, and should describe the configuration of a specific aspect of a machine. Besides the Puppet manifest, the recipe contains all the config files and templates that the manifest uses, and a simple description of the recipe.
Where can I find some recipes ?
Example recipes can be found here, in the Mercurial repos with names recipes/*.

Usage

How do I write a recipe ?
A recipe is simply a Mercurial repository with a specific layout. PRM expects that there is a file recipe.xml that contains the metadata for the recipe, and that all the Pupept manifests in this recipe are in a subdirectory called manifests/. It is recommended that additional config files that the manifest deploys be put in a files/ subdirectory.
What is the name of a recipe ?
The full name of a recipe is a URL, which, by convention, should point to the Mercurial repository containing the recipe. The last part of the URL is sometimes used as the short name for the recipe. For example, PRM puts the manifests contained in a recipe into a subdirectory of the manifestPath, a directory configured in /etc/prm.conf. For a recipe with full name http://hg.example.com/prm/foo, manifests are put into the directory $manifestPath/foo.
What goes into the recipe.xml metadata file ?
The complete metadata format is documented as a Relax NG grammar in the source repository. Here's an example, note that recipes are identified by a full URL, which, by convention, should be the URL to the Mercurial repository containing the recipe:
<recipe xmlns="http://redhat.com/prm/1.0" name="URL" version="1.0">
  <label>short human-readable freeform label</label>
  <description>freeform text explaining what this recipe does</description>
  <dependencies>
    <require recipe="URL1"/>
    <require recipe="URL2"/>
  </dependencies>
</recipe>
How should I reference config files from the manifest ?
When PRM deploys a recipe, it puts the config files into the directory specified by the configPath variable in /etc/prm.conf, by default /var/lib/puppet/config. Assuming you have mapped that directory in Puppet's fileserver to the module /config, you can reference a file in your recipe as puppet://$servername/config/RECIPE_NAME/file. For a recipe called foo that contains a file /files/config.txt, you can deploy that file in your manifest with
  file { "/destination/for/config.txt":
    source => "puppet://$servername/config/foo/files/config.txt"
  }
Note that you don't need to know the name of the Puppet master for the manifest, since Puppet sets the name of that in the variable servername.