Multi-agent coding pipeline over the Agent Client Protocol self-built
2026TypeScript, ACP (JSON-RPC over stdio), Claude Code (Opus, Sonnet), DeepSeek Harness, zod, macOS sandbox, Vitest
- A code orchestrator owns the flow: it is the ACP client, opens one session per role and drives agents from different vendors; every reply is a JSON block validated against a schema before the next step.
- Cross-vendor roles: Opus plans a task DAG (or asks the user), DeepSeek plans and implements, Opus reviews, Sonnet rewrites failing plans and checks the work, Opus reviews the integration branch; independent tasks run in parallel waves.
- Decision gates in code: every agent permission request goes through a policy function; readers get read-only tools in their worktree, writers can edit only inside it, only the implementer gets a shell and it runs in a sandbox; acceptance commands are run by the orchestrator, never by Claude agents. A blocked run waits for a human unblock with a note.
- Audit trail and cost: run state, plans and an append-only event log make every decision replayable; numbered decision records; token usage per model and session; proven by fault-injection and kill-and-resume end-to-end runs.