Skills & prompts
Skills
A skill is a focused procedure stored in a SKILL.md file. It can explain how
to investigate an incident, review a contract, apply a support policy, or use a
particular tool safely. Keeping that guidance in a skill makes the agent’s core
instructions shorter and lets several agents share the same procedure.
skills/
investigate-incident/
SKILL.md
references/
scripts/The skill’s frontmatter description is what the model reads when deciding
whether to load it, 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.
The recipe manifest declares which skill resources belong to the package. Each
agent definition then selects skills by the skill’s name —
its frontmatter name, defaulting to the skill’s directory name — never by
path — so an agent with no skills key gets none. The example above declares
no name, so agents select it as investigate-incident. Selection controls
what guidance is presented to the agent; it is not a security boundary.
Prompts
A prompt template names a deliverable once, so every run comes out in the same shape. The filename is the command name:
---
description: Write a sourced brief on an account
argument-hint: <account name>
---
Write a brief on $1.
## Positioning
What they sell, to whom, in their own words.
## Three proof points
Each with a source and a date.These are ordinary Pi prompt templates ;
Recipes adds no second mechanism, so one template is both a slash command in
the TUI (/brief "NordStream Media") and a string you pass to
session.prompt() from a host. Arguments are parsed bash-style: $1/$2 are
positional, $ARGUMENTS joins them all, and ${1:-default} supplies a
fallback.
Where each belongs
A skill is how the work is done, and the model decides when to load it. A
prompt is what you asked for, and you invoke it by name. A rule that must hold
on every run regardless of the request belongs in SYSTEM.md. Deterministic
runtime behavior belongs in an extension or
script.
They differ in how they are scoped, too. A skill is selected per agent, through
that agent’s skills list, so two agents in one recipe can see different sets.
Prompts have no such per-agent selection: a prompt in the package is invocable
across the recipe. If a procedure has to be available to one agent and withheld
from another, that is a skill, not a prompt.
Skills and prompts are ordinary versioned recipe files, so changes move through review, local proof, and deployment with the rest of the agent behavior. See the Recipes documentation for the current package contract.