# Adapter Contract Runtime adapters translate task commands into concrete worker invocations. ## Minimal Contract Each task should define either: 1. `command` directly in `tasks.json`, or 2. controller-level `worker.command_template` in `.mosaic/orchestrator/config.json` `command_template` may use: - `{task_id}` - `{task_title}` - `{task_file}` ## Examples Codex: ```json { "worker": { "command_template": "codex \"run task {task_id}: {task_title}\"" } } ``` Claude: ```json { "worker": { "command_template": "claude -p \"Execute task {task_id}: {task_title}\"" } } ``` OpenCode: ```json { "worker": { "command_template": "opencode \"execute task {task_id}: {task_title}\"" } } ``` ## Recommendation Prefer explicit per-task `command` for deterministic execution and auditability.