Harbor operator skills
Skills (in the Anthropic claude-code sense) for building agents with Harbor. Each one is a focused playbook: read it, follow the numbered steps, get a working surface.
These are operator skills — playbooks for humans (and AI coding agents) building Harbor agents. They are NOT the runtime skill subsystem the planner consults during reasoning (those live in internal/skills/). The glossary entry in docs/glossary.md pins the distinction.
The first-five-minutes adoption chain
A fresh contributor follows this exact chain to get from git clone to "I'm chatting with a working agent" in under five minutes:
- scaffold-a-harbor-agent —
harbor init+harbor scaffold+ the tiered yaml. - run-the-dev-loop —
harbor dev+harbor console+ the token handshake. - drive-the-playground — chat against the agent, upload files, steer mid-run.
That's the load-bearing path. Everything else is built around it.
Skills by phase
Start a project
- scaffold-a-harbor-agent — start a fresh agent project from zero.
- define-the-agent-yaml — every field in
harbor.yamlexplained.
Build the agent
- add-an-in-process-tool — typed Go tools the planner can call in-process.
- wire-the-llm-provider — OpenRouter / Anthropic / OpenAI / Azure / NIM via Bifrost.
- configure-memory-and-skills — multi-turn memory + the runtime skill catalog.
Drive it interactively
- run-the-dev-loop —
harbor dev+ Console attach, single- or multi-process. - drive-the-playground — chat, file uploads, multimodal dispatch, steering.
Observe + debug
- observe-with-the-console — a tour of the Console's Runtime / Execution / Resources / Settings pages.
Ship
- validate-and-package —
harbor validate+make preflight+ production checklist.
Build a custom frontend
- use-the-harbor-protocol — talk to the Runtime directly; ship a chatbot in a day.
Drift discipline
Per CLAUDE.md §18, any PR that changes a documented surface (a CLI verb, a Protocol method, a Console route, a harbor.yaml field) MUST update the matching skill in the same PR. Use this grep to find which skill is affected by a surface change:
grep -lE "surface: <changed-surface>" docs/skills/*/SKILL.mdThe frontmatter audit (scripts/skills/check-frontmatter.sh, run as part of make drift-audit) catches shape drift. Content drift is human-reviewed; reviewers look for it.
Convention
Each skill is docs/skills/<slug>/SKILL.md with Dockyard-style frontmatter:
---
name: <slug-kebab-case>
description: "Use when <framing>"
license: Apache-2.0
metadata:
framework: harbor
surface: cli | agent-yaml | tools | mcp | llm | memory | playground | console | tasks | protocol
verbs: "<harbor cli verbs>"
---Sibling project Dockyard ships the same convention for MCP-server projects.