Skip to content

Agent skills

A skill is a set of instructions for one kind of task — “writing a refund email”, “reviewing a database migration”, “triaging a bug report” — that an agent should follow only when that task comes up. jitprompt serves skills the way it serves any instructions:

  • The agent always sees one line per skill in the table of contents (get_toc): what it’s for and when to use it.
  • When a task matches, it loads the whole skill with get_section, or finds the right part with search_instructions.
  • Skills it doesn’t need never enter its context.

It works the same for every agent and model that speaks MCP — Claude, OpenAI, Grok, LangChain and LangGraph, Qwen and other open-weight models — and you manage the skills in one place: change one and every agent has the new version on its next call.

One document per skill. Start it with front matter, the format of a SKILL.md:

---
name: refund-emails
description: Use when writing or reviewing a refund email to a customer —
tone, what to promise, and what never to say.
---
# Refund emails
## Steps
1. Confirm the order and the refund amount.
2. …
## Never
- Promise a refund date before finance confirms it.
## Example
…
  • description decides when the skill is used. It’s what the agent sees in the map, word for word, so say when to use it, not just what it is. See Front matter.
  • name becomes the title unless you set one.
  • Keep each part under its own heading (steps, rules, examples): jitprompt splits on them, so a search can return just the part that applies.

Existing SKILL.md files can be uploaded as they are — from the web app, or from CI with the API so your skills stay in Git.

A line in the agent’s system prompt makes it look before it starts:

Your skills are in the jitprompt tools. Before starting a task, check the
table of contents (get_toc) for a skill that matches it; if one does, read it
with get_section and follow it.

With a large library (a few hundred skills), the map no longer fits and is condensed; the agent then finds the skill with get_toc(query="what you are about to do"), which lists the best-matching skills first. Say so in the prompt: “…check get_toc — with query set to the task if the map is condensed — for a skill that matches it”.

See Writing prompts for agents for more.

A namespace can hold both: always-relevant policies and task-specific skills. Use a separate namespace when an agent should only see its own skills — each API key reads exactly one namespace.