# Harness Adapters

Load before spawning or recovering a crewmate or secondmate, handling a trust dialog...

- Repository: https://github.com/kunchenguid/firstmate (8480 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kunchenguid/firstmate --skill harness-adapters -g -a claude-code -y`
Codex: `npx skills add kunchenguid/firstmate --skill harness-adapters -g -a codex -y`
Cursor: `npx skills add kunchenguid/firstmate --skill harness-adapters -g -a cursor -y`
Gemini CLI: `npx skills add kunchenguid/firstmate --skill harness-adapters -g -a gemini-cli -y`

## Description

Load before spawning or recovering a crewmate or secondmate, handling a trust dialog, sending a harness-specific skill invocation, interrupting or exiting an agent, resuming an exited agent, or verifying a new harness adapter.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# harness-adapters

This is the one skill, trigger, and routing owner for harness-specific Firstmate operations.
Load this router first, then exactly the common reference and one harness reference selected below.
When an action spans rows, load the union once rather than every reference.
Files under `references/` are resources of this skill, not additional catalogued skills.

## Path contract

The skill directory is the directory containing this `SKILL.md`.
Resolve on-demand reference links and relative links to their executable, documentation, or sibling-skill owners against the skill directory, including links named by a nested reference.
Operational paths keep the context named by their owner: `config/` and active-home settings belong to the active Firstmate home, `state/` belongs to that home, and project settings such as `.claude/settings.json` belong to the target project.

## Non-negotiable safety

Never dispatch a crewmate or secondmate on an unverified adapter.
If `config/crew-harness` or `config/secondmate-harness` names one, tell the captain under `../../../AGENTS.md` section 9 that the requested worker runtime is not verified, use firstmate's own verified runtime for current work, and ask only whether to verify the requested runtime for future work.
Do not pause current work for that choice.

On `unknown`, ask the captain instead of guessing.
A current captain override beats detection, while a per-task override governs only that dispatch.
For recovery and control, use the exact `harness=` in `state/<id>.meta`; never infer it from a model or provider.

The rest: https://github.com/kunchenguid/firstmate/blob/HEAD/.agents/skills/harness-adapters/SKILL.md
