harbor

Run Jobs

Skills

Inject reusable instructions from local directories or git repositories

Skills let you inject context files (prompts, rules, reference docs) into agent trials. A skill is any directory containing a SKILL.md file. When passed via --skill, Harbor copies the skill directory into the agent's sandbox so the agent can read it during execution.

Local skills

Pass a local directory path:

harbor run -d terminal-bench@2.0 -a claude-code \
  --skill ./my-skills/python-style

The directory must contain a SKILL.md at the top level or in subdirectories.

Git skills

Instead of checking skills into every project, you can reference a git repository. Harbor clones the repo, resolves a commit SHA, and caches the result locally.

Shorthand syntax

# Default branch, reading skills from repo/skills/
harbor run --skill org/repo -a claude-code -d my-dataset

# Tag or branch, reading skills from repo/skills/
harbor run --skill org/repo@v1.2.0 -a claude-code -d my-dataset
harbor run --skill org/repo@main -a claude-code -d my-dataset

Shorthand always resolves to github.com and uses the repository's skills/ directory.

Full URL syntax

# Default branch, reading skills from repo/skills/
harbor run --skill https://github.com/org/repo -a claude-code -d my-dataset

# Subdirectory within a repo (uses /tree/ref/path format)
harbor run --skill https://github.com/org/repo/tree/main/skills/python -a claude-code -d my-dataset

Plain repository URLs use the repository's skills/ directory. The /tree/<ref>/<subdir> format lets you point at a specific subdirectory of a monorepo.

Multiple skills

Use --skill multiple times to inject several skills. If two skills share the same directory name, the last one wins:

harbor run \
  --skill org/common-skills \
  --skill ./local-overrides \
  -a claude-code -d my-dataset

Caching

Git skills are cached locally at ~/.cache/harbor/skills/<host>/<org>/<name>/<sha>/. Once a commit is cached, subsequent runs skip the clone. Different subdirectories from the same repository and commit are handled automatically.

To clear the cache:

rm -rf ~/.cache/harbor/skills

Reproducibility

When a job runs, Harbor records each skill's provenance in the job lock file:

  • name -- the skill directory name
  • source -- local path used during the run
  • digest -- SHA-256 content hash of all files in the skill
  • git_url -- the source repository (for git skills)
  • git_commit_id -- the resolved commit SHA (for git skills)

This ensures that job results are fully traceable back to the exact skill content that was used, even if the branch has since moved.

On this page