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-styleThe 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-datasetShorthand 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-datasetPlain 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-datasetCaching
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/skillsReproducibility
When a job runs, Harbor records each skill's provenance in the job lock file:
name-- the skill directory namesource-- local path used during the rundigest-- SHA-256 content hash of all files in the skillgit_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.