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 incmd/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”.
- 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.
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.Seed-data agent → skill assignments
Seed-data agent → skill assignments
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: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 aSkill 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.invokedentry to the Crew Journal (payload carriesskill_id,skill_slug,agent_id,tool_name,exit_code, and the post-incrementusage_count).
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.