agentleFS
laude-institutelaude-institute/harbor/skills/create-adapter/SKILL.md

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
  1. Distinctive:

    Do not substitute prior knowledge for the contents of that file.

    line 26
  2. Very specific:

    Before any filesystem or CLI action, Read adapters/ADAPTER_CONTRIBUTING.md in full.

    line 38
  3. Distinctive:

    Prefer the non-interactive form when both names are known:

    line 66
  4. Distinctive:

    When implementation questions come up, point at an existing adapter that matches the benchmark's shape:

    line 91
  5. Distinctive:

    Run oracle verification or parity experiments.

    line 105

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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.md

That 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, and dataset.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 --version succeeds).
  • Working directory is the Harbor repository root.
  • Harbor checkout is current: run git fetch origin && git status and pull main if 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 name field 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.

FieldWhy it matters
Adapter nameLowercase, 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 namePassed via --name; appears in the generated README.
Upstream repo URLNeeded 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 scenarioWhich 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>-adapter

4. 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.toml must contain a name field under [task]. main.py is responsible for deriving a sanitized, unique, registry-safe name for every task. Tasks without a name cannot 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 of task.toml. Set package versions separately with [task].version in task.toml and [dataset].version in dataset.toml. Request any desired registry tags in the PR description.
  • main.py must support --output-dir, --limit, --overwrite, and --task-ids. These flags are required for reproducible runs and task-level debugging.
  • The generated README.md is parsed by downstream automation. Fill in every section exactly as the template defines; put extra context in the Notes section or in the notes fields of parity_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:

ScenarioExample adapterWhen to use
Compatible agent already existsadapters/adebench/Upstream already supports Claude-Code / Codex / OpenHands / Gemini-CLI
Fork upstream + add LLM agentadapters/evoeval/LLM-based benchmark with no Harbor-compatible agent
Custom agent, separate datasetadapters/bixbench/, adapters/financeagent/Custom interaction semantics; financeagent also demos LLM-as-a-Judge
Custom agent in-placeadapters/medagentbench/Custom HTTPAgent, no separate dataset
Multi-agent workflowadapters/cooperbench/Multiple agents coordinate via messaging / sidecars
GPU tasksadapters/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

SymptomLikely causeAction
harbor: command not foundHarbor CLI not installedInstall with uv tool install harbor or the repository's development setup.
harbor adapter init fails with a name validation errorAdapter name contains invalid charactersRe-run with a lowercase, hyphen-separated name.
Scaffold succeeds but adapters/<name>/ is not presentRunning from outside the repository rootcd to the Harbor repository root and re-run.
Oracle passes locally but parity later fails spuriouslyStale Harbor checkoutgit fetch origin && git status; pull main if behind.

Download now (ZIP)

Trending

Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Aug 30: 0 new projectsWeek of Sep 6: 0 new projectsWeek of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 1 new projectWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projects
Aug 2026Sep 2026Oct 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 1 in all, so this is a hint, not a trend.

Who's talking about laude-institute/harbor

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

32 more on GitHub
  • Other versions2 projects use a version of this.

    Word for word · 1

    1. harbor-framework/harbor★ 6.2k100% same

    Edited · 0

    None found.

    Wrote their own version · 1

    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.

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.