Skip to Content
MarshalSkill management

Skill management

Reusable operating methods—triggers, procedures, and quality bars—that turn team know-how into agent-ready skills.

Marketing: exemplar.dev/marshal/skill-management .

When to use it

Encode how your team works (when to escalate, what to verify, what “done” means) once, then share across IDE agents, console, and frameworks—without editing IDE-local files for every change.

Where in Console

Author and version skills in Marshal console surfaces; promote with evals when risk is high. Align tone with prompt management.

Use from SDK and CLI

A skill is a folder rooted at SKILL.md (plus optional references/, scripts/, assets/). Prefer skills.install(dest) for runtimes; record.instructions is the markdown body only.

from exemplar_harness import Harness skills = Harness.from_env().skills() skills.create( name="refund-policy", instructions="# Refund policy\n\nReturns within 30 days.", description="Refund workflow", files={"references/policy.md": "# Policy\n\n30-day returns.\n"}, ) skills.install(".agents/skills", names=["refund-policy"])
exemplar skills list exemplar skills pull refund-policy exemplar skills install --all --dest .agents/skills exemplar skills push ./skills/refund-policy

Full patterns: SDK client usage · CLI.

Framework / SDK examples

Install folders for agent runtimes

from exemplar_harness import Harness skills = Harness.from_env().skills() # Materialize all active skills (or pass names=[...]) skills.install(".agents/skills") # IDE / product-specific roots skills.install(".cursor/skills", names=["refund-policy"]) skills.install(".claude/skills", names=["refund-policy"])
import { Harness } from "@exemplar-dev/exemplar-harness-typescript-sdk"; const skills = Harness.fromEnv().skills(); await skills.install(".agents/skills", { names: ["refund-policy"] }); await skills.install(".cursor/skills", { names: ["refund-policy"] });

Agno — pass skill instructions

pip install "exemplar-harness-sdk[agno]"
from agno.agent import Agent from agno.models.openai import OpenAIChat from exemplar_harness import Harness harness = Harness.from_env() skills = harness.skills() skills.install(".agents/skills", names=["refund-policy"]) skill = skills.get("refund-policy") agent = Agent( name="support-bot", model=OpenAIChat(id="gpt-4o-mini"), instructions=[skill.instructions], # markdown body; folder install for Agent Skills–aware runtimes ) agent.run("Can a customer return an item after 20 days?")

OpenAI Agents / chat — inject skill text

from openai import OpenAI from exemplar_harness import Harness harness = Harness.from_env() skill = harness.skills().get("refund-policy") client = OpenAI() client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": skill.instructions}, {"role": "user", "content": "Can a customer return an item after 20 days?"}, ], )
import OpenAI from "openai"; import { Harness } from "@exemplar-dev/exemplar-harness-typescript-sdk"; const harness = Harness.fromEnv(); const skill = await harness.skills().get("refund-policy"); const client = new OpenAI(); await client.chat.completions.create({ model: "gpt-4o-mini", messages: [ { role: "system", content: skill.instructions }, { role: "user", content: "Can a customer return an item after 20 days?" }, ], });

Claude Agent SDK / CrewAI / Deep Agents

Folder-first install, then point the runtime at the dest (or pass instructions where the framework has no folder loader):

RuntimePattern
Claude Agent SDKskills.install(".claude/skills", names=[...]) then run Claude with project skills
CrewAIAgent(..., skills=[...]) after install — see crewai_skills_demo 
Deep Agentscreate_deep_agent(..., skills=[...]) — see deepagents_skills_demo 
Google ADKinstall folder + ADK skill loader — see google_adk_skills_demo 

Runnable sample: platform/skills.py · catalog Live SDK examples.

Bootstrap IDE skills from GitHub

npx github:Exemplar-Dev/exemplar-skills

Guide: Install IDE agent skills.

Last updated on