agentleFS
voxlo-devvoxlo-dev/Lean-Coding-Workspace/.agents/skills/harness-onboard/SKILL.md

harness-onboard

Skill2 starsChanged 4 days agoMITView on GitHub

Use to add a harness the workspace has no adapter for, or to re-verify an adapter after a harness release moved something: probe the harness, fill adapters/{target}/MANIFEST.md with verified facts, derive the overlay from it, prove it. Once per harness, not per machine — installing is workspace-sync. Explicit-invoke.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Evidence over documentation: Every row comes from something that answered on this machine.

    line 11
  2. Very specific:

    Check the check: a comparison that filters lines (say, those containing {) can skip exactly the wrong one.

    line 33

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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

Harness Onboard

Writes adapters/{target}/MANIFEST.md — the facts — and adapters/{target}/overlay/, derived from them. Both are tracked: the overlay is a cache of the manifest, so nobody pays the probe cost twice and a diff shows when a release moved a path. {target} = a lowercase slug, one per install, not per binary — a wrapper pointing the binary at its own config directory is its own target. A harness used only as a dispatch target needs no adapter; dispatch-configurator probes it per machine.

Evidence over documentation. Every row comes from something that answered on this machine; nothing answered → unknown, the harness lacks it → gap. Both stay visible; neither gets guessed — a wrong seed multiplies into every install.

1. Frame

  • Existing manifest → re-verify: probe every row verified on an older version than the installed one, plus whatever the user names; keep the rest.
  • New target → fill templates/MANIFEST.md. Read one existing manifest for the kind of answer a row wants, never for its value.
  • Resolve the binary and its version first — not on PATH is itself a fact for the Binary line.

2. Levers first

Before any row, find what makes rows checkable without a model call: --help of every subcommand, recursively — debug, doctor, config print or validate, prompt rendering, session export, the transcript store, a published config schema. Each goes into Verification levers with what it shows. They turn an unfalsifiable install into a checkable one; a harness with none gets its checks from scratch runs, and the manifest says so.

3. Probe each row

Strongest evidence first; stop at the first that answers:

  1. A lever's output.
  2. A throwaway probe, removed afterwards — a stub skill, agent or import in a scratch repo or a junctioned folder, then the lever or one run to see it picked up. A file existing proves nothing; only the harness reporting it does.
  3. A binary string dump (grep -a, strings) — paths, config keys and defaults the docs omit.
  4. Official docs or schema, fetched — never recalled.
  5. Upstream issues — a lead, never a verdict.
  • Check the check: a comparison that filters lines (say, those containing {) can skip exactly the wrong one.
  • A row that needs a model run: point the harness at a local endpoint through its custom-provider config instead of a subscription, and fill Custom provider on the way. Scope tools per run rather than bypassing permissions. A small model proves wiring, not workflow quality.
  • Dispatch is proven by the child's own record — transcript, export or rollout naming the agent and carrying its instructions — never by the parent's report.

4. Derive the overlay

Files sit at the exact paths they land on in {home}; overlay/adapter/ holds the folders and files workspace-sync step 3 defines. From the manifest:

  • Instruction shim overlay/{global instruction file} — only where that file isn't AGENTS.md: it imports AGENTS.md and, given an import lever, ~/.agents/memory/MEMORY.md.
  • adapter/merge/ — the home config's instructions list where that is the memory lever, and capability entries (MCP, plugins) in the harness's own shape.
  • adapter/project-merge/ — the project config's MCP block and pre-approval, plus the domain-memory entry where the lever is a list.
  • adapter/project/ — the project shim, where Project → Instruction shim says needed.
  • adapter/threads.md — where Threads names a session-start tool: how to start one, what reports back, the limits.
  • adapter/chat-title.md — where Chat title names a tool: how to call it, how to load it when deferred.
  • gap → no file; nothing invented to paper over it.
  • The workspace invariants are inputs, not probe results: shared content lives once in ~/.agents/, harnesses are pointed at it, a non-native skills root is linked per folder, agents install flat in the manifest's format with frontmatter per the repo's AGENTS.md.

5. Join the enumerations

Grep the repo for an existing target's home path: every hit outside adapters/ — workspace_TEMPLATE/AGENTS.md — is a list the new target joins. User-facing docs name no harness; they point at adapters/.

6. Prove it

The install is the user's: they run workspace-sync for this target, whose step 7 uses the new levers. Then one end-to-end run in a throwaway repo — a minimal-workflow change with docs and commit, one agent dispatch, a memory read — its outcome into Proven. Commit feat: {target} adapter, or docs: {target} manifest re-verified.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.