Skills and prompts
Your method, and the shape of what comes out.
A skill is a procedure written down: the order to work in, what counts as evidence, the mistake to avoid. It loads only when a task calls for it.
The description is what the model reads when deciding whether to load the skill, so write it as the trigger condition rather than as a title. Recipes adds nothing to the format: these are Agent Skills as Pi loads them, one directory per skill with a SKILL.md inside.
Declare, then select
The package declares which skills exist; each agent selects the ones its role needs. An agent with no skills key gets none, which is usually right for a narrowly scoped role. Omitting the manifest key entirely falls back to skills/**/SKILL.md, so one directory per skill is found without writing a glob.
Prompts
A prompt template names a deliverable once, so every run comes out in the same shape. The filename is the command name.
These are ordinary Pi prompt templates. Recipes adds no second mechanism, so one template is both a slash command and a string you pass in.
| Placeholder | Expands to |
|---|---|
$1, $2 | The first, second positional argument |
$ARGUMENTS or $@ | Every argument, joined |
${1:-none given} | The first argument, or a default when absent |
${@:2} | Every argument from the second onward |
Arguments are parsed bash-style, so quote anything containing a space.