# shape-your-agent

Walks you through writing a system prompt for an agent on the Sanity Context MCP server: voice, boundaries, refusal behaviour.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1100 installs · ★ 7
- Author: sanity-io
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/sanity-io/context/tree/HEAD/skills/shape-your-agent/SKILL.md
- Updated: 2026-10-24
- HTML: https://affpapa.org/en/nevibecode/skills/shape-your-agent

## What it does

This is a conversation, not a checklist. The skill starts with who talks to your agent, where they do it, and what state they arrive in — exploring, stuck, annoyed. Those answers set the tone for everything after.

Then you pick positions on voice, answer length, technical depth and formatting. Each axis comes with a weak phrasing and a stronger one, so you can see the difference. Boundaries get their own pass: every rule needs a rule, a trigger scenario and the response you want. If you cannot name a real user message that fires a rule, the skill tells you to drop it. The draft lands in a short structure — role, voice, boundaries, fallback — usually a couple hundred words.

You need control over the system prompt to get anything out of this. Content schema, field meanings and query patterns belong in the Instructions field and the MCP itself; copying them into the prompt creates conflicts. No access to the system prompt? Skip the skill — the Instructions field carries the setup on its own.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add sanity-io/context --skill shape-your-agent -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/shape-your-agent/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/shape-your-agent/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add sanity-io/context --skill shape-your-agent -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/shape-your-agent/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add sanity-io/context --skill shape-your-agent -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/shape-your-agent/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install sanity-io/context shape-your-agent
```

2. **Manually: put the files in place**
- File: `.github/skills/shape-your-agent/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add sanity-io/context --skill shape-your-agent -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/sanity-io/context --path skills/shape-your-agent
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/shape-your-agent/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add sanity-io/context --skill shape-your-agent -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/sanity-io/context/tree/HEAD/skills/shape-your-agent/SKILL.md

## When to use it
- replace vague tone instructions with concrete voice rules
- write refusals and redirects tied to real scenarios
- decide what the agent says when a query returns nothing
- cut rules that no user message can trigger
- keep agent behaviour separate from data concerns

## Example prompts
- Help me write a system prompt for our support agent — it should never name competitors
- My agent sounds too stiff, let's run the session and rework its voice
- Set boundaries: the agent reads content but never edits the dataset

## Similar
- [setup-matt-pocock-skills](https://affpapa.org/en/nevibecode/skills/setup-matt-pocock-skills.md) — skill · 1052851 installs
- [ask-matt](https://affpapa.org/en/nevibecode/skills/ask-matt.md) — skill · 766587 installs
- [to-tickets](https://affpapa.org/en/nevibecode/skills/to-tickets.md) — skill · 711230 installs
- [writing-plans](https://affpapa.org/en/nevibecode/skills/writing-plans.md) — skill · 282859 installs
- [caveman-review](https://affpapa.org/en/nevibecode/skills/caveman-review.md) — skill · 411800 installs
- [caveman-compress](https://affpapa.org/en/nevibecode/skills/caveman-compress.md) — skill · 411500 installs

From the same set: [sanity-io/context](https://affpapa.org/en/nevibecode/by/sanity-io/context.md) — 3 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
