diff --git a/architecture.md b/architecture.md new file mode 100644 index 0000000..c706cec --- /dev/null +++ b/architecture.md @@ -0,0 +1,59 @@ +# 🧠 Cortex — Agent Swarm Architecture + +```mermaid +graph TB + subgraph MacMini["🖥️ Mac Mini (24/7)"] + Cortex["🧠 Cortex
OpenClaw Orchestrator"] + Cortex --> Codex1["Codex Agent 1"] + Cortex --> Codex2["Codex Agent 2"] + Cortex --> Codex3["Codex Agent 3"] + Cortex --> Claude1["Claude Code 1"] + Cortex --> Gemini1["Gemini Agent 1"] + end + + subgraph VPS["🖧 VPS Dokploy (51.75.248.225)"] + Gitea["Gitea
Source of Truth"] + Runner["Act Runner
Docker CI"] + Gitea --> Runner + Runner --> Lint["Lint"] + Runner --> TypeCheck["Typecheck"] + Runner --> Tests["Tests"] + Runner --> E2E["E2E"] + Runner --> AIReview["AI Review x3"] + Gitea -->|Push Mirror| GitHub["GitHub
(mirror)"] + Gitea -->|Webhook| Cortex + end + + Codex1 -->|git push| Gitea + Codex2 -->|git push| Gitea + Codex3 -->|git push| Gitea + Claude1 -->|git push| Gitea + Gemini1 -->|git push| Gitea + + Ayoub["👤 Ayoub
Telegram/WhatsApp"] <-->|commands & notifications| Cortex + + style MacMini fill:#1a1a2e,color:#fff + style VPS fill:#16213e,color:#fff + style Cortex fill:#e94560,color:#fff + style Gitea fill:#85c88a,color:#000 + style GitHub fill:#333,color:#fff + style Ayoub fill:#f5a623,color:#000 +``` + +## Flow +1. **Ayoub** (Telegram/WhatsApp) → **Cortex** → spawn agent on Mac Mini/VPS +2. Agent codes in git worktree → `git push` to **Gitea** (VPS) +3. Gitea triggers **CI** (Act Runner on VPS) +4. Gitea **push mirror** → GitHub (auto-sync) +5. CI completes → webhook → **Cortex** +6. Cortex → notification to **Ayoub** + +## Agent Routing +| Task | Agent | +|---|---| +| Backend / billing / auth / API | Codex | +| Frontend / React / styling | Claude Code | +| Strapi / CMS | Claude Code | +| Design / prototyping | Gemini | +| Migrations / refactors | Codex | +| Bugfix Sentry | Codex |