Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when adding a new agent harness (CLI-based coding agent) adapter to adapters. Covers capability audit, adapter scaffold, session parsing, auth detection, hooks/plugins wiring, tests, and docs.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 3063% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -31% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -43% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -37% | 0% |
Goal: produce a production-quality XAdapter extends BaseAgentAdapter with full test coverage and documentation, matching the level of the existing 11 adapters (claude, codex, cursor, gemini, opencode, openclaw, copilot, hermes, pi, omp, adapters-remote).
AgentCapabilities field. Unknown? Set conservatively (false) and note in PR.packages/adapters/src/<name>-adapter.ts extending BaseAgentAdapter. Required: agent, displayName, cliCommand, minVersion, hostEnvSignals, capabilities, models[], defaultModelId, configSchema, buildSpawnArgs, parseEvent, detectAuth, getAuthGuidance, sessionDir, parseSessionFile, listSessionFiles, readConfig, writeConfig.parseJsonlSessionFile; otherwise write a custom parser and unit-test each event shape.writeNativeHook and mirror into HookConfigManager. If not, rely on the base class's virtual hooks.mcpServers in its config JSON, flip supportsPlugins: true, add pluginFormats: ['mcp-server'], and delegate to mcp-plugins.ts (see cursor/gemini/opencode/openclaw for the pattern).packages/adapters/src/index.ts exports and to the default registry in packages/core/src/client.ts (if applicable).packages/adapters/tests/<name>-adapter.test.ts:buildSpawnArgs for a few representative RunOptionsparseEvent for each JSONL type the harness emitsdetectAuth for authenticated + unauthenticated statesmcp-plugins-parity.test.ts.packages/cli/tests/commands-audit.test.ts passes (it exercises every adapter via the built CLI).local/max-file-lines). Split helpers into sibling modules if you're close.docs/02-agents/<name>.md.npm run changeset, pick minor (new adapter), summarize.bashnpm run typecheck npm run lint npm test npx vitest run packages/adapters/tests/<name>-adapter.test.ts
All existing tests must continue to pass — no regressions in commands-audit.
commands-audit.test.ts won't exercise it.detectAuth() — breaks testability.buildSpawnArgs returning the string "undefined" for missing options — always gate with if (options.X != null).appendJsonHook or appendYamlHook.Other measured skills in the registry, with their headline benchmark lift.