# MVP_VERTICAL_SLICE — MicroDAO (Agent-First MVP) Вертикальний зріз для перших живих користувачів Цей документ визначає, ЩО саме потрібно реалізувати у першому MVP, щоб: - microDAO виглядало як окремий "живий простір", - користувач одразу взаємодіє з агентами, - є базові чати, проєкти, нагадування, - агенти мають "обличчя" (картки + консолі), - операторські режими вже закладені в архітектуру, але не перевантажують реалізацію. Документ збирає ключові фрагменти з: - 14_messenger_agent_module.md - 15_projects_agent_module.md - 16_followups_reminders_agent.md - 21_agent_only_interface.md - 22_operator_modes_and_system_agents.md - 23_domains_wallet_dao_deepdive.md - 23_agent_cards_and_console_tasks.md --- # 0. Мета MVP Зробити **один живий вертикальний шмат**: - людина заходить у свій microDAO (через slug.daarion.city), - бачить Agent Hub (головний екран), - спілкується з Team Assistant, - бачить "Учасників" (Люди / Агенти), - має базові канали (Messenger Agent), - має хоча б один Проєкт і Задачі (Projects Agent), - може сказати "нагадай" (Followups Agent), - може зайти на `/agents` і побачити картки агентів, - може відкрити Agent Console і подивитись, де агент присутній. Web3, DAO-протокол, Wallet Agent, глибокий Governance, Attention, Co-Memory — описані, але **не обовʼязково реалізуються в цьому MVP**, тільки каркас там, де це дешево. --- # 1. Multi-tenant & Team Context (без кастомних доменів) ## 1.1. Обсяг MVP Реалізувати: - `teams.slug` + базовий domain routing по `slug.daarion.city`, - `currentTeamId` у бекенд-контексті, - два режими UI: - режим `/t/:teamId/...` (центральний домен), - режим `slug.daarion.city/...` (автоматичне визначення `teamId` з домену). Не реалізувати: - кастомні домени користувачів (`mydao.org`), - DNS-перевірки, SSL-автоматизацію. ## 1.2. Tasks 1) Додати в БД: - поле `slug` у `teams`. 2) Реалізувати lookup: - `Host` → `slug` → `teamId`. 3) У бекенд-контексті: - зберігати `currentTeamId`. 4) На фронті: - якщо контекст дає `currentTeamId` з домену: - приховати `t/:teamId` у URL, - використовувати просто `/home`, `/agents`, `/projects` тощо. --- # 2. Agent Hub (Home) + Agent-Only Interface Shell Спиратись на: `21_agent_only_interface.md` (Agent-Only Interface) + базові UI стандарти (`10_agent_ui_system.md`). ## 2.1. Обсяг MVP 1) Новий маршрут: - `/t/:teamId/home` (у режимі slug-домену — просто `/home`). 2) Лівий сайдбар: - блок "Простори / Проєкти" (stub-список, але справжні посилання), - блок "Учасники": `Люди / Агенти / Роботи (плейсхолдер)`. 3) Центральна область: - **Agent Hub Chat** з Team Assistant: - мінімальний AgentChatWindow, - LLM-виклик з `agent_id = Team Assistant`. 4) Правий сайдбар: - stub "Контекст команди": - кількість учасників, - кількість проєктів, - список останніх подій (можна поки мок). ## 2.2. Tasks 1) Додати компонент `AgentHubPage`. 2) Додати маршрут `/t/:teamId/home`. 3) У сайдбарі додати пункт "Головна / Agent Hub". 4) Реалізувати базовий `AgentChatWindow`: - історія повідомлень, - input для користувача, - відправка на `/agents/{id}/chat` або відповідний endpoint. 5) Підʼєднати Team Assistant як базового агента для цього екрану. --- # 3. Messenger Agent (14): канали, DM, "додати агента" Опиратись на: `14_messenger_agent_module.md` + `Task Invite-Agent-Flow` з задачника. ## 3.1. Обсяг MVP Реалізувати мінімум: 1) Список каналів/чатів у лівому сайдбарі: - кілька каналів типу: - `#general`, - `#mvp`. 2) Центральний чат для вибраного каналу: - вивід історії, - відправка повідомлень, - позначення агента/людини автором. 3) Кнопка "Додати учасника" у header каналу: - модалка зі вкладками: - `Люди`, - `Агенти` (ми фокусуємось саме на цьому). - у вкладці `Агенти`: - список агентів (із `/agents`), - вибір 1 агента, - чекбокси прав: - `Читати`, - `Писати`, - `Створювати задачі`. - POST entitlements (stub-модель RBAC/Entitlements). Не обовʼязково: - складні фічі (search_messages, pinned messages, reactions і т.п.). ## 3.2. Tasks 1) Реалізувати модель: - `channels` + `messages`. 2) Реалізувати simple REST: - `GET /channels`, `GET /channels/:id/messages`, `POST /messages`. 3) Реалізувати "Add Participant → Agent" модалку: - frontend модалка, - backend entitlements stub: `POST /entitlements` з `agent_id` + `channel_id` + scopes. 4) Показувати аватари агентів у header каналу. --- # 4. Projects Agent (15): один проєкт, прості задачі Опиратись на: `15_projects_agent_module.md`. ## 4.1. Обсяг MVP Реалізувати: 1) Мінімальну модель: - `projects` (id, name, description, team_id), - `tasks` (id, project_id, title, status, assignees, created_at). 2) Правий сайдбар для проєктного каналу: - якщо канал привʼязаний до проєкту (наприклад `#mvp` → `MicroDAO MVP`): - показувати коротку панель: - назва проєкту, - список задач (група за статусом: new / in_progress / done), - кнопка "Нова задача". 3) Модалка "Нова задача": - поля: - Назва, - Опис (опційно), - Статус (по замовчуванню `new`), - Виконавці (поки можна просто селект із людей/агентів). 4) Мінімальна інтеграція з Messenger: - при створенні задачі з правого сайдбару: - повідомлення у канал: > "Створено задачу: {title}". Можна НЕ робити поки: - спринти, - складні фільтри, - Planning Agent. ## 4.2. Tasks 1) Бекенд-моделі `projects` і `tasks` + API. 2) Привʼязка каналу до проєкту (наприклад, поле `channel.project_id`). 3) Компонент `ProjectSidebarPanel`: - читає з API `GET /projects/:id/tasks`, - рендерить список, - кнопка "Нова задача". 4) Модалка створення задач: - `POST /tasks`, - після успіху: оновити список + відправити повідомлення у канал через Messenger API. --- # 5. Followups & Reminders Agent (16): "нагадай мені" Опиратись на: `16_followups_reminders_agent.md`. ## 5.1. Обсяг MVP Реалізувати: 1) Модель `reminders`: - id, user_id, message, fire_at, created_at, status. 2) Простий tool: - `create_reminder({ user_id, message, schedule })`: - для MVP: - підтримати шаблони: - "через N хвилин/годин/днів", - "завтра о HH:MM". 3) Інтеграція з чатом: - якщо користувач пише: - "нагадай мені завтра о 10 про X" - Followup Agent: - парсить час, - створює reminder, - відповідає: > "Нагадування створено: завтра о 10:00 — «X»." 4) Worker / cron: - кожну хвилину: - `SELECT * FROM reminders WHERE fire_at <= now AND status = 'pending'`, - відправити повідомлення користувачу (DM або системне повідомлення), - помітити як `fired`. UI: - мінімальна панель "Мої нагадування" (наприклад, у профілі). ## 5.2. Tasks 1) Бекенд-таблиця `reminders` + API. 2) Базовий Followup Agent з tool `create_reminder`. 3) Простий parser NLU для фраз типу "нагадай мені завтра о 10": - можна почати з регулярок + rule-based. 4) Cron/worker для тригеру ремайндерів. 5) Простий UI список нагадувань (може бути не першочергово). --- # 6. Agent Cards Grid + Agent Console (23) Опиратись на: `23_agent_cards_and_console_tasks.md`. ## 6.1. Обсяг MVP 1) Маршрут `/t/:teamId/agents`: - грід карток агентів: - Team Assistant, - Messenger Agent, - Projects Agent, - Followups Agent, - Knowledge (stub), - Governance (stub), - Bridges (stub). - картка: - аватар, - імʼя, - коротке призначення, - вік (можна згенерувати pseudo-дані), - базовий текст `Досвід 1T: ...` + `Репутація: ...` (можна поки stub). - hover overlay: - "Почати взаємодію", - "Деталі агента". 2) Agent Console `/t/:teamId/agent/:agentId`: - хедер: - аватар, - імʼя, - опис, - базові метрики (stub). - вкладки: - `Чат`: - той же `AgentChatWindow`. - `Присутність / Права`: - поки список каналів/проєктів, де агент підключений. - без складних toggle-операцій (можна просто read-only у MVP). - це має працювати як "профіль агента". ## 6.2. Tasks 1) Реалізувати `/agents` грід (Agent-Cards-Grid). 2) Реалізувати `/agent/:agentId` консоль. 3) Зв'язати "Почати взаємодію" → `AgentConsolePage` на вкладці "Чат". 4) Створити простий endpoint `GET /agents` з базовими метаданими (name, role, created_at, stub-metrics). 5) Створити endpoint `GET /agents/:id/presence`: - повертає: - канали, де агент присутній, - повʼязані проєкти. --- # 7. OperatorMode — тільки каркас Опиратись на: `22_operator_modes_and_system_agents.md`. ## 7.1. Обсяг MVP Реалізувати лише: 1) Поле `operatorMode` у `AgentConfig`. 2) Guard у `runAgentTurn` / scheduler: - якщо `trigger = "operator_tick"`: - перевірити: - `operatorMode.enabled`, - ліміт дій на годину, - allowedTools. 3) Увімкнути operatorMode: - для Followups Agent: - для worker-а нагадувань можна поки використовувати прямий cron без LLM, але структуру вже передбачити. - опційно для Attention Agent (якщо буде час) — для базового daily digest. Не реалізовувати: - UI для operatorMode, - розширені operator режими для всіх агентів. --- # 8. Що явно НЕ входить до цього MVP (але вже є в документації) - Wallet Agent (підпис дій). - DAO Agent (on-chain DAO інтеграція). - Повна Governance & Access реалізація (ключі, ритуали узгодження). - Повний Co-Memory (17) як RAG-система. - Повний Notifications & Attention Agent (розумні стріми уваги). - Кастомні домени (`mydao.org`) з DNS-перевірками і auto-SSL. --- # 9. Порядок реалізації для Cursor (рекомендація) Рекомендований порядок задач: 1) **Multi-tenant context + Agent Hub** - teams.slug, - визначення `currentTeamId`, - `/home` + базовий Agent Hub. 2) **Messenger Agent (канали + чати + "додати агента")** 3) **Projects Agent (проєкт + задачі + правий сайдбар)** 4) **Followups Agent (reminders + інтеграція з чатом)** 5) **Agent Cards Grid + Agent Console** 6) **OperatorMode (каркас guard-ів)** Кожен блок можна оформлювати окремим промтом: "Implement part X of MVP_VERTICAL_SLICE.md using docs 14/15/16/21/22/23 + 05_coding_standards.md". --- # 10. Інструкція для Cursor (узагальнений промт) Приклад загального промта: ```text You are working on the MicroDAO MVP vertical slice. Use: - MVP_VERTICAL_SLICE.md - 14_messenger_agent_module.md - 15_projects_agent_module.md - 16_followups_reminders_agent.md - 21_agent_only_interface.md - 22_operator_modes_and_system_agents.md - 23_domains_wallet_dao_deepdive.md - 23_agent_cards_and_console_tasks.md - 10_agent_ui_system.md - 05_coding_standards.md Goal: Implement the MVP vertical slice described in MVP_VERTICAL_SLICE.md, step by step. Start with: 1) Multi-tenant team context + Agent Hub Home. Then: 2) Messenger Agent basics (channels, messages, Add Agent to channel). 3) Projects Agent basics (one project, tasks, right sidebar). 4) Followups Agent basics (reminders + chat trigger "нагадай"). 5) Agent Cards grid and Agent Console. 6) OperatorMode guard skeleton. For each step: - list changed files, - show diff, - provide a short summary. ``` --- **Цей документ — твій "мастер-план" для першого живого MVP microDAO.** Далі можна або відразу йти в задачі для кроку 1 (multi-tenant + Agent Hub), або доповнити MVP ще якимись деталями, якщо бачиш прогалини.