Add or change an agent harness adapter. Use when adding a Provider variant, a spawn recipe, harness capabilities, or attention-hook support.
Install
npx skillscat add alondero/buildmesh/add-harness-adapter Install via the SkillsCat registry.
SKILL.md
Add a harness adapter
The adapter owns the spawn recipe, including WindowsShell: PowerShell, Cmd for a .cmd shim, or Direct. spawn_environment::wrap in src-tauri/src/agent/spawn_environment.rs reads that declaration. Do not hard-code a shell in the spawner. On macOS and Linux every provider uses Direct.
- Add one file under
src-tauri/src/agent/provider/adaptersimplementingAgentProvider. The trait issrc-tauri/src/agent/provider/mod.rs. Register the module and its static insrc-tauri/src/agent/provider/adapters/mod.rs. - Add the
Providervariant and theadapter()arm insrc-tauri/src/models/agent.rs. Add the id toBUILTIN_HARNESS_IDSinsrc-tauri/src/agent/provider/mod.rs.claudeis an alias ofanthropicviaHARNESS_PROFILE_ALIASESinsrc-tauri/src/agent/harness_catalog.rs, not a second provider. - Add an
inspector_labelarm insrc-tauri/src/agent/harness_catalog.rs. The match is exhaustive.capabilities()on the adapter is the source of truth.builtin_harness_catalog()writes the table. Do not hand-write a TypeScript capability map. - Declare
circuit_observation()for the observation the harness really supports. The default is unwired. Do not add a harness-name branch undersrc-tauri/src/services/circuit_worker. The contract isdocs/development/circuit-session-observation.md. - Cover a fresh spawn and a resume. When a test runs a real CLI, record that CLI's version next to the assertion.
- Run
cargo testfromsrc-tauri/and commitsrc/types/generated/HarnessCapabilitiesTable.tsandsrc/types/generated/HarnessCapabilitiesTable.json. - Update the harness row in
docs/user-guide.md. Add a caveat todocs/troubleshooting.mdwhen runtime behaviour needs one. TouchREADME.mdonly when the user-facing harness list changes. Put externally verified CLI notes indocs/learningwith a source link, not in the user guide as an assumption.
From src-tauri/: cargo test --lib harness_catalog. Then, from the worktree root, npm run check:docs.