Surfaces
One internal API, multiple thin ways to invoke it.
A surface translates input, invokes the API, and renders output. It must not invent orchestration policy or duplicate the business operation. racecar itself offers CLI and agent-skill transports, and generates REST and MCP surfaces for adopting repositories rather than hosting those interfaces itself. Surface declarations and implementation are checked for drift.
CLI
A declared command tree over the shared API
Agent Skills
On-demand procedures, not a second implementation
Generated REST & MCP
Additional adapters for adopting repositories