# Agents and skills

Scoped agents whose tool access is enforced, not just requested - a read-only reviewer really can't write - plus skills and recipes.

## Agents

An agent is a persona with a job and a fixed set of tools: a **Planner** that only reads, a **Reviewer** that only reads, an **Implementer** that can write and run commands. Its tool list is **enforced**: a read-only agent can't write files or run shell commands, because it is never given those tools, not because it was asked nicely.

Create one in a project's **Agents** tab:

- **Name** and what it is for;
- **Instructions**: the persona (*You are the security reviewer. You…*);
- **Model**: optional; otherwise the session's model;
- **Tools**: **Read-only**, or **Custom** to choose exactly which.

Agents are stored as YAML in `.warden/agents/` in the repository (or `~/.warden/agents/` for every project), so the team shares them.

Run an agent from its **Run this agent** button, from an [automation](automations) (**Run an agent**), or from the command line with `warden agent run <name>`. When the agent in a chat delegates work to a sub-agent, each one shows as a card in the chat, and every sub-agent's tool calls go through your rules. A sub-agent can't ask you anything, so an action that would need your yes is held.

## Skills

Skills are reusable instructions the agent can follow: *how we write a migration*, *our PR checklist*. Warden reads skills from the standard skill folders (for example `~/.agents/skills/<name>/SKILL.md`), and lists them under **Library → Recipes → Skills**.

- Run a skill in chat as a slash command: `/review-pr`.
- Use a skill as a step in a [workflow](workflows), an [assurance gate](assurance#set-up-your-checks), or a Software Factory stage.
- **Skill models** (a project's **Models** tab) run a skill on a particular model: a review skill on a different model from the one that wrote the code.

On [Warden Team](team), company skills sync to every seat.

## Recipes

**Library → Recipes** holds goose-style recipes: a saved agent task with its instructions and settings, which you can run by hand, on a schedule (**Library → Scheduler**), or from an automation. For ordered chains of steps stored with the repository, use [workflows](workflows).
