Notas del presentador
Lectura de arriba hacia abajo: una petición entra por un host (Electron Desktop, la TUI, el adapter Pi con /arvantti o tu propia shell), cruza la CLI estable (bin/arvantti.mjs → src/cli: parseCliArgs, executeCli, formatCliResult) y llega al Core (src/core: project-policy, guardians, grant-document, task-contract, task-receipt, work-intake, session-assignments, brain-repository, context-measurement…). El Core no hace I/O ni contiene un loop LLM: los adapters (src/adapters: pi, terminal con node-pty y buffer ANSI, brain con sqlite-vec, obsidian-vault para SDD, local-store en .arvantti/, transcript, process) hacen el trabajo con efecto. Hay un adapter por cada harness de código con IA (Pi, Claude Code, Antigravity, GPT Codex, OpenCode, Kimi), siempre delgado y delegando en la CLI. La capa de ejecución son PTYs reales (pseudo-terminales: consolas reales creadas por programa, con node-pty), worktrees autorizados y procesos foreground. Desktop, TUI y CLI no son autoridades de permisos; la policy se revalida en la frontera del efecto. Cloudflare (ADR-0010, hito H16) será gestión, gobernanza y conocimiento compartido, nunca host de ejecución.