create-adapter
Skill6.7k starsChanged 24 days agoApache-2.0View on GitHub
Scaffold a new Harbor benchmark adapter by running `harbor adapter init` and then guide implementation using the Adapters Agent Guide as the authoritative spec.
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 4 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Do not substitute prior knowledge for the contents of that file.
- Very specific: line 38
Before any filesystem or CLI action, Read adapters/ADAPTER_CONTRIBUTING.md in full.
- Distinctive: line 66
Prefer the non-interactive form when both names are known:
- Distinctive: line 91
When implementation questions come up, point at an existing adapter that matches the benchmark's shape:
- Distinctive: line 105
Run oracle verification or parity experiments.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create Adapter
Bootstrap a new benchmark adapter in the Harbor repository. This skill scaffolds the adapter directory with harbor adapter init and then defers to the adapter tutorial for every implementation decision.
Authoritative reference
The adapter tutorial is the authoritative specification for this skill. Read it in full before taking any action beyond scaffolding:
adapters/ADAPTER_CONTRIBUTING.mdThat path is relative to the Harbor repo root (a skill prerequisite — see below). The tutorial contains:
- Required directory structures for the generated tasks and the adapter code package.
- Step-by-step process (steps 1-9) covering benchmark analysis, oracle verification, parity experiments, dataset registration, and submission.
- Schemas for
task.toml,parity_experiment.json,adapter_metadata.json, anddataset.toml. - Parity matching criterion, pre-flight checklist, and debug playbook.
- README format rules (machine-parsed; deviations break automation).
Do not substitute prior knowledge for the contents of that file. Treat it as the contract.
Prerequisites
- Harbor CLI is installed and available on
PATH(harbor --versionsucceeds). - Working directory is the Harbor repository root.
- Harbor checkout is current: run
git fetch origin && git statusand pullmainif behind. Stale checkouts miss recent adapter and agent fixes and are a common source of spurious parity failures later on.
Workflow
1. Read the tutorial
Before any filesystem or CLI action, Read adapters/ADAPTER_CONTRIBUTING.md in full. Pay particular attention to:
- Required Directory Structures — the contract for generated task and adapter layouts.
- Step 1. Understand the Original Benchmark — what to identify upstream before coding.
- Step 8. Register the Dataset → Naming rules — the
namefield and<org>/<task>format requirements.
2. Gather benchmark context from the user
Collect the following before scaffolding. If the user has not provided an item, ask before proceeding — these inputs shape the scaffold and the tutorial steps that follow.
| Field | Why it matters |
| Adapter name | Lowercase, hyphen-separated. Must match the benchmark's common identifier (e.g., swe-bench, aider-polyglot). Becomes the directory under adapters/ and, after underscore conversion, the Python package name. |
| Human-readable name | Passed via --name; appears in the generated README. |
| Upstream repo URL | Needed for tutorial Step 1 (benchmark analysis) and for the original_parity_repo field later. |
| Oracle solutions available? | If the benchmark ships reference solutions, use them. If not, oracle solutions must be LLM-generated (tutorial Step 3 → "Benchmarks without oracle solutions"). |
| Agent scenario | Which of Step 4's scenarios applies: (1) existing compatible agent, (2) fork + add LLM agent, or (3) custom agent. This shapes the parity plan. |
3. Create the adapter branch
Per tutorial Step 2, work on a dedicated branch:
git checkout -b <adapter-name>-adapter4. Run the scaffold
Prefer the non-interactive form when both names are known:
harbor adapter init <adapter-name> --name "<Human-Readable Name>"Otherwise run harbor adapter init interactively and let the CLI prompt.
Expected output: a new directory at adapters/<adapter-name>/ containing pyproject.toml, README.md, src/<adapter_name>/, and the template task files under src/<adapter_name>/task-template/. Verify the directory exists before continuing.
5. Hand off to the tutorial
Continue from "Step 1. Understand the Original Benchmark" in the tutorial. Do not invent structure, field names, or workflow beyond what the guide specifies.
High-priority gotchas (each is documented in the tutorial, but these are the most common adapter-build failures — surface them proactively as you work through the steps):
- Every generated
task.tomlmust contain anamefield under[task].main.pyis responsible for deriving a sanitized, unique, registry-safe name for every task. Tasks without anamecannot be registered. See the tutorial's "Naming rules" table. - Task names must be stable across adapter runs. Unstable names churn registry digests on republish. If upstream lacks stable identifiers, mint a deterministic scheme (e.g.,
{dataset}-1,{dataset}-2) from a reproducible sort. - Use
schema_version = "1.4"at the top oftask.toml. Set package versions separately with[task].versionintask.tomland[dataset].versionindataset.toml. Request any desired registry tags in the PR description. main.pymust support--output-dir,--limit,--overwrite, and--task-ids. These flags are required for reproducible runs and task-level debugging.- The generated
README.mdis parsed by downstream automation. Fill in every section exactly as the template defines; put extra context in the Notes section or in thenotesfields ofparity_experiment.json/adapter_metadata.json. Do not add, rename, reorder, or remove sections. - Do not run parity experiments unilaterally. Tutorial Step 4 requires team coordination on agents, models, and number of runs before incurring API costs. Complete sanity checks first, and execute full runs symmetrically on both sides.
Reference adapters by scenario
When implementation questions come up, point at an existing adapter that matches the benchmark's shape:
| Scenario | Example adapter | When to use |
| Compatible agent already exists | adapters/adebench/ | Upstream already supports Claude-Code / Codex / OpenHands / Gemini-CLI |
| Fork upstream + add LLM agent | adapters/evoeval/ | LLM-based benchmark with no Harbor-compatible agent |
| Custom agent, separate dataset | adapters/bixbench/, adapters/financeagent/ | Custom interaction semantics; financeagent also demos LLM-as-a-Judge |
| Custom agent in-place | adapters/medagentbench/ | Custom HTTPAgent, no separate dataset |
| Multi-agent workflow | adapters/cooperbench/ | Multiple agents coordinate via messaging / sidecars |
| GPU tasks | adapters/featurebench/ | Comprehensive Docker + Modal GPU example |
What this skill does NOT do
- Implement
adapter.py,main.py, or any task-template files. Those are the contributor's work, guided by the tutorial. - Run oracle verification or parity experiments. Those require explicit user intent and, for parity, team coordination.
- Publish the dataset or open PRs. Those are later steps in the tutorial.
Failure modes
| Symptom | Likely cause | Action |
harbor: command not found | Harbor CLI not installed | Install with uv tool install harbor or the repository's development setup. |
harbor adapter init fails with a name validation error | Adapter name contains invalid characters | Re-run with a lowercase, hyphen-separated name. |
Scaffold succeeds but adapters/<name>/ is not present | Running from outside the repository root | cd to the Harbor repository root and re-run. |
| Oracle passes locally but parity later fails spuriously | Stale Harbor checkout | git fetch origin && git status; pull main if behind. |
Trending
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about laude-institute/harbor
- A Hacker News story“Harbor – a framework for evaluating and optimizing agents and language models”Hacker News · Nov 8, 2025 · 3 points
- harbor-framework/harbor“Multiple reward keys not supported”GitHub · Feb 16, 2026 · 2 reactions
- NovaSky-AI/SkyRL“[skyrl-train][Harbor] Upstream Harbor training code to main skyrl-train”GitHub · Jan 12, 2026 · 2 reactions
- harbor-framework/harbor-datasets“Add SpreadsheetBench dataset (400 tasks)”GitHub · Feb 22, 2026 · 1 reactions
- harbor-framework/harbor“why import environment variables in environment.env in examples/configs/*.yaml”GitHub · Jan 12, 2026 · 1 reactions
The biggest 5 of 38 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 38
Talked about on GitHub and Hacker News (38 times).
On GitHub · 37
- Feb 16, 2026Multiple reward keys not supported — harbor-framework/harbor2 reactions · 1 comment
- Jan 12, 2026[skyrl-train][Harbor] Upstream Harbor training code to main skyrl-train — NovaSky-AI/SkyRL2 reactions · 1 comment
- Feb 22, 2026Add SpreadsheetBench dataset (400 tasks) — harbor-framework/harbor-datasets1 reaction
- Jan 12, 2026why import environment variables in environment.env in examples/configs/*.yaml — harbor-framework/harbor1 reaction · 5 comments
- Nov 30, 2025Add Claude Code OAuth authentication documentation — harbor-framework/harbor-docs1 reaction · 1 comment
32 more on GitHub
- Oct 5, 2026Scout pitch: Resumable, seeded benchmark runs (per-item result files, resume flag, recorded seed) — 8gi-foundation/8gent-codesays it tested it0 reactions
- Sep 26, 2026Research input for 13/14 (souls, continuity, retention): reuse existing formats, and make "forget" cascade through derived memory — BharathChinthallapalli/Test-Waters0 reactions
- Sep 15, 2026Nothing measures whether our own skills help, so every subtraction decision is a vibe check — pmgledhill102/agentic-coding-config0 reactions · 1 comment
- Aug 15, 2026Eval infrastructure: measure whether a skill rewrite still routes — Lancetnik/slop-writer0 reactions
- Aug 7, 2026docs: per-plugin CLAUDE.md with the upstream docs and local specifics — walkerhughes/agents0 reactions
- Apr 29, 2026实验记录:Qwen3-8B run-3 (msp60ius) Phase 1 OOD 跑分 — base+4 ckpt × 66 task × 3 attempts (terminus-2 + harbor + sglang) — iter215 OOD 峰 vs iter279 回落 — HansBug/OpenClaw-RL0 reactions
- Apr 10, 2026Feature: Integrate PraisonAI Agents with Terminal-Bench 2.0 (Harbor Framework) — MervinPraison/PraisonAI0 reactions · 1 comment
- Mar 1, 2026Bedrock API key env var mismatch with LiteLLM (`AWS_BEARER_TOKEN_BEDROCK`) — harbor-framework/harbor0 reactions
- Feb 21, 2026[Harbor] Proper cleanup of Trials (especially address sandbox leakage) upon RL run fails / KeyboardInterrupt — NovaSky-AI/SkyRL0 reactions
- Feb 17, 2026[Ready For Review] multi-step checkpoint trial execution — harbor-framework/harbor0 reactions · 1 comment
- Feb 16, 2026Change asyncio.gather to TaskGroup in the Harbor generator to correctly propagate cancellation signals. — NovaSky-AI/SkyRL0 reactions · 6 comments
- Feb 12, 2026Sandboxes do not get terminated after Keyboard interruption during RL — harbor-framework/harbor0 reactions · 3 comments
- Feb 12, 2026Improve startup time with installed agents — harbor-framework/harbor0 reactions · 2 comments
- Feb 11, 2026Support MCP for all agents — harbor-framework/harbor0 reactions · 2 comments
- Feb 9, 2026Stored Object: paper:url.153C303C — chtmp223/papers-feed0 reactions · 1 comment
- Feb 5, 2026Bug: breaking change from `bash -ic` to `bash -lc` — harbor-framework/harbor0 reactions · 1 comment
- Feb 5, 2026TMUX is not compatible with the alpine image in docker — harbor-framework/harbor0 reactions · 1 comment
- Jan 20, 2026OpenRouter model names not working in Harbor 0.1.42 (`--model openrouter/anthropic/claude-sonnet-4.5`) — harbor-framework/harbor0 reactions
- Jan 17, 2026Failures in agent setup are silently discarded — harbor-framework/harbor0 reactions
- Jan 16, 2026Terminus 2 Agent Uses Logger Before Initialization When Model Provider is hosted_vllm — harbor-framework/harbor0 reactions · 1 comment
- Jan 10, 2026feat: Support Agent-Trajectory Interchange Format (ATIF) for trial trajectory capture — spachava753/rollout0 reactions
- Jan 10, 2026feat(evaluation): block web access and restrict LiteLLM tools during CRS run phase — sslab-gatech/CRSBench0 reactions · 4 comments
- Jan 6, 2026docker gpu support — harbor-framework/harbor0 reactions · 11 comments
- Dec 28, 2025BUG: where does 4096 come from? — harbor-framework/harbor0 reactions · 1 comment
- Dec 24, 2025Fix: Docker environment PATH inheritance on macOS — rotemtam/harbor0 reactions
- Dec 23, 2025Adapter runs unable to find docker — harbor-framework/harbor0 reactions · 2 comments
- Dec 17, 2025Trajectory viewer for non-linear history — harbor-framework/harbor0 reactions · 2 comments
- Dec 16, 2025environment.exec(): bash: cannot set terminal process group (-1): Not a tty bash: no job control in this shell — harbor-framework/harbor0 reactions · 3 comments
- Dec 16, 2025Deniz/dc agent updates 1215 — mlfoundations/SkyRL0 reactions
- Dec 10, 2025🚨 CRITICAL: Docker Compose project name validation bug breaks Oracle on custom_docker_compose tasks — harbor-framework/harbor0 reactions · 2 comments
- Nov 30, 2025Revert litellm hack once upstream fix is released — harbor-framework/harbor0 reactions · 2 comments
- Nov 24, 2025Feature Request: Harbor as a LLM proxy — harbor-framework/harbor0 reactions · 1 comment
On Hacker News · 1
Other versions2 projects use a version of this.
Word for word · 1
- harbor-framework/harbor★ 6.2k100% same
Edited · 0
None found.
Wrote their own version · 1
- marcus/sidecar★ 1.1ksame name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- create-taskSkill
- harbor-execSkill
- publishSkill
- rewardkitSkill
- upload-parity-experimentsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

