Docs

Dev Process

Adapters

Seven adapter kinds connect the harness to trackers, agent runtimes, code hosts, evidence producers, reviewers, effects and Log destinations. They perform and observe; they never authorize.

Seven kinds
Claude
Codex
GitHub

About adapters

Adapters translate between the generic process contract and the systems your team already uses: a tracker, an agent, a code host, a Log destination.

Every operation an adapter performs names its target and the authority it acts under. Authorization, idempotency and reconciliation stay with the harness.

How it works

An adapter performs or observes an operation the harness has already authorized. It never authorizes one itself.

Capability configuration states whether a hook is advisory, or enforced by the forge.

The seven adapter kinds

AdapterResponsibilityImplementation
Intent sourceRead work from a tracker, manifest, planner, API or direct inputGitHub Issues and Milestones. A state-source contract with a forge adapter and a file adapter, one of which is selected
Agent runtimeStart, resume, cancel, stream and normalize an ExecutionVendor CLIs (claude, codex) dispatched as subprocesses. The task-tools MCP server is registered for Claude (in .mcp.json) and for Codex (as [mcp_servers] TOML), with the same command
Code hostResolve revisions, diffs, checks, reviews and publicationsGitHub, through gh
Evidence producerRun or import checks; verify attestations against trust rootsThe check registry and the checks registered in config, run at the hooks and in CI
ReviewerTurn a human, agent or tool assessment into a ReviewFresh Reviewer and Security agent dispatches
Code host and tracker effectsPerform and observe operations the harness authorizedAn effect executor. See Effects are never posted twice
Log destinationDeliver validated events to storage or exportA folder or a server URL, with a reference log server. See Delivery

Effects are never posted twice

The effect executor records an effect's identity before posting it. Before retrying, it reconciles any earlier started record. If it cannot tell whether an effect happened, it records uncertain rather than posting again.

Agents

  • Subscription login only. Every agent authenticates by subscription login. There is no API key and no fallback.
  • Same enforcement for Claude Code and Codex. Both are held to the same enforcement. A dispatch starts only when that agent's required controls are active.
  • Same semantics everywhere. The same process semantics must hold across every supported adapter. See Conformance.

Configuration

KeyAdapter it selects
dispatch.agentThe default agent runtime: claude or codex. --agent overrides it
logsThe Log destination: folder or url
tokens.collectA second usage-collection route, for a host other than Claude Code
managed.agentsWhich agent-native entry points init wrote: skills, claude, gemini

Example: make Codex the default agent.

vinaya.config.json
{
  "dispatch": {
    "agent": "codex"
  }
}

See The file and its keys.

What's next