Files
microdao-daarion/docs/cursor/MVP_VERTICAL_SLICE.md
Apple c552199eed chore: organize documentation structure for monorepo
- Create /docs structure (microdao, daarion, agents)
- Organize 61 cursor technical docs
- Add README files for each category
- Copy key documents to public categories
- Add GitHub setup instructions and scripts
2025-11-15 04:08:35 -08:00

15 KiB
Raw Blame History

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:

    • HostslugteamId.
  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. Правий сайдбар для проєктного каналу:

    • якщо канал привʼязаний до проєкту (наприклад #mvpMicroDAO 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 (узагальнений промт)

Приклад загального промта:

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 ще якимись деталями, якщо бачиш прогалини.