# Architecture Decision Records (ADRs) ## ADR-001: API-First with Agent-Agnostic Design **Date:** 2025-01-29 **Status:** Accepted **Deciders:** Jason, Jarvis ### Context Mosaic Stack needs to integrate with AI agents (currently ClawdBot, formerly MoltBot). The question is how tightly to couple the platform with the agent layer. ### Decision **Mosaic Stack will be API-first and agent-agnostic.** ``` ┌─────────────────────────────────────────────────────────────┐ │ Users │ │ (Web UI, Mobile, CLI, API clients) │ └─────────────────────┬───────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Mosaic Stack │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │ │ Knowledge │ │ Tasks/Gantt │ │ Agent Orchestration │ │ │ │ Module │ │ Module │ │ Module │ │ │ └──────┬──────┘ └──────┬──────┘ └──────────┬──────────┘ │ │ │ │ │ │ │ └────────────────┼─────────────────────┘ │ │ ▼ │ │ REST/GraphQL APIs │ └─────────────────────────┬───────────────────────────────────┘ │ ┌───────────────┼───────────────┐ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ ClawdBot │ │ Other │ │ Direct │ │ Skills │ │ Agents │ │ API Use │ └──────────┘ └──────────┘ └──────────┘ ``` ### Implications 1. **All functionality exposed via APIs first** - REST endpoints for CRUD operations - GraphQL for complex queries (optional) - WebSocket for real-time updates 2. **Agent skills are thin wrappers** - ClawdBot skills (`mosaic-skill-*`) wrap Mosaic APIs - Skills handle: auth, tool definitions, response formatting - Business logic lives in Mosaic, not skills 3. **Mosaic works standalone** - Web UI is fully functional without any agent - Users can choose to use agents or not - Different agents can integrate (ClawdBot, custom, future) 4. **Agent layer is swappable** - Not locked to ClawdBot - Could use Claude directly, OpenAI agents, or custom - Mosaic is the source of truth ### Consequences **Positive:** - Platform independence - Multiple integration paths - Clear separation of concerns - Easier testing (API-level tests) **Negative:** - Extra network hop for agent access - Need to maintain both API and skill code - Slightly more initial work ### Related Issues - #22: Brain query API endpoint (API-first ✓) - #23-26: mosaic-plugin-_ → rename to mosaic-skill-_ (thin wrappers) --- _Future ADRs will be added to this document._