Skip to main content

Skills

Skills are system prompt extensions that get injected into an agent’s prompt during task execution. They teach agents specialized behaviors, guardrails, and output formats.

How Skills Work

When an agent has skills assigned, their content is injected as <skill> blocks in the system prompt. The agent’s LLM reads these instructions and follows them during execution.

Built-in Skills

Crewship ships with five built-in skills, defined in cmd/crewship/seeddata/builtin/skills.yaml and loaded at startup by cmd/crewship/seeddata/skills.go:

Network Probe

Network diagnostics: ping, HTTP checks, DNS resolution, speed tests. Category: DEVOPS.

File Crafter

File and directory creation, CSV generation, data formatting. Category: CODING.

Web Scraper

Web content fetching, HTML/JSON parsing, API data extraction. Category: RESEARCH.

Script Runner

Python and Bash script creation, execution, and output capture. Category: CODING.

System Inspector

Container environment inspection, tool inventory, resource mapping. Category: DEVOPS.

Skill Structure

Every skill has three key sections:

When to use this skill

Describes the conditions under which the agent should apply this skill. Uses keyword matching against the task description.

Instructions

Step-by-step guidance for how to perform the skill. These are concrete, actionable instructions the LLM follows.

Guardrails

Safety constraints and limits. For example:
  • “Never ping more than 10 times per host”
  • “Only fetch from public, well-known URLs”
  • “Write only to /tmp/“

SKILL.md Format

Skills use a YAML frontmatter + markdown content format:
Import via the API endpoint POST /api/v1/workspaces/{id}/skills/import with the SKILL.md content as the body.

Skill Categories

Skill Assignment

Skills are assigned to specific agents. The seed data maps agents to skills based on their role.

On the Skills page

The left panel of Skills works like the one on Routines and Issues:
  • View — All skills, On agents, Not assigned, Needs a look (on an agent and flagged, never scanned, or missing a credential) and Proposed by agents.
  • Crews & agents — pick an agent to see only its skills (or a crew for all of its agents); the number beside each is how many skills it holds. With an agent picked, Skills for <agent> edits its whole set at once.
  • Domain — the categories in use. Filter adds source, trust, maturity and “needs a credential”.
Open a skill and its Overview reads the SKILL.md for you: when agents use it (with its trigger words), the steps of its instructions, what it hands back and its guardrails, taken from sections named like When to Activate, Instructions, Output Format and Guardrails. A SKILL.md without such sections is listed by its headings instead. Beside it are the agents that hold it, its uses per day over the last week, the credentials it needs and where it came from. The SKILL.md tab shows the file with an outline, its frontmatter as a table, and Rendered / Source, Copy and Download. The Agents tab says who holds it: one switch per agent applies at once (the agent loads the skill on its next run), and Give to whole crew does a crew in one go. An agent that holds a skill without a credential the skill needs is marked “no GITHUB_TOKEN” (or whichever is missing). New skill offers two ways, both with an icon and a domain picked up front:
  • Describe it — Claude writes the SKILL.md from your description with the workspace’s Anthropic key.
  • Write it — fill in when agents should use it, the instructions and the credentials it needs, and see the SKILL.md it becomes.
Edit (and clicking the skill’s icon) changes an imported or generated skill: its name, icon, domain, description, instructions and credentials. Every save runs the import scan again. Duplicate as new skill copies any skill, built-ins included, under a new name; built-in skills themselves cannot be edited or deleted. Import takes a URL, pasted content or a git repository.
The icon and domain are the icon and category keys of the SKILL.md frontmatter. The Skills page saves them through the import endpoint, which upserts by slug — so crewship skill import with the same name updates a skill the same way.

Creating Custom Skills

1

Write the SKILL.md file

Create a markdown file with YAML frontmatter defining the skill metadata and content body with activation conditions, instructions, and guardrails.
2

Import the skill

Use the API or UI to import the skill into your workspace.
3

Assign to agents

Assign the skill to the agents that should use it. An agent can have multiple skills assigned.

Skill Sources

Verification Status

Marketplace skills go through a verification pipeline:
Skills are injected into the system prompt, so they consume token budget. Keep skills focused and concise — a skill with 500 words of instructions is more effective than one with 2000 words of edge cases.

Invocation telemetry

Every time an agent actually uses one of its assigned skills, Crewship records it. This is what lets the skill-review sweep distinguish a skill that is genuinely in use from one that is just assigned and forgotten. The orchestrator watches the agent’s tool-call stream. When a tool call maps to one of the agent’s enabled skills — either a Skill tool call whose input names the skill’s slug, or a tool whose name is an assigned slug — the platform, in a single transaction:
  • inserts one row into skill_invocations (an append-only audit log: which skill, which agent, which workspace, when, and the exit code);
  • bumps the skill’s denormalised counters: usage_count, last_used_at, and — when the call reported a non-zero exit code — error_count;
  • emits a skill.invoked entry to the Crew Journal (payload carries skill_id, skill_slug, agent_id, tool_name, exit_code, and the post-increment usage_count).
Recording is best-effort and off the hot path — it runs in a bounded background worker, so a busy agent is never slowed by telemetry, and a tool call that does not correspond to an assigned skill is silently ignored. A non-skill tool (e.g. Read, Bash) never produces an invocation row. The skill-review routine reads the skill_invocations aggregate (count + error count over a lookback window) to decide whether an assigned skill is still earning its place in the system prompt. Filter the journal Timeline on skill.invoked to see, per agent, exactly which skills are pulling their weight. The Skills page shows the same numbers for your workspace: uses in the last 7 days and last use on each card, and a skill’s history on its Activity tab.

What’s Next

Orchestration

Create multi-agent missions with task delegation and workflow templates.

Templates

Deploy pre-configured crews with built-in skill assignments.

CLI Reference

Import, assign, and manage skills via the CLI.

API Reference

Skills API endpoints for programmatic access.