Agent adapters
The adapter is the layer that knows a coding agent. It launches one headless job, and translates that vendor's events into the board's own schema — which is what keeps every other line of core free of any particular agent.
Headless jobs run through an adapter (BOARD_AGENT_ADAPTER, default
claude), so the manager works with other coding agents too. An adapter is
a directory with run (execute one job: AGENT_PROMPT + AGENT_MODE
work|act-pr|review + AGENT_COMMANDS in, stdout = the log, markers parsed
from it) and wire (idempotently give the host project live-session
visibility).
Headless jobs answer no permission prompts, so each intent is granted
exactly the side effects its prompt demands — commit and test for work,
push for act-pr, posting PR verdicts for review — with the project's own
runnable commands coming from BOARD_AGENT_COMMANDS as neutral prefixes
each adapter renders in its vendor's rule syntax.
Adapters translate their vendor's events into the board's normalized
schema at the edge — core never sees vendor payloads. That is what keeps
the board's own code free of any one vendor: swapping adapters swaps the
binary that does the work, not the board. The full contract, including
the event schema, lives in manager/core/adapters/README.md.