NAME

SKILLS

SYNOPSIS

Skills allow agents to carry out uniform structured tasks. The SKILL.md file is a standard proposed by Anthropic.

DESCRIPTION

Skills are Markdown files that inject specialised instructions into Harvey’s context on demand. Harvey scans for skills at startup but only loads a skill’s full instructions when you explicitly ask for it. SKILL.md is documented at https://agentskills.io/home.

HOW SKILLS WORK

  1. Discovery — Harvey scans the standard paths below and builds a catalog of (name, description) pairs. The catalog is added to the system prompt so the model knows what skills are available.

  2. Activation — type /skill load to inject the full skill body into the conversation. The model then follows the skill’s instructions for the current task.

  3. Resources — a skill directory may also contain scripts/, references/, and assets/ subdirectories. Use /read to bring any of those files into context when the skill’s instructions call for them.

SKILL DIRECTORY STRUCTURE

  my-skill/
  ├── SKILL.md          required: metadata + instructions
  ├── scripts/          optional: runnable code
  ├── references/       optional: extra documentation
  └── assets/           optional: templates, data files

SKILL.md FORMAT

  ---
  name: my-skill
  description: One or two sentences on what this skill does and when to use it.
  license: Apache-2.0          (optional)
  compatibility: Requires git  (optional)
  trigger: pdf extract         (optional: keyword list or /regexp/)
  metadata:                    (optional)
    author: you
    version: "1.0"
  ---

  # My Skill

  Instructions in plain Markdown. The model reads this entire block
  when the skill is activated.

Required frontmatter fields: name, description. The name must be lowercase letters, numbers, and hyphens only, and must match the parent directory name.

EXAMPLE — the bundled go-review skill

Location: agents/skills/go-review/SKILL.md

  ---
  name: go-review
  description: Review Go source code for correctness, style, and idiomatic
    patterns. Use when the user asks to review, audit, or critique Go code,
    or when checking a Go file before committing.
  license: AGPL-3.0
  compatibility: Designed for Harvey (or any agent working in a Go codebase)
  metadata:
    author: rsdoiel
    version: "1.0"
  ---

  Activate it with:   /skill load go-review
  Then ask Harvey:    Please review cmd/harvey/main.go

COMPILED SKILLS

A compiled skill has executable scripts (compiled.bash for Linux/macOS/BSD, compiled.ps1 for Windows) in the skill’s scripts/ directory. When a compiled skill is invoked, Harvey runs the script directly — no LLM round-trip needed — and injects the output into context.

Compiling a skill requires a large capable model (e.g. Claude or Mistral) that is not typically available on resource-constrained hardware. Compile skills on a capable system and commit the resulting scripts alongside SKILL.md.

Compiled skill directory layout:

  my-skill/
  ├── SKILL.md
  └── scripts/
      ├── compiled.bash
      └── compiled.ps1

HARVEY_* environment variables set before each script run:

HARVEY_PROMPT the user’s exact prompt text HARVEY_WORKDIR absolute path to the workspace root HARVEY_MODEL the name of the currently active LLM model HARVEY_SESSION_ID the current session ID as a string

Staleness: if SKILL.md is modified after the scripts were compiled, Harvey warns you when the skill is invoked and runs the old compiled version. Recompile the skill on a capable system to pick up the changes.

TRIGGER field: add an optional trigger field to SKILL.md frontmatter to enable automatic skill dispatch when user input matches:

trigger: pdf extract document (keyword mode — any word triggers) trigger: / (regexp mode — wrap pattern in slashes)

When Harvey receives a user prompt matching a trigger, it invokes the compiled skill directly instead of sending the prompt to the LLM. First alphabetically matching trigger wins.

DISCOVERY PATHS (project overrides user on name collision)

  Project scope
    <workspace>/agents/skills/           Harvey-native (and shared clients)

Skills placed in agents/skills/ are visible to any agent that follows the Agent Skills specification (https://agentskills.io/home).

SLASH COMMANDS

  /skill                   list all discovered skills
  /skill list              same as above
  /skill load NAME         inject the full skill body into context
  /skill info NAME         show path, compatibility, and license
  /skill status            count skills by scope
  /skill new               interactive wizard to create a new skill
  /skill run NAME          run a skill (dispatches compiled scripts if available)